Buffer type checking cleanup/rewrite (now uses use_utility_code)
authorDag Sverre Seljebotn <dagss@student.matnat.uio.no>
Sat, 26 Jul 2008 08:59:36 +0000 (10:59 +0200)
committerDag Sverre Seljebotn <dagss@student.matnat.uio.no>
Sat, 26 Jul 2008 08:59:36 +0000 (10:59 +0200)
610 files changed:
.hgignore [changed mode: 0644->0755]
.hgtags [changed mode: 0644->0755]
CHANGES_pyrex.txt [changed mode: 0644->0755]
COPYING.txt [changed mode: 0644->0755]
Cython/CodeWriter.py [changed mode: 0644->0755]
Cython/Compiler/Annotate.py [changed mode: 0644->0755]
Cython/Compiler/Buffer.py [changed mode: 0644->0755]
Cython/Compiler/Builtin.py [changed mode: 0644->0755]
Cython/Compiler/CmdLine.py [changed mode: 0644->0755]
Cython/Compiler/Code.py [changed mode: 0644->0755]
Cython/Compiler/ControlFlow.py [changed mode: 0644->0755]
Cython/Compiler/DebugFlags.py [changed mode: 0644->0755]
Cython/Compiler/Errors.py [changed mode: 0644->0755]
Cython/Compiler/ExprNodes.py [changed mode: 0644->0755]
Cython/Compiler/Future.py [changed mode: 0644->0755]
Cython/Compiler/Lexicon.py [changed mode: 0644->0755]
Cython/Compiler/Main.py [changed mode: 0644->0755]
Cython/Compiler/ModuleNode.py [changed mode: 0644->0755]
Cython/Compiler/Naming.py [changed mode: 0644->0755]
Cython/Compiler/Nodes.py [changed mode: 0644->0755]
Cython/Compiler/Optimize.py [changed mode: 0644->0755]
Cython/Compiler/Options.py [changed mode: 0644->0755]
Cython/Compiler/ParseTreeTransforms.py [changed mode: 0644->0755]
Cython/Compiler/Parsing.py [changed mode: 0644->0755]
Cython/Compiler/PyrexTypes.py [changed mode: 0644->0755]
Cython/Compiler/Scanning.py [changed mode: 0644->0755]
Cython/Compiler/Symtab.py [changed mode: 0644->0755]
Cython/Compiler/Tests/TestBuffer.py [changed mode: 0644->0755]
Cython/Compiler/Tests/TestDecorators.py [changed mode: 0644->0755]
Cython/Compiler/Tests/TestParseTreeTransforms.py [changed mode: 0644->0755]
Cython/Compiler/Tests/TestTreeFragment.py [changed mode: 0644->0755]
Cython/Compiler/Tests/__init__.py [changed mode: 0644->0755]
Cython/Compiler/TreeFragment.py [changed mode: 0644->0755]
Cython/Compiler/TypeSlots.py [changed mode: 0644->0755]
Cython/Compiler/Version.py [changed mode: 0644->0755]
Cython/Compiler/Visitor.py [changed mode: 0644->0755]
Cython/Compiler/__init__.py [changed mode: 0644->0755]
Cython/Debugging.py [changed mode: 0644->0755]
Cython/Distutils/__init__.py [changed mode: 0644->0755]
Cython/Distutils/build_ext.py [changed mode: 0644->0755]
Cython/Distutils/extension.py [changed mode: 0644->0755]
Cython/Mac/DarwinSystem.py [changed mode: 0644->0755]
Cython/Mac/MacSystem.py [changed mode: 0644->0755]
Cython/Mac/MacUtils.py [changed mode: 0644->0755]
Cython/Mac/Makefile [changed mode: 0644->0755]
Cython/Mac/TS_Misc_Suite.py [changed mode: 0644->0755]
Cython/Mac/_Filemodule_patched.c [changed mode: 0644->0755]
Cython/Mac/__init__.py [changed mode: 0644->0755]
Cython/Plex/Actions.py [changed mode: 0644->0755]
Cython/Plex/DFA.py [changed mode: 0644->0755]
Cython/Plex/Errors.py [changed mode: 0644->0755]
Cython/Plex/Lexicons.py [changed mode: 0644->0755]
Cython/Plex/Machines.py [changed mode: 0644->0755]
Cython/Plex/Regexps.py [changed mode: 0644->0755]
Cython/Plex/Scanners.py [changed mode: 0644->0755]
Cython/Plex/Timing.py [changed mode: 0644->0755]
Cython/Plex/Traditional.py [changed mode: 0644->0755]
Cython/Plex/Transitions.py [changed mode: 0644->0755]
Cython/Plex/__init__.py [changed mode: 0644->0755]
Cython/Plex/test_tm.py [changed mode: 0644->0755]
Cython/TestUtils.py [changed mode: 0644->0755]
Cython/Tests/TestCodeWriter.py [changed mode: 0644->0755]
Cython/Tests/__init__.py [changed mode: 0644->0755]
Cython/Unix/LinuxSystem.py [changed mode: 0644->0755]
Cython/Unix/__init__.py [changed mode: 0644->0755]
Cython/Utils.py [changed mode: 0644->0755]
Cython/__init__.py [changed mode: 0644->0755]
Demos/Makefile [changed mode: 0644->0755]
Demos/Makefile.nodistutils [changed mode: 0644->0755]
Demos/Setup.py [changed mode: 0644->0755]
Demos/callback/Makefile [changed mode: 0644->0755]
Demos/callback/Makefile.nodistutils [changed mode: 0644->0755]
Demos/callback/README.txt [changed mode: 0644->0755]
Demos/callback/Setup.py [changed mode: 0644->0755]
Demos/callback/cheese.pyx [changed mode: 0644->0755]
Demos/callback/cheesefinder.c [changed mode: 0644->0755]
Demos/callback/cheesefinder.h [changed mode: 0644->0755]
Demos/callback/run_cheese.py [changed mode: 0644->0755]
Demos/embed/Makefile [changed mode: 0644->0755]
Demos/embed/Makefile.msc [changed mode: 0644->0755]
Demos/embed/Makefile.msc.static [changed mode: 0644->0755]
Demos/embed/Makefile.unix [changed mode: 0644->0755]
Demos/embed/README [changed mode: 0644->0755]
Demos/embed/embedded.pyx [changed mode: 0644->0755]
Demos/embed/main.c [changed mode: 0644->0755]
Demos/numeric_demo.pyx [changed mode: 0644->0755]
Demos/primes.pyx [changed mode: 0644->0755]
Demos/pyprimes.py [changed mode: 0644->0755]
Demos/run_numeric_demo.py [changed mode: 0644->0755]
Demos/run_primes.py [changed mode: 0644->0755]
Demos/run_spam.py [changed mode: 0644->0755]
Demos/spam.pyx [changed mode: 0644->0755]
Doc/About.html [changed mode: 0644->0755]
Doc/FAQ.html [changed mode: 0644->0755]
Doc/extension_types.html [changed mode: 0644->0755]
Doc/index.html [changed mode: 0644->0755]
Doc/overview.html [changed mode: 0644->0755]
Doc/primes.c [changed mode: 0644->0755]
Doc/s5/Makefile [changed mode: 0644->0755]
Doc/s5/cython-ep2008.txt [changed mode: 0644->0755]
Doc/s5/ep2008/stupidlowercase.py [changed mode: 0644->0755]
Doc/s5/ep2008/worker.py [changed mode: 0644->0755]
Doc/s5/ui/default/blank.gif [changed mode: 0644->0755]
Doc/s5/ui/default/bodybg.gif [changed mode: 0644->0755]
Doc/s5/ui/default/cython-logo64.png [changed mode: 0644->0755]
Doc/s5/ui/default/framing.css [changed mode: 0644->0755]
Doc/s5/ui/default/iepngfix.htc [changed mode: 0644->0755]
Doc/s5/ui/default/opera.css [changed mode: 0644->0755]
Doc/s5/ui/default/outline.css [changed mode: 0644->0755]
Doc/s5/ui/default/pretty.css [changed mode: 0644->0755]
Doc/s5/ui/default/print.css [changed mode: 0644->0755]
Doc/s5/ui/default/s5-core.css [changed mode: 0644->0755]
Doc/s5/ui/default/slides.css [changed mode: 0644->0755]
Doc/s5/ui/default/slides.js [changed mode: 0644->0755]
Doc/sharing.html [changed mode: 0644->0755]
Doc/special_methods.html [changed mode: 0644->0755]
INSTALL.txt [changed mode: 0644->0755]
Includes/__cython__.pxd [changed mode: 0644->0755]
Includes/numpy.pxd [changed mode: 0644->0755]
Includes/python.pxd [changed mode: 0644->0755]
Includes/python2.5.pxd [changed mode: 0644->0755]
Includes/python_bool.pxd [changed mode: 0644->0755]
Includes/python_complex.pxd [changed mode: 0644->0755]
Includes/python_dict.pxd [changed mode: 0644->0755]
Includes/python_exc.pxd [changed mode: 0644->0755]
Includes/python_float.pxd [changed mode: 0644->0755]
Includes/python_function.pxd [changed mode: 0644->0755]
Includes/python_instance.pxd [changed mode: 0644->0755]
Includes/python_int.pxd [changed mode: 0644->0755]
Includes/python_iterator.pxd [changed mode: 0644->0755]
Includes/python_list.pxd [changed mode: 0644->0755]
Includes/python_long.pxd [changed mode: 0644->0755]
Includes/python_mapping.pxd [changed mode: 0644->0755]
Includes/python_mem.pxd [changed mode: 0644->0755]
Includes/python_method.pxd [changed mode: 0644->0755]
Includes/python_module.pxd [changed mode: 0644->0755]
Includes/python_number.pxd [changed mode: 0644->0755]
Includes/python_object.pxd [changed mode: 0644->0755]
Includes/python_parse.pxd [changed mode: 0644->0755]
Includes/python_ref.pxd [changed mode: 0644->0755]
Includes/python_sequence.pxd [changed mode: 0644->0755]
Includes/python_set.pxd [changed mode: 0644->0755]
Includes/python_string.pxd [changed mode: 0644->0755]
Includes/python_tuple.pxd [changed mode: 0644->0755]
Includes/python_type.pxd [changed mode: 0644->0755]
Includes/stdio.pxd [changed mode: 0644->0755]
Includes/stdlib.pxd [changed mode: 0644->0755]
LICENSE.txt [changed mode: 0644->0755]
MANIFEST.in [changed mode: 0644->0755]
Makefile [changed mode: 0644->0755]
README.txt [changed mode: 0644->0755]
ToDo.txt [changed mode: 0644->0755]
Tools/cython-mode.el [changed mode: 0644->0755]
Tools/cython.st [changed mode: 0644->0755]
USAGE.txt [changed mode: 0644->0755]
cython.py [changed mode: 0644->0755]
runtests.py [changed mode: 0644->0755]
setup.py [changed mode: 0644->0755]
tests/broken/assert2.pyx [changed mode: 0644->0755]
tests/broken/b_extimpinherit.pyx [changed mode: 0644->0755]
tests/broken/big_t.pyx [changed mode: 0644->0755]
tests/broken/builtinconst.pyx [changed mode: 0644->0755]
tests/broken/builtindict.pyx [changed mode: 0644->0755]
tests/broken/builtinlist.pyx [changed mode: 0644->0755]
tests/broken/builtinslice.pyx [changed mode: 0644->0755]
tests/broken/builtintype.pyx [changed mode: 0644->0755]
tests/broken/cascadedass.pyx [changed mode: 0644->0755]
tests/broken/cdefemptysue.pyx [changed mode: 0644->0755]
tests/broken/cdefexternblock.pyx [changed mode: 0644->0755]
tests/broken/cdefexternempty.pyx [changed mode: 0644->0755]
tests/broken/cexportfunc.pyx [changed mode: 0644->0755]
tests/broken/cimport.pyx [changed mode: 0644->0755]
tests/broken/cimportfrom.pyx [changed mode: 0644->0755]
tests/broken/cimportfrompkgdir.pyx [changed mode: 0644->0755]
tests/broken/cimportfunc.pyx [changed mode: 0644->0755]
tests/broken/ctypedefextern.pyx [changed mode: 0644->0755]
tests/broken/e_exestmtinexttype.pyx [changed mode: 0644->0755]
tests/broken/e_nogil.pyx [changed mode: 0644->0755]
tests/broken/externfunc.pyx [changed mode: 0644->0755]
tests/broken/externsue.pyx [changed mode: 0644->0755]
tests/broken/fwddeclcclass.pyx [changed mode: 0644->0755]
tests/broken/getattr.pyx [changed mode: 0644->0755]
tests/broken/getattr3ref.pyx [changed mode: 0644->0755]
tests/broken/i_public.pyx [changed mode: 0644->0755]
tests/broken/includepublic.pyx [changed mode: 0644->0755]
tests/broken/inplace_lhs.pyx [changed mode: 0644->0755]
tests/broken/inplace_ops.pyx [changed mode: 0644->0755]
tests/broken/intindex.pyx [changed mode: 0644->0755]
tests/broken/invalid-module-name.pyx [changed mode: 0644->0755]
tests/broken/l_capi.pyx [changed mode: 0644->0755]
tests/broken/l_cfuncexport.pyx [changed mode: 0644->0755]
tests/broken/naanou_1.pyx [changed mode: 0644->0755]
tests/broken/newstyleintforloop.pyx [changed mode: 0644->0755]
tests/broken/oldstyleintforloop.pyx [changed mode: 0644->0755]
tests/broken/onelinesuite.pyx [changed mode: 0644->0755]
tests/broken/pkg.cimport.pyx [changed mode: 0644->0755]
tests/broken/pkg.cimportfrom.pyx [changed mode: 0644->0755]
tests/broken/plex2.pyx [changed mode: 0644->0755]
tests/broken/r_builtinlist.pyx [changed mode: 0644->0755]
tests/broken/r_capi.pyx [changed mode: 0644->0755]
tests/broken/r_cfuncimport.pyx [changed mode: 0644->0755]
tests/broken/r_classdoc.pyx [changed mode: 0644->0755]
tests/broken/r_classmodname.pyx [changed mode: 0644->0755]
tests/broken/r_excval.pyx [changed mode: 0644->0755]
tests/broken/r_extcmethod.pyx [changed mode: 0644->0755]
tests/broken/r_extimpinherit.pyx [changed mode: 0644->0755]
tests/broken/r_extinherit.pyx [changed mode: 0644->0755]
tests/broken/r_extmember.pyx [changed mode: 0644->0755]
tests/broken/r_extnumeric2.pyx [changed mode: 0644->0755]
tests/broken/r_extproperty.pyx [changed mode: 0644->0755]
tests/broken/r_extweakref.pyx [changed mode: 0644->0755]
tests/broken/r_getattr3.pyx [changed mode: 0644->0755]
tests/broken/r_import.pyx [changed mode: 0644->0755]
tests/broken/r_inhcmethcall.pyx [changed mode: 0644->0755]
tests/broken/r_kwonlyargs.pyx [changed mode: 0644->0755]
tests/broken/r_newstyleclass.pyx [changed mode: 0644->0755]
tests/broken/r_simpcall.pyx [changed mode: 0644->0755]
tests/broken/r_tbfilename.pyx [changed mode: 0644->0755]
tests/broken/r_traceback.pyx [changed mode: 0644->0755]
tests/broken/r_unpack.pyx [changed mode: 0644->0755]
tests/broken/raise.pyx [changed mode: 0644->0755]
tests/broken/ref2global.pyx [changed mode: 0644->0755]
tests/broken/retconvert.pyx [changed mode: 0644->0755]
tests/broken/specialfloatvals.pyx [changed mode: 0644->0755]
tests/broken/test_include_options.pyx [changed mode: 0644->0755]
tests/broken/tryexceptelse.pyx [changed mode: 0644->0755]
tests/broken/tslots.pyx [changed mode: 0644->0755]
tests/broken/typeofexttype.pyx [changed mode: 0644->0755]
tests/broken/voidstarcast.pyx [changed mode: 0644->0755]
tests/compile/a_capi.pyx [changed mode: 0644->0755]
tests/compile/altet1.h [changed mode: 0644->0755]
tests/compile/altet1.pyx.BROKEN [changed mode: 0644->0755]
tests/compile/argdefault.pyx [changed mode: 0644->0755]
tests/compile/arrayptrcompat.pyx [changed mode: 0644->0755]
tests/compile/arraytoptrarg.pyx [changed mode: 0644->0755]
tests/compile/ass2longlong.pyx [changed mode: 0644->0755]
tests/compile/behnel4.pyx [changed mode: 0644->0755]
tests/compile/belchenko1.pyx [changed mode: 0644->0755]
tests/compile/belchenko2.h [changed mode: 0644->0755]
tests/compile/belchenko2.pyx.BROKEN [changed mode: 0644->0755]
tests/compile/builtin.pyx [changed mode: 0644->0755]
tests/compile/builtinfuncs.pyx [changed mode: 0644->0755]
tests/compile/burton1.pyx.BROKEN [changed mode: 0644->0755]
tests/compile/callingconvention.pyx [changed mode: 0644->0755]
tests/compile/cargdef.pyx [changed mode: 0644->0755]
tests/compile/carrdecl.pyx [changed mode: 0644->0755]
tests/compile/cascmp.pyx [changed mode: 0644->0755]
tests/compile/cassign.pyx [changed mode: 0644->0755]
tests/compile/casttoexttype.pyx [changed mode: 0644->0755]
tests/compile/cdefexternfromstar.pyx [changed mode: 0644->0755]
tests/compile/cenum.pyx [changed mode: 0644->0755]
tests/compile/cforfromloop.pyx [changed mode: 0644->0755]
tests/compile/classmethargdefault.pyx [changed mode: 0644->0755]
tests/compile/cnamespec.pyx [changed mode: 0644->0755]
tests/compile/cnumop.pyx [changed mode: 0644->0755]
tests/compile/coercearraytoptr.pyx [changed mode: 0644->0755]
tests/compile/coercetovoidptr.pyx [changed mode: 0644->0755]
tests/compile/complexbasetype.pyx [changed mode: 0644->0755]
tests/compile/constexpr.pyx [changed mode: 0644->0755]
tests/compile/coventry1.pyx [changed mode: 0644->0755]
tests/compile/cpdef.pyx [changed mode: 0644->0755]
tests/compile/crunchytype.h [changed mode: 0644->0755]
tests/compile/crunchytype.pxd [changed mode: 0644->0755]
tests/compile/cstructreturn.pyx [changed mode: 0644->0755]
tests/compile/ctypedef.pyx [changed mode: 0644->0755]
tests/compile/ctypedefclass.pyx [changed mode: 0644->0755]
tests/compile/ctypedefenum.pyx [changed mode: 0644->0755]
tests/compile/ctypedefstruct.pyx [changed mode: 0644->0755]
tests/compile/ctypedefunion.pyx [changed mode: 0644->0755]
tests/compile/cunsignedlong.pyx [changed mode: 0644->0755]
tests/compile/cverylongtypes.pyx [changed mode: 0644->0755]
tests/compile/declandimpl.pxd [changed mode: 0644->0755]
tests/compile/declandimpl.pyx [changed mode: 0644->0755]
tests/compile/declarations.pyx [changed mode: 0644->0755]
tests/compile/del.pyx [changed mode: 0644->0755]
tests/compile/delslice.pyx [changed mode: 0644->0755]
tests/compile/docstrings.pyx [changed mode: 0644->0755]
tests/compile/doda1.pyx [changed mode: 0644->0755]
tests/compile/dotted_cimport.pyx [changed mode: 0644->0755]
tests/compile/dotted_cimport_submodule/__init__.pyx [changed mode: 0644->0755]
tests/compile/dotted_cimport_submodule/a.pxd [changed mode: 0644->0755]
tests/compile/drake1.pyx [changed mode: 0644->0755]
tests/compile/emptytry.pyx [changed mode: 0644->0755]
tests/compile/enumintcompat.pyx [changed mode: 0644->0755]
tests/compile/eqcmp.pyx [changed mode: 0644->0755]
tests/compile/ewing1.pyx [changed mode: 0644->0755]
tests/compile/ewing3.pyx [changed mode: 0644->0755]
tests/compile/ewing4.pyx [changed mode: 0644->0755]
tests/compile/ewing5.pyx [changed mode: 0644->0755]
tests/compile/ewing6.pyx [changed mode: 0644->0755]
tests/compile/ewing7.pyx [changed mode: 0644->0755]
tests/compile/ewing8.pxd [changed mode: 0644->0755]
tests/compile/ewing8.pyx [changed mode: 0644->0755]
tests/compile/ewing9.pxd [changed mode: 0644->0755]
tests/compile/ewing9.pyx [changed mode: 0644->0755]
tests/compile/excvalcheck.pyx [changed mode: 0644->0755]
tests/compile/excvaldecl.pyx [changed mode: 0644->0755]
tests/compile/excvalreturn.pyx [changed mode: 0644->0755]
tests/compile/extargdefault.pyx [changed mode: 0644->0755]
tests/compile/extcmethcall.pyx [changed mode: 0644->0755]
tests/compile/extcoerce.pyx [changed mode: 0644->0755]
tests/compile/extdelattr.pyx [changed mode: 0644->0755]
tests/compile/extdelitem.pyx [changed mode: 0644->0755]
tests/compile/extdelslice.pyx [changed mode: 0644->0755]
tests/compile/extdescrdel.pyx [changed mode: 0644->0755]
tests/compile/extdescrget.pyx [changed mode: 0644->0755]
tests/compile/extdescrset.pyx [changed mode: 0644->0755]
tests/compile/extern.pyx [changed mode: 0644->0755]
tests/compile/extexttype.pyx [changed mode: 0644->0755]
tests/compile/extforward.pyx [changed mode: 0644->0755]
tests/compile/extgetattr.pyx [changed mode: 0644->0755]
tests/compile/extgetitem.pyx [changed mode: 0644->0755]
tests/compile/exthash.pyx [changed mode: 0644->0755]
tests/compile/extimported.pyx [changed mode: 0644->0755]
tests/compile/extimportedsubtype.pyx [changed mode: 0644->0755]
tests/compile/extindex.pyx [changed mode: 0644->0755]
tests/compile/extinheritdel.pyx [changed mode: 0644->0755]
tests/compile/extinheritset.pyx [changed mode: 0644->0755]
tests/compile/extpropertyall.pyx [changed mode: 0644->0755]
tests/compile/extpropertydel.pyx [changed mode: 0644->0755]
tests/compile/extpropertydoc.pyx [changed mode: 0644->0755]
tests/compile/extpropertyget.pyx [changed mode: 0644->0755]
tests/compile/extpropertyset.pyx [changed mode: 0644->0755]
tests/compile/extpymemberdef.pyx [changed mode: 0644->0755]
tests/compile/extsetattr.pyx [changed mode: 0644->0755]
tests/compile/extsetitem.pyx [changed mode: 0644->0755]
tests/compile/extsetslice.pyx [changed mode: 0644->0755]
tests/compile/food.h [changed mode: 0644->0755]
tests/compile/for.pyx [changed mode: 0644->0755]
tests/compile/forfromelse.pyx [changed mode: 0644->0755]
tests/compile/formfeed.pyx [changed mode: 0644->0755]
tests/compile/fromimport.pyx [changed mode: 0644->0755]
tests/compile/funcptr.pyx [changed mode: 0644->0755]
tests/compile/gencall.pyx [changed mode: 0644->0755]
tests/compile/getattr3ref.pyx.BROKEN [changed mode: 0644->0755]
tests/compile/globalonly.pyx [changed mode: 0644->0755]
tests/compile/globalstmt.pyx [changed mode: 0644->0755]
tests/compile/globvardef.pyx [changed mode: 0644->0755]
tests/compile/gustafsson2.pyx [changed mode: 0644->0755]
tests/compile/hinsen1.h [changed mode: 0644->0755]
tests/compile/hinsen1.pyx.BROKEN [changed mode: 0644->0755]
tests/compile/hinsen2.pyx [changed mode: 0644->0755]
tests/compile/huss2.pyx [changed mode: 0644->0755]
tests/compile/ia_cdefblock.pyx [changed mode: 0644->0755]
tests/compile/import.pyx [changed mode: 0644->0755]
tests/compile/index.pyx [changed mode: 0644->0755]
tests/compile/indices.pyx [changed mode: 0644->0755]
tests/compile/ishimoto1.pyx [changed mode: 0644->0755]
tests/compile/ishimoto4.pyx [changed mode: 0644->0755]
tests/compile/jiba3.pyx [changed mode: 0644->0755]
tests/compile/jiba4.pyx [changed mode: 0644->0755]
tests/compile/jiba5.pyx [changed mode: 0644->0755]
tests/compile/jiba6.pyx [changed mode: 0644->0755]
tests/compile/johnson1.pyx [changed mode: 0644->0755]
tests/compile/johnson2.pyx [changed mode: 0644->0755]
tests/compile/khavkine1.pyx [changed mode: 0644->0755]
tests/compile/kleckner1.pyx [changed mode: 0644->0755]
tests/compile/lepage_2.pyx [changed mode: 0644->0755]
tests/compile/longunsigned.pyx [changed mode: 0644->0755]
tests/compile/magcmp.pyx [changed mode: 0644->0755]
tests/compile/nogil.h [changed mode: 0644->0755]
tests/compile/nogil.pyx [changed mode: 0644->0755]
tests/compile/nonctypedefclass.pyx [changed mode: 0644->0755]
tests/compile/none.pyx [changed mode: 0644->0755]
tests/compile/notnonearg.pyx [changed mode: 0644->0755]
tests/compile/nullptr.pyx [changed mode: 0644->0755]
tests/compile/omittedargnames.pyx [changed mode: 0644->0755]
tests/compile/pinard4.pyx [changed mode: 0644->0755]
tests/compile/pyclass.pyx [changed mode: 0644->0755]
tests/compile/r_pernici1.pyx [changed mode: 0644->0755]
tests/compile/signedtypes.pyx [changed mode: 0644->0755]
tests/compile/slicex.pyx [changed mode: 0644->0755]
tests/compile/specmethargdefault.pyx [changed mode: 0644->0755]
tests/compile/specmethdocstring.pyx [changed mode: 0644->0755]
tests/compile/specmethextarg.pyx [changed mode: 0644->0755]
tests/compile/traceback.pyx [changed mode: 0644->0755]
tests/compile/tryexcept.pyx [changed mode: 0644->0755]
tests/compile/tryfinally.pyx [changed mode: 0644->0755]
tests/compile/typecast.pyx [changed mode: 0644->0755]
tests/compile/watts2.pyx [changed mode: 0644->0755]
tests/compile/while.pyx [changed mode: 0644->0755]
tests/compile/withgil.pyx [changed mode: 0644->0755]
tests/errors/cdefkwargs.pyx [changed mode: 0644->0755]
tests/errors/cdefoptargs.pyx [changed mode: 0644->0755]
tests/errors/cmethbasematch.pyx [changed mode: 0644->0755]
tests/errors/e_addop.pyx [changed mode: 0644->0755]
tests/errors/e_argdefault.pyx [changed mode: 0644->0755]
tests/errors/e_ass.pyx [changed mode: 0644->0755]
tests/errors/e_assnone.pyx [changed mode: 0644->0755]
tests/errors/e_badexcvaltype.pyx [changed mode: 0644->0755]
tests/errors/e_badfuncargtype.pyx [changed mode: 0644->0755]
tests/errors/e_badpyparam.pyx [changed mode: 0644->0755]
tests/errors/e_badtypeuse.pyx [changed mode: 0644->0755]
tests/errors/e_bitop.pyx [changed mode: 0644->0755]
tests/errors/e_cdef_missing_declarator.pyx [changed mode: 0644->0755]
tests/errors/e_cdefassign.pyx [changed mode: 0644->0755]
tests/errors/e_cdefemptysue.pyx [changed mode: 0644->0755]
tests/errors/e_cenum.pyx [changed mode: 0644->0755]
tests/errors/e_cmethbasematch.pyx [changed mode: 0644->0755]
tests/errors/e_cmp.pyx [changed mode: 0644->0755]
tests/errors/e_cstruct.pyx [changed mode: 0644->0755]
tests/errors/e_ctypedefforward.pyx [changed mode: 0644->0755]
tests/errors/e_ctypedefornot.pyx [changed mode: 0644->0755]
tests/errors/e_declarations.pyx [changed mode: 0644->0755]
tests/errors/e_del.pyx [changed mode: 0644->0755]
tests/errors/e_excvalfunctype.pyx [changed mode: 0644->0755]
tests/errors/e_extmember.pyx [changed mode: 0644->0755]
tests/errors/e_extweakref.pyx [changed mode: 0644->0755]
tests/errors/e_index.pyx [changed mode: 0644->0755]
tests/errors/e_modop.pyx [changed mode: 0644->0755]
tests/errors/e_multass.pyx [changed mode: 0644->0755]
tests/errors/e_nargs.pyx [changed mode: 0644->0755]
tests/errors/e_nogilcmeth.pxd [changed mode: 0644->0755]
tests/errors/e_nogilcmeth.pyx [changed mode: 0644->0755]
tests/errors/e_nogilfunctype.pyx [changed mode: 0644->0755]
tests/errors/e_notnone.pyx [changed mode: 0644->0755]
tests/errors/e_notnone2.pyx [changed mode: 0644->0755]
tests/errors/e_numop.pyx [changed mode: 0644->0755]
tests/errors/e_powop.pyx [changed mode: 0644->0755]
tests/errors/e_pyobinstruct.pyx [changed mode: 0644->0755]
tests/errors/e_redeclmeth.pyx [changed mode: 0644->0755]
tests/errors/e_return.pyx [changed mode: 0644->0755]
tests/errors/e_sizeofincomplete.pyx [changed mode: 0644->0755]
tests/errors/e_slice.pyx [changed mode: 0644->0755]
tests/errors/e_subop.pyx [changed mode: 0644->0755]
tests/errors/e_tempcast.pyx [changed mode: 0644->0755]
tests/errors/e_undefexttype.pyx [changed mode: 0644->0755]
tests/errors/e_unop.pyx [changed mode: 0644->0755]
tests/errors/e_while.pyx [changed mode: 0644->0755]
tests/errors/empty.pyx [changed mode: 0644->0755]
tests/errors/encoding.pyx [changed mode: 0644->0755]
tests/errors/futurebraces.pyx [changed mode: 0644->0755]
tests/errors/nogil.pyx [changed mode: 0644->0755]
tests/errors/nogilcmeth.pxd [changed mode: 0644->0755]
tests/errors/nogilcmeth.pyx [changed mode: 0644->0755]
tests/errors/nogilfunctype.pyx [changed mode: 0644->0755]
tests/errors/se_badindent.pyx [changed mode: 0644->0755]
tests/errors/se_badindent2.pyx [changed mode: 0644->0755]
tests/errors/se_conddef.pyx [changed mode: 0644->0755]
tests/errors/se_mixtabspace.pyx [changed mode: 0644->0755]
tests/errors/se_multass.pyx [changed mode: 0644->0755]
tests/errors/se_nestdef.pyx [changed mode: 0644->0755]
tests/errors/undefinedname.pyx [changed mode: 0644->0755]
tests/errors/void_as_arg.pyx [changed mode: 0644->0755]
tests/run/__getattribute__.pyx [changed mode: 0644->0755]
tests/run/__getattribute_subclasses__.pyx [changed mode: 0644->0755]
tests/run/addloop.pyx [changed mode: 0644->0755]
tests/run/addop.pyx [changed mode: 0644->0755]
tests/run/addressof.pyx [changed mode: 0644->0755]
tests/run/altet2.pyx [changed mode: 0644->0755]
tests/run/anonymousenum.pyx [changed mode: 0644->0755]
tests/run/append.pyx [changed mode: 0644->0755]
tests/run/ass2cglobal.pyx [changed mode: 0644->0755]
tests/run/ass2global.pyx [changed mode: 0644->0755]
tests/run/ass2local.pyx [changed mode: 0644->0755]
tests/run/assert.pyx [changed mode: 0644->0755]
tests/run/attr.pyx [changed mode: 0644->0755]
tests/run/baas3.pyx [changed mode: 0644->0755]
tests/run/backquote.pyx [changed mode: 0644->0755]
tests/run/behnel1.pyx [changed mode: 0644->0755]
tests/run/behnel2.pyx [changed mode: 0644->0755]
tests/run/behnel3.pyx [changed mode: 0644->0755]
tests/run/big_indices.pyx [changed mode: 0644->0755]
tests/run/bishop1.pyx [changed mode: 0644->0755]
tests/run/bishop2.pyx [changed mode: 0644->0755]
tests/run/boolop.pyx [changed mode: 0644->0755]
tests/run/bufaccess.pyx [changed mode: 0644->0755]
tests/run/buffer.pyx [changed mode: 0644->0755]
tests/run/carrays.pyx [changed mode: 0644->0755]
tests/run/cdefassign.pyx [changed mode: 0644->0755]
tests/run/cdefoptargs.pyx [changed mode: 0644->0755]
tests/run/cfuncdef.pyx [changed mode: 0644->0755]
tests/run/cintop.pyx [changed mode: 0644->0755]
tests/run/classbody_exec.pyx [changed mode: 0644->0755]
tests/run/classkwonlyargs.pyx [changed mode: 0644->0755]
tests/run/classmethod.pyx [changed mode: 0644->0755]
tests/run/classpass.pyx [changed mode: 0644->0755]
tests/run/compiledef.pyx [changed mode: 0644->0755]
tests/run/concatcstrings.pyx [changed mode: 0644->0755]
tests/run/cstringmeth.pyx [changed mode: 0644->0755]
tests/run/cstringmul.pyx [changed mode: 0644->0755]
tests/run/cstruct.pyx [changed mode: 0644->0755]
tests/run/ct_DEF.pyx [changed mode: 0644->0755]
tests/run/ct_IF.pyx [changed mode: 0644->0755]
tests/run/cunion.pyx [changed mode: 0644->0755]
tests/run/cvardef.pyx [changed mode: 0644->0755]
tests/run/decorators.pyx [changed mode: 0644->0755]
tests/run/dict.pyx [changed mode: 0644->0755]
tests/run/dietachmayer1.pyx [changed mode: 0644->0755]
tests/run/exarkun.pyx [changed mode: 0644->0755]
tests/run/exceptionpropagation.pyx [changed mode: 0644->0755]
tests/run/extclassbody.pyx [changed mode: 0644->0755]
tests/run/extclasspass.pyx [changed mode: 0644->0755]
tests/run/extcmethod.pyx [changed mode: 0644->0755]
tests/run/extinherit.pyx [changed mode: 0644->0755]
tests/run/extinstantiate.pyx [changed mode: 0644->0755]
tests/run/extkwonlyargs.pyx [changed mode: 0644->0755]
tests/run/extlen.pyx [changed mode: 0644->0755]
tests/run/extpropertyref.pyx [changed mode: 0644->0755]
tests/run/extstarargs.pyx [changed mode: 0644->0755]
tests/run/exttype.pyx [changed mode: 0644->0755]
tests/run/filenames.pxi [changed mode: 0644->0755]
tests/run/filenames.pyx [changed mode: 0644->0755]
tests/run/flatin.pyx [changed mode: 0644->0755]
tests/run/future_division.pyx [changed mode: 0644->0755]
tests/run/future_unicode_literals.pyx [changed mode: 0644->0755]
tests/run/getattr3call.pyx [changed mode: 0644->0755]
tests/run/if.pyx [changed mode: 0644->0755]
tests/run/include.pyx [changed mode: 0644->0755]
tests/run/inhcmethcall.pyx [changed mode: 0644->0755]
tests/run/inop.pyx [changed mode: 0644->0755]
tests/run/inplace.pyx [changed mode: 0644->0755]
tests/run/ishimoto2.pyx [changed mode: 0644->0755]
tests/run/ishimoto3.pyx [changed mode: 0644->0755]
tests/run/isnonebool.pyx [changed mode: 0644->0755]
tests/run/iteratorexception.pyx [changed mode: 0644->0755]
tests/run/jarausch1.pyx [changed mode: 0644->0755]
tests/run/king1.pyx [changed mode: 0644->0755]
tests/run/kostyrka.pyx [changed mode: 0644->0755]
tests/run/kostyrka2.pyx [changed mode: 0644->0755]
tests/run/kwargproblems.pyx [changed mode: 0644->0755]
tests/run/kwonlyargs.pyx [changed mode: 0644->0755]
tests/run/kwonlyargscall.pyx [changed mode: 0644->0755]
tests/run/lepage_1.pyx [changed mode: 0644->0755]
tests/run/list.pyx [changed mode: 0644->0755]
tests/run/literals.pyx [changed mode: 0644->0755]
tests/run/menten1.pyx [changed mode: 0644->0755]
tests/run/modbody.pyx [changed mode: 0644->0755]
tests/run/modop.pyx [changed mode: 0644->0755]
tests/run/multass.pyx [changed mode: 0644->0755]
tests/run/new_style_exceptions.pyx [changed mode: 0644->0755]
tests/run/nogil.pyx [changed mode: 0644->0755]
tests/run/nononetypecheck.pyx [changed mode: 0644->0755]
tests/run/notinop.pyx [changed mode: 0644->0755]
tests/run/pass.pyx [changed mode: 0644->0755]
tests/run/pinard5.pyx [changed mode: 0644->0755]
tests/run/pinard6.pyx [changed mode: 0644->0755]
tests/run/pinard7.pyx [changed mode: 0644->0755]
tests/run/pinard8.pyx [changed mode: 0644->0755]
tests/run/powop.pyx [changed mode: 0644->0755]
tests/run/print.pyx [changed mode: 0644->0755]
tests/run/pycmp.pyx [changed mode: 0644->0755]
tests/run/pyextattrref.pyx [changed mode: 0644->0755]
tests/run/pyintop.pyx [changed mode: 0644->0755]
tests/run/pylistsubtype.pyx [changed mode: 0644->0755]
tests/run/pynumop.pyx [changed mode: 0644->0755]
tests/run/r_addint.pyx [changed mode: 0644->0755]
tests/run/r_argdefault.pyx [changed mode: 0644->0755]
tests/run/r_barbieri1.pyx [changed mode: 0644->0755]
tests/run/r_bishop3.pyx [changed mode: 0644->0755]
tests/run/r_bowden1.pyx [changed mode: 0644->0755]
tests/run/r_delgado_1.pyx [changed mode: 0644->0755]
tests/run/r_docstrings.pyx [changed mode: 0644->0755]
tests/run/r_extcomplex2.pyx [changed mode: 0644->0755]
tests/run/r_extstarargs.pyx [changed mode: 0644->0755]
tests/run/r_forloop.pyx [changed mode: 0644->0755]
tests/run/r_hordijk1.pyx [changed mode: 0644->0755]
tests/run/r_huss3.pyx [changed mode: 0644->0755]
tests/run/r_jeff_epler_1.pyx [changed mode: 0644->0755]
tests/run/r_jiba1.pxd [changed mode: 0644->0755]
tests/run/r_jiba1.pyx [changed mode: 0644->0755]
tests/run/r_lepage_3.pyx [changed mode: 0644->0755]
tests/run/r_mang1.pyx [changed mode: 0644->0755]
tests/run/r_mcintyre1.pyx [changed mode: 0644->0755]
tests/run/r_mitch_chapman_2.pyx [changed mode: 0644->0755]
tests/run/r_primes.pyx [changed mode: 0644->0755]
tests/run/r_print.pyx [changed mode: 0644->0755]
tests/run/r_pyclass.pyx [changed mode: 0644->0755]
tests/run/r_pyclassdefault.pyx [changed mode: 0644->0755]
tests/run/r_pythonapi.pyx [changed mode: 0644->0755]
tests/run/r_spamtype.pyx [changed mode: 0644->0755]
tests/run/r_starargcall.pyx [changed mode: 0644->0755]
tests/run/r_starargs.pyx [changed mode: 0644->0755]
tests/run/r_starargsonly.pyx [changed mode: 0644->0755]
tests/run/r_toofewargs.pyx [changed mode: 0644->0755]
tests/run/r_uintindex.pyx [changed mode: 0644->0755]
tests/run/r_vree_1.pyx [changed mode: 0644->0755]
tests/run/ref2local.pyx [changed mode: 0644->0755]
tests/run/return.pyx [changed mode: 0644->0755]
tests/run/returnparassign.pyx [changed mode: 0644->0755]
tests/run/rodriguez_1.pyx [changed mode: 0644->0755]
tests/run/simpcall.pyx [changed mode: 0644->0755]
tests/run/sizeof.pyx [changed mode: 0644->0755]
tests/run/slice2.pyx [changed mode: 0644->0755]
tests/run/slice3.pyx [changed mode: 0644->0755]
tests/run/specialfloat.pyx [changed mode: 0644->0755]
tests/run/starargs.pyx [changed mode: 0644->0755]
tests/run/staticmethod.pyx [changed mode: 0644->0755]
tests/run/strconstinclass.pyx [changed mode: 0644->0755]
tests/run/strfunction.pyx [changed mode: 0644->0755]
tests/run/strliterals.pyx [changed mode: 0644->0755]
tests/run/subop.pyx [changed mode: 0644->0755]
tests/run/switch.pyx [changed mode: 0644->0755]
tests/run/tandemstats.pyx [changed mode: 0644->0755]
tests/run/testinclude.pxi [changed mode: 0644->0755]
tests/run/tuple.pyx [changed mode: 0644->0755]
tests/run/tuplereassign.pyx [changed mode: 0644->0755]
tests/run/unicodefunction.pyx [changed mode: 0644->0755]
tests/run/unicodeliterals.pyx [changed mode: 0644->0755]
tests/run/unicodeliteralsdefault.pyx [changed mode: 0644->0755]
tests/run/unicodeliteralslatin1.pyx [changed mode: 0644->0755]
tests/run/unop.pyx [changed mode: 0644->0755]
tests/run/unpack.pyx [changed mode: 0644->0755]
tests/run/unpacklistcomp.pyx [changed mode: 0644->0755]
tests/run/varargcall.pyx [changed mode: 0644->0755]
tests/run/varargdecl.pyx [changed mode: 0644->0755]
tests/run/watts1.pyx [changed mode: 0644->0755]
tests/run/withnogil.pyx [changed mode: 0644->0755]
tests/run/withstat.pyx [changed mode: 0644->0755]
tests/run/wundram1.pyx [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
diff --git a/.hgtags b/.hgtags
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index a4f1068..c087240
@@ -43,8 +43,9 @@ def put_acquire_arg_buffer(entry, code, pos):
     code.begin_block()
     code.putln('%s.buf = 0;' % bufstruct) # PEP requirement
     code.put(code.error_goto_if(
-        'PyObject_GetBuffer(%s, &%s, %s) == -1' % (
-        cname, bufstruct, flags), pos))
+        'PyObject_GetBuffer(%s, &%s, %s) == -1  || %s(&%s, %d) == -1' % (
+        cname, bufstruct, flags, buffer_aux.tschecker, bufstruct, entry.type.ndim),
+        pos))
     # An exception raised in arg parsing cannot be catched, so no
     # need to do care about the buffer then.
     put_unpack_buffer_aux_into_scope(buffer_aux, code)
@@ -54,7 +55,8 @@ def put_release_buffer(entry, code):
     code.putln("if (%s != Py_None) PyObject_ReleaseBuffer(%s, &%s);" % (
         entry.cname, entry.cname, entry.buffer_aux.buffer_info_var.cname))
 
-def put_assign_to_buffer(lhs_cname, rhs_cname, buffer_aux, is_initialized, pos, code):
+def put_assign_to_buffer(lhs_cname, rhs_cname, buffer_aux, buffer_type,
+                         is_initialized, pos, code):
     bufstruct = buffer_aux.buffer_info_var.cname
     flags = '0'
 
@@ -74,8 +76,8 @@ def put_assign_to_buffer(lhs_cname, rhs_cname, buffer_aux, is_initialized, pos,
             rhs_cname,
             bufstruct,
             flags)
-         + ' || %s((char*)%s.format) == NULL' % (
-            buffer_aux.tschecker.cname, bufstruct
+         + ' || %s(&%s, %d) == -1' % (
+            buffer_aux.tschecker, bufstruct, buffer_type.ndim 
         )))
     code.begin_block()
     # If acquisition failed, attempt to reacquire the old buffer
@@ -156,9 +158,9 @@ def put_access(entry, index_types, index_cnames, tmp_cname, pos, code):
 # Utility function to set the right exception
 # The caller should immediately goto_error
 buffer_boundsfail_error_utility_code = [
-"""
+"""\
 static void __Pyx_BufferIndexError(int axis); /*proto*/
-""","""
+""","""\
 static void __Pyx_BufferIndexError(int axis) {
   PyErr_Format(PyExc_IndexError,
      "Out of bounds on buffer access (axis %d)", axis);
@@ -166,51 +168,61 @@ static void __Pyx_BufferIndexError(int axis) {
 """]
 
 
-class PureCFuncNode(Node):
-    child_attrs = []
-    
-    def __init__(self, pos, cname, type, c_code, visibility='private'):
-        self.pos = pos
-        self.cname = cname
-        self.type = type
-        self.c_code = c_code
-        self.visibility = visibility
-        self.entry = None
-
-    def analyse_expressions(self, env):
-        if not self.entry:
-            self.entry = env.declare_cfunction(
-                            "<pure c function:%s>" % self.cname,
-                            self.type, self.pos, cname=self.cname,
-                            defining=True, visibility=self.visibility)
-
-    def generate_function_definitions(self, env, code, transforms):
-        assert self.type.optional_arg_count == 0
-        visibility = self.entry.visibility
-        if visibility != 'private':
-            storage_class = "%s " % Naming.extern_c_macro
-        else:
-            storage_class = "static "
-        arg_decls = [arg.declaration_code() for arg in self.type.args]
-        sig = self.type.return_type.declaration_code(
-            self.type.function_header_code(self.cname, ", ".join(arg_decls)))
-        code.putln("")
-        code.putln("%s%s {" % (storage_class, sig))
-        code.put(self.c_code)
-        code.putln("}")
+#
+# Buffer type checking. Utility code for checking that acquired
+# buffers match our assumptions. We only need to check ndim and
+# the format string; the access mode/flags is checked by the
+# exporter.
+#
+buffer_check_utility_code = ["""\
+static const char* __Pyx_ConsumeWhitespace(const char* ts); /*proto*/
+static const char* __Pyx_BufferTypestringCheckEndian(const char* ts); /*proto*/
+static void __Pyx_BufferNdimError(Py_buffer* buffer, int expected_ndim); /*proto*/
+""", """
+static const char* __Pyx_ConsumeWhitespace(const char* ts) {
+  while (1) {
+    switch (*ts) {
+      case 10:
+      case 13:
+      case ' ':
+        ++ts;
+      default:
+        return ts;
+    }
+  }
+}
 
-    def generate_execution_code(self, code):
-        pass
+static const char* __Pyx_BufferTypestringCheckEndian(const char* ts) {
+  int ok = 1;
+  switch (*ts) {
+    case '@':
+    case '=':
+      ++ts; break;
+    case '<':
+      if (__BYTE_ORDER == __LITTLE_ENDIAN) ++ts;
+      else ok = 0;
+      break;
+    case '>':
+    case '!':
+      if (__BYTE_ORDER == __BIG_ENDIAN) ++ts;
+      else ok = 0;
+      break;
+  }
+  if (!ok) {
+    PyErr_Format(PyExc_ValueError, "Buffer has wrong endianness (rejecting on '%s')", ts);
+    return NULL;
+  }
+  return ts;
+}
 
+static void __Pyx_BufferNdimError(Py_buffer* buffer, int expected_ndim) {
+  PyErr_Format(PyExc_ValueError,
+               "Buffer has wrong number of dimensions (expected %d, got %d)",
+               expected_ndim, buffer->ndim);
+}
 
-tschecker_functype = PyrexTypes.CFuncType(
-    PyrexTypes.c_char_ptr_type,
-    [PyrexTypes.CFuncTypeArg(EncodedString("ts"), PyrexTypes.c_char_ptr_type,
-                             (0, 0, None), cname="ts")],
-    exception_value = "NULL"
-)  
+"""]
 
-tsprefix = "__Pyx_tsc"
 
 class IntroduceBufferAuxiliaryVars(CythonTransform):
 
@@ -227,6 +239,7 @@ class IntroduceBufferAuxiliaryVars(CythonTransform):
             return node
         self.bufstruct_type = cymod.entries[u'Py_buffer'].type
         self.tscheckers = {}
+        self.tsfuncs = set()
         self.ts_funcs = []
         self.ts_item_checkers = {}
         self.module_scope = node.scope
@@ -258,7 +271,7 @@ class IntroduceBufferAuxiliaryVars(CythonTransform):
             buftype = entry.type
 
             # Get or make a type string checker
-            tschecker = self.tschecker(buftype.dtype)
+            tschecker = self.buffer_type_checker(buftype.dtype, scope)
 
             # Declare auxiliary vars
             cname = scope.mangle(Naming.bufstruct_prefix, name)
@@ -297,36 +310,34 @@ class IntroduceBufferAuxiliaryVars(CythonTransform):
     #
     # Utils for creating type string checkers
     #
-    
-    def new_ts_func(self, name, code):
-        cname = "%s_%s" % (tsprefix, name)
-        funcnode = PureCFuncNode(self.module_pos, cname, tschecker_functype, code)
-        funcnode.analyse_expressions(self.module_scope)
-        self.ts_funcs.append(funcnode)
-        return funcnode        
-    
     def mangle_dtype_name(self, dtype):
         # Use prefixes to seperate user defined types from builtins
         # (consider "typedef float unsigned_int")
-        return dtype.declaration_code("").replace(" ", "_")
-        
-    def get_ts_check_item(self, dtype):
+        if dtype.typestring is None:
+            prefix = "nn_"
+        else:
+            prefix = ""
+        return prefix + dtype.declaration_code("").replace(" ", "_")
+
+    def get_ts_check_item(self, dtype, env):
         # See if we can consume one (unnamed) dtype as next item
+        # Put native types and structs in seperate namespaces (as one could create a struct named unsigned_int...)
+        name = "__Pyx_BufferTypestringCheck_item_%s" % self.mangle_dtype_name(dtype)
         funcnode = self.ts_item_checkers.get(dtype)
-        if funcnode is None:
+        if not name in self.tsfuncs:
             char = dtype.typestring
-            if char is not None and len(char) == 1:
+            if char is not None:
                 # Can use direct comparison
-                funcnode = self.new_ts_func("natitem_%s" % self.mangle_dtype_name(dtype), """\
+                code = """\
   if (*ts != '%s') {
-    PyErr_Format(PyExc_TypeError, "Buffer datatype mismatch (rejecting on '%%s')", ts);
-  return NULL;
+    PyErr_Format(PyExc_ValueError, "Buffer datatype mismatch (rejecting on '%%s')", ts);
+    return NULL;
   } else return ts + 1;
-""" % char)
+""" % char
             else:
-                # Must deduce sign and length; rely on int vs. float to be correctly declared
+                # Cannot trust declared size; but rely on int vs float and
+                # signed/unsigned to be correctly declared
                 ctype = dtype.declaration_code("")
-                
                 code = """\
   int ok;
   switch (*ts) {"""
@@ -335,108 +346,77 @@ class IntroduceBufferAuxiliaryVars(CythonTransform):
                         ('b', 'char'), ('h', 'short'), ('i', 'int'),
                         ('l', 'long'), ('q', 'long long')
                     ]
-                    code += "".join(["""\
-    case '%s': ok = (sizeof(%s) == sizeof(%s) && (%s)-1 < 0); break;
-    case '%s': ok = (sizeof(%s) == sizeof(%s) && (%s)-1 > 0); break;
-""" % (char, ctype, against, ctype, char.upper(), ctype, "unsigned " + against, ctype) for
-                                     char, against in types])
+                    if dtype.signed == 0:
+                        code += "".join(["\n    case '%s': ok = (sizeof(%s) == sizeof(%s) && (%s)-1 > 0); break;" %
+                                     (char.upper(), ctype, against, ctype) for char, against in types])
+                    else:
+                        code += "".join(["\n    case '%s': ok = (sizeof(%s) == sizeof(%s) && (%s)-1 < 0); break;" %
+                                     (char, ctype, against, ctype) for char, against in types])
                     code += """\
     default: ok = 0;
   }
   if (!ok) {
-    PyErr_Format(PyExc_TypeError, "Buffer datatype mismatch (rejecting on '%s')", ts);
+    PyErr_Format(PyExc_ValueError, "Buffer datatype mismatch (rejecting on '%s')", ts);
     return NULL;
   } else return ts + 1;
 """
-                
-                funcnode = self.new_ts_func("tdefitem_%s" % self.mangle_dtype_name(dtype), code)
-                
-            self.ts_item_checkers[dtype] = funcnode
-        return funcnode.entry.cname
+            env.use_utility_code(["""\
+static const char* %s(const char* ts); /*proto*/
+""" % name, """
+static const char* %s(const char* ts) {
+%s
+}
+""" % (name, code)])
+            self.tsfuncs.add(name)
 
-    ts_consume_whitespace_cname = None
-    ts_check_endian_cname = None
+        return name
 
-    def ensure_ts_utils(self):
-        # Makes sure that the typechecker utils are in scope
-        # (and constructs them if not)
-        if self.ts_consume_whitespace_cname is None:
-            self.ts_consume_whitespace_cname = self.new_ts_func("consume_whitespace", """\
-  while (1) {
-    switch (*ts) {
-      case 10:
-      case 13:
-      case ' ':
-        ++ts;
-      default:
-        return ts;
-    }
-  }
-""").entry.cname
-        if self.ts_check_endian_cname is None:
-            self.ts_check_endian_cname = self.new_ts_func("check_endian", """\
-  int ok = 1;
-  switch (*ts) {
-    case '@':
-    case '=':
-      ++ts; break;
-    case '<':
-      if (__BYTE_ORDER == __LITTLE_ENDIAN) ++ts;
-      else ok = 0;
-      break;
-    case '>':
-    case '!':
-      if (__BYTE_ORDER == __BIG_ENDIAN) ++ts;
-      else ok = 0;
-      break;
-  }
-  if (!ok) {
-    PyErr_Format(PyExc_TypeError, "Data has wrong endianness (rejecting on '%s')", ts);
-    return NULL;
-  }
-  return ts;
-""").entry.cname
-            
-    def create_ts_check_simple(self, dtype):
+    def get_ts_check_simple(self, dtype, env):
         # Check whole string for single unnamed item
-        consume_whitespace = self.ts_consume_whitespace_cname
-        check_endian = self.ts_check_endian_cname
-        check_item = self.get_ts_check_item(dtype)
-        return self.new_ts_func("simple_%s" % self.mangle_dtype_name(dtype), """\
-  ts = %(consume_whitespace)s(ts);
-  ts = %(check_endian)s(ts);
-  if (!ts) return NULL;
-  ts = %(consume_whitespace)s(ts);
-  ts = %(check_item)s(ts);
-  if (!ts) return NULL;
-  ts = %(consume_whitespace)s(ts);
+        name = "__Pyx_BufferTypestringCheck_simple_%s" % self.mangle_dtype_name(dtype)
+        if not name in self.tsfuncs:
+            itemchecker = self.get_ts_check_item(dtype, env)
+            utilcode = ["""
+static int %s(Py_buffer* buf, int e_nd); /*proto*/
+""" % name,"""
+static int %(name)s(Py_buffer* buf, int e_nd) {
+  const char* ts = buf->format;
+  if (buf->ndim != e_nd) {
+    __Pyx_BufferNdimError(buf, e_nd);
+    return -1;
+  }
+  ts = __Pyx_ConsumeWhitespace(ts);
+  ts = __Pyx_BufferTypestringCheckEndian(ts);
+  if (!ts) return -1;
+  ts = __Pyx_ConsumeWhitespace(ts);
+  ts = %(itemchecker)s(ts);
+  if (!ts) return -1;
+  ts = __Pyx_ConsumeWhitespace(ts);
   if (*ts != 0) {
-    PyErr_Format(PyExc_TypeError, "Data too long (rejecting on '%%s')", ts);
-    return NULL;
+    PyErr_Format(PyExc_ValueError,
+        "Expected non-struct buffer data type (rejecting on '%%s')", ts);
+    return -1;
   }
-  return ts;
-""" % locals())
-
-    def tschecker(self, dtype):
-        # Creates a type string checker function for the given type.
-        # Each checker is created as a function entry in the module scope
-        # and a PureCNode and put in the self.ts_checkers dict.
-        # Also the entry is returned.
-        #
-        # TODO: __eq__ and __hash__ for types
-
-        self.ensure_ts_utils()
-        funcnode = self.tscheckers.get(dtype)
-        if funcnode is None:
-            if dtype.is_struct_or_union:
-                assert False
-            elif dtype.is_int or dtype.is_float:
-                # This includes simple typedef-ed types
-                funcnode = self.create_ts_check_simple(dtype)
-            else:
-                assert False
-            self.tscheckers[dtype] = funcnode
-        return funcnode.entry
+  return 0;
+}""" % locals()]
+            env.use_utility_code(buffer_check_utility_code)
+            env.use_utility_code(utilcode)
+            self.tsfuncs.add(name)
+        return name
+
+    def buffer_type_checker(self, dtype, env):
+        # Creates a type checker function for the given type.
+        # Each checker is created as utility code. However, as each function
+        # is dynamically constructed we also keep a set self.tsfuncs containing
+        # the right functions for the types that are already created.
+        if dtype.is_struct_or_union:
+            assert False
+        elif dtype.is_int or dtype.is_float:
+            # This includes simple typedef-ed types
+            funcname = self.get_ts_check_simple(dtype, env)
+        else:
+            assert False
+        return funcname
 
     
 
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index cf8f0d6..47c13d9
@@ -1075,7 +1075,7 @@ class NameNode(AtomicExprNode):
         code.putln('%s = %s;' % (rhstmp, rhs.result_as(self.ctype())))
 
         import Buffer
-        Buffer.put_assign_to_buffer(self.result_code, rhstmp, buffer_aux,
+        Buffer.put_assign_to_buffer(self.result_code, rhstmp, buffer_aux, self.entry.type,
                                     is_initialized=not self.skip_assignment_decref,
                                     pos=self.pos, code=code)
         code.putln("%s = 0;" % rhstmp)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index 06417ab..b596dfa
@@ -229,17 +229,17 @@ def fmtst1(buf):
     >>> fmtst1(IntMockBuffer("A", range(3)))
     Traceback (most recent call last):
         ...
-    TypeError: Buffer datatype mismatch (rejecting on 'i')
+    ValueError: Buffer datatype mismatch (rejecting on 'i')
     """
     cdef object[float] a = buf
 
 @testcase
 def fmtst2(object[int] buf):
     """
-    >>> fmtst1(FloatMockBuffer("A", range(3)))
+    >>> fmtst2(FloatMockBuffer("A", range(3)))
     Traceback (most recent call last):
         ...
-    TypeError: Buffer datatype mismatch (rejecting on 'f')
+    ValueError: Buffer datatype mismatch (rejecting on 'f')
     """
 
 @testcase
@@ -248,7 +248,7 @@ def ndim1(object[int, 2] buf):
     >>> ndim1(IntMockBuffer("A", range(3)))
     Traceback (most recent call last):
         ...
-    TypeError: Buffer datatype mismatch (rejecting on 'f')
+    ValueError: Buffer has wrong number of dimensions (expected 2, got 1)
     """
 
 
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)