cython-devel

changeset 1307:a916d70ed6f7

Cleanup manifest, auxiliary files.
author Robert Bradshaw <robertwb@math.washington.edu>
date Mon Nov 10 11:04:30 2008 -0800 (20 months ago)
parents 9d7ca66aadd7
children f97c31da48d7fadba50691dc
files CHANGES_pyrex.txt MANIFEST.in ToDo.txt
line diff
1.1 --- a/CHANGES_pyrex.txt Sat Nov 08 18:05:10 2008 -0800 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,1179 +0,0 @@ 1.4 -0.9.4.1 1.5 -------- 1.6 - 1.7 -Bug fixes: 1.8 - 1.9 - - Fixed indentation problem in Pyrex.Distutils.build_ext. 1.10 - [Oliver Grisel <ogrisel@nuxeo.com>] 1.11 - 1.12 - 1.13 -0.9.4 1.14 ------ 1.15 - 1.16 -Improvements: 1.17 - 1.18 - - All use of lvalue casts has been eliminated, for 1.19 - compatibility with gcc4. 1.20 - 1.21 - - PyMODINIT_FUNC now used to declare the module init function. 1.22 - 1.23 - - Generated code should be compilable as either C or C++. 1.24 - When compiling as C++, "extern C" is used where appropriate 1.25 - to preserve linkage semantics. C++ functions still cannot 1.26 - be called yet. 1.27 - 1.28 - - An extension type can be made weak-referenceable by 1.29 - giving it a C attribute of type object called __weakref__. 1.30 - 1.31 - - Source files opened in universal newlines mode. 1.32 - 1.33 - - Support for public extension type C attributes of type 1.34 - long long and unsigned long long added (but not tested). 1.35 - [Sam Rushing <sam@rushing.nightmare.com>] 1.36 - 1.37 - - Distutils include directories now passed to Pyrex compiler. 1.38 - [Konrad Hinsen <khinsen@cea.fr>] 1.39 - 1.40 - - Integer constants with an "L" suffix are now allowed 1.41 - and are converted to Python long integers. 1.42 - [Rainer Deyke <rainerd@eldwood.com>] 1.43 - 1.44 - - A broken .c file is no longer left behind if there are 1.45 - compilation errors. 1.46 - 1.47 - - Using the result of a Python indexing or attribute access 1.48 - operation as a char * is no longer considered an error in 1.49 - most cases, as the former behaviour proved to be more 1.50 - annoying than helpful. 1.51 - 1.52 -Bug fixes: 1.53 - 1.54 - - Fixed problems with conversion from Python integers to 1.55 - C unsigned longs. Now use PyInt_AsUnsignedLongMask and 1.56 - PyInt_AsUnsignedLongLongMask instead of the PyLong_* 1.57 - functions (which only work on Python longs). 1.58 - [Wim Vree <wim@vree.be>] 1.59 - 1.60 - - C unsigned ints now converted to/from Python longs intead 1.61 - of Python ints to avoid overflow problems. 1.62 - [Heiko Wundram <me+pyrex@modelnine.org>] 1.63 - 1.64 - - Correct PyArg_ParseTuple format characters now used for 1.65 - unsigned types. [Jeff Bowden <jlb@houseofdistraction.com>] 1.66 - 1.67 - - Nonzero return value from a base class tp_traverse call 1.68 - is handled. 1.69 - 1.70 - - Taking sizeof an incomplete type caused a crash while 1.71 - producing an error message. [Drew Perttula <dperttula@pdi.com>] 1.72 - 1.73 - - If a module cimported itself, definitions of global variables 1.74 - were generated twice. [Parzival Herzog <parzp@shaw.ca>] 1.75 - 1.76 - - Distutils extension updated to handle changed signature of 1.77 - swig_sources(). [David M. Cooke <cookedm@physics.mcmaster.ca>] 1.78 - 1.79 - - Incorrect C code generated for a raw string containing a double 1.80 - quote preceded by a backslash. [Thomas Drake <bistroy@mac.com>] 1.81 - 1.82 - - Declaration of public C function with an exception value written 1.83 - to generated .pxi file without the except clause. 1.84 - [Robby Dermody <robbyd@u20.org>] 1.85 - 1.86 - - __delitem__ method of an extension type with no __setitem__ 1.87 - did not get called. [Richard Boulton <richard@tartarus.org>] 1.88 - 1.89 - - A spurious Py_INCREF was generated when a return statement 1.90 - required a type test. [Jonathan Doda <jdoda@sympatico.ca>] 1.91 - 1.92 - - Casting a value to a function pointer and then immediately 1.93 - calling it generated a cast to a function instead of a cast 1.94 - to a function pointer. [Simon Burton <simon@arrowtheory.com>] 1.95 - 1.96 - - Py_TPFLAGS_HAVE_GC was not being set on an extension type that 1.97 - inherited from an external extension type that used GC but did 1.98 - not itself have any PyObject* attributes. 1.99 - [Michael Hordijk <hoffbrinkle@hotmail.com>] 1.100 - 1.101 - - A return statement inside a for statement leaked a reference 1.102 - to the loop's iterator. 1.103 - [Jürgen Kartnaller <j.kartnaller@robotech.at>] 1.104 - 1.105 - - Full module name now appears in __module__ attribute of classes 1.106 - and extension types, provided a correct dotted name is used 1.107 - for the .pyx file. [Giovanni Bajo <rasky@develer.com>] 1.108 - 1.109 - - Public extension type with no C attributes produced an 1.110 - invalid .pxi file. [Simon Burton <simon@arrowtheory.com>] 1.111 - 1.112 - - Using a dict constructor as the second operand of a boolean 1.113 - expression crashed the Pyrex compiler. 1.114 - [Stefan Behnel <behnel_ml@gkec.informatik.tu-darmstadt.de>] 1.115 - 1.116 - - A C declaration list ending with a comma resulted in invalid 1.117 - C code being generated. [Alex Coventry <alex_c@mit.edu>] 1.118 - 1.119 - - A raw string containing two consecutive backslashes produced 1.120 - incorrect C code. [Helmut Jarausch <jarausch@igpm.rwth-aachen.de>] 1.121 - 1.122 - - An error is reported if you attempt to declare a special 1.123 - method of an extension type using 'cdef' instead of 'def'. 1.124 - [Sam Rushing <srushing@ironport.com>] 1.125 - 1.126 -0.9.3 1.127 ------ 1.128 - 1.129 -Enhancements: 1.130 - 1.131 - - Types defined with a ctypedef in a 'cdef extern from' block 1.132 - are now referred to by the typedef name in generated C code, 1.133 - so it is no longer necessary to match the type in the C 1.134 - header file exactly. 1.135 - 1.136 - - Conversion to/from unsigned long now done with 1.137 - PyLong_AsUnsignedLong and PyLong_FromUnsignedLong. 1.138 - [Dug Song <dugsong@monkey.org>] 1.139 - 1.140 - - A struct, union or enum definition in a 'cdef extern from' 1.141 - block may now be left empty (using 'pass'). This can be useful 1.142 - if you need to declare a variable of that type, but don't need 1.143 - to refer to any of its members. 1.144 - 1.145 - - More flexible about ordering of qualifiers such as 'long' and 1.146 - 'unsigned'. 1.147 - ["John (J5) Palmieri" <johnp@redhat.com>] 1.148 - 1.149 - 1.150 -Bug fixes: 1.151 - 1.152 - - Non-interned string literals used in a Python class 1.153 - definition did not work. 1.154 - [Atsuo Ishimoto <ishimoto@gembook.org>] 1.155 - [Andreas Kostyrka <andreas@kostyrka.org>] 1.156 - 1.157 - - Return types of the buffer interface functions for extension 1.158 - types have been corrected. 1.159 - [Dug Song <dugsong@monkey.org>] 1.160 - 1.161 - - Added 'static' to declarations of string literals. 1.162 - [Phil Frost <indigo@bitglue.com>] 1.163 - 1.164 - - Float literals are now copied directly to the C code as written, 1.165 - to avoid problems with loss of precision. 1.166 - [Mario Pernici <Mario.Pernici@mi.infn.it>] 1.167 - 1.168 - - Inheriting from an extension type with C methods defined in 1.169 - another Pyrex module did not work. 1.170 - [Itamar Shtull-Trauring <itamar@itamarst.org>] 1.171 - 1.172 -0.9.2.1 1.173 -------- 1.174 - 1.175 -Bug fixes: 1.176 - 1.177 - - Corrected an import statement setup.py, and made it 1.178 - check for a unix platform in a more reliable way. 1.179 - 1.180 -0.9.2 1.181 ------ 1.182 - 1.183 -Enhancements: 1.184 - 1.185 - - Names of Python global variables and attributes are now 1.186 - interned, and PyObject_GetAttr/SetAttr are used instead 1.187 - of PyObject_GetAttrString/SetAttrString. String literals 1.188 - which resemble Python identifiers are also interned. 1.189 - 1.190 - - String literals are now converted to Python objects only 1.191 - once instead of every time they are used. 1.192 - 1.193 - - NUL characters are now allowed in Python string literals. 1.194 - 1.195 - - Added some missing error checking code to the beginning 1.196 - of module init functions. It's unlikely the operations 1.197 - involved would ever fail, but you never know. 1.198 - 1.199 -Bug fixes: 1.200 - 1.201 - - Corrected some problems introduced by moving the Plex 1.202 - package. 1.203 - 1.204 -0.9.1.1 1.205 -------- 1.206 - 1.207 -Bug fixes: 1.208 - 1.209 - - Corrected a problem in the setup.py (pyrexc script incorrectly 1.210 - named). 1.211 - 1.212 - - Updated the distutils extension to match changes in the 1.213 - Pyrex compiler calling interface. 1.214 - 1.215 - - Doing 'make clean' in Demos/callback was removing a little too 1.216 - much (that's why cheesefinder.c kept disappearing). 1.217 - 1.218 -0.9.1 1.219 ------ 1.220 - 1.221 -Enhancements: 1.222 - 1.223 - - A C method can now call an inherited C method by the usual 1.224 - Python technique. 1.225 - [Jiba <jiba@tuxfamily.org>] 1.226 - 1.227 - - The __modname__ of a Python class is now set correctly. 1.228 - [Paul Prescod <paul@prescod.net>] 1.229 - 1.230 - - A MANIFEST.in file has been added to the distribution to 1.231 - facilitate building rpms. 1.232 - [contributed by Konrad Hinsen <hinsen@cnrs-orleans.fr>] 1.233 - 1.234 -Bug fixes: 1.235 - 1.236 - - Conditional code now generated to allow for the renaming of LONG_LONG 1.237 - to PY_LONG_LONG that occurred between Python 2.2 and 2.3. 1.238 - 1.239 - - Header files referenced in cimported modules were not being included. 1.240 - [Tom Popovich <tompopovich@aol.com>] 1.241 - 1.242 - - References to C functions and variables in a cimported module were 1.243 - not being recognised if made from within a local scope. 1.244 - [Tom Popovich <tompopovich@aol.com>] 1.245 - 1.246 - - Spurious declarations in code generated for a "finally" block. 1.247 - [Brandon Long <blong@fiction.net>] 1.248 - 1.249 - - Attempting to return a value from a __contains__ method didn't work. 1.250 - [Andreas Kostyrka <andreas@mtg.co.at>] 1.251 - 1.252 - - Incorrect code generated for an extension type with C methods 1.253 - inheriting from a base type with no C methods. 1.254 - [Robin Becker <robin@reportlab.com>] 1.255 - 1.256 - - Failure to report an error if a C method was defined in the 1.257 - implementation part of an extension type that was not declared 1.258 - in the corresponding definition part. Documentation also updated 1.259 - to explain that this is necessary. 1.260 - [Jiba <jiba@tuxfamily.org>] 1.261 - 1.262 - - Made it an error to forward-declare an extension type with 1.263 - a different base class specification from its subsequent 1.264 - definition. 1.265 - [Jiba <jiba@tuxfamily.org>] 1.266 - 1.267 - - C attributes of an extension type were not being propagated 1.268 - through more than one level of inheritance. 1.269 - [Jiba <jiba@tuxfamily.org>] 1.270 - 1.271 - - If a garbage collection occurred early enough in the __new__ 1.272 - method of an extension type with Python-valued C attributes, 1.273 - a crash could occur in its tp_traverse function. 1.274 - [reported by Jiba <jiba@tuxfamily.org>] 1.275 - [fix suggested by Paul Prescod <paul@prescod.net>] 1.276 - 1.277 - - An empty vtable struct is no longer generated for extension 1.278 - types with no C methods. 1.279 - [Robin Becker <robin@reportlab.com>] 1.280 - 1.281 - - Memory was leaked in the sq_item function of an extension 1.282 - type with a __getitem__ method. 1.283 - [Atsuo Ishimoto <ishimoto@gembook.org>] 1.284 - 1.285 - - Code generated to work around a bug in some versions of Python 1.286 - 2.2 which fails to initialise the tp_free slot correctly in 1.287 - some circumstances. 1.288 - [Matthias Baas <baas@ira.uka.de>] 1.289 - 1.290 - - Compiler crash when defining an extension type with a base 1.291 - class specified by a dotted name. 1.292 - [Alain Pointdexter <alainpoint@yahoo.fr>] 1.293 - 1.294 - - Referencing an extension type defined in a cimported module 1.295 - at run time did not work correctly. 1.296 - [Alain Pointdexter <alainpoint@yahoo.fr>] 1.297 - 1.298 - - Incorrect object struct code generated for an extension type 1.299 - whose base class was defined in a .pxd file. 1.300 - [Alain Pointdexter <alainpoint@yahoo.fr>] 1.301 - 1.302 - - Redeclaring a type that wasn't previously an extension type 1.303 - as an extension type caused a compiler crash. 1.304 - [Scott Robinson <scott@tranzoa.com>] 1.305 - 1.306 - - Incorrect code was generated for return statements in a 1.307 - special method with no return value. 1.308 - [Gary Bishop <gb@cs.unc.edu>] 1.309 - 1.310 - - Single-line def statement did not work. 1.311 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.312 - 1.313 -Modifications: 1.314 - 1.315 - - Only the last pathname component of the .pyx file is reported in 1.316 - backtraces now. 1.317 - [Bryan Weingarten <bryan.weingarten@pobox.com>] 1.318 - 1.319 - - Documentation corrected to remove the erroneous statement that 1.320 - extension classes can have a __del__ method. 1.321 - [Bryan Weingarten <bryan.weingarten@pobox.com>] 1.322 - 1.323 - - Note added to documentation explaining that it is not possible 1.324 - for an extension type's __new__ method to explicitly call the 1.325 - inherited __new__ method. 1.326 - 1.327 - - The version of Plex included with Pyrex is now installed 1.328 - as a subpackage of the Pyrex package, rather than as a 1.329 - top-level package, so as not to interfere with any other 1.330 - version of Plex the user may have installed. 1.331 - 1.332 -0.9 1.333 ---- 1.334 - 1.335 -New features: 1.336 - 1.337 - - Extension types can have properties. See the new "Properties" 1.338 - section in the "Extension Types" page. 1.339 - 1.340 - - An extension type can inherit from a builtin type or another 1.341 - extension type. See "Subclassing" in the "Extension Types" page. 1.342 - 1.343 - - Extension types can have C methods, which can be overridden 1.344 - in derived extension types. See "C Methods" in the "Extension Types" 1.345 - page. 1.346 - 1.347 -Enhancements: 1.348 - 1.349 - - Conversion is now performed between C long longs and Python 1.350 - long integers without chopping to the size of a C long. 1.351 - Also the Python PY_LONG_LONG type is now used for long longs 1.352 - for greater portability. 1.353 - 1.354 -Bug fixes: 1.355 - 1.356 - - Names were sometimes being generated that were insufficiently 1.357 - unique in the presence of cimported declarations. 1.358 - 1.359 - - Changed the way the included filename table is declared from 1.360 - char *[] to char **, to stop MSVC from complaining about it 1.361 - having an unknown size. 1.362 - [Alexander A Naanou <alex_nanou@pochta.ru>] 1.363 - 1.364 - - Second argument of assert statement was not being coerced 1.365 - to a Python value. 1.366 - [Francois Pinard http://www.iro.umontreal.ca/~pinard] 1.367 - 1.368 - - Return statement without value wasn't accepted in some 1.369 - extension type special methods when it should have been. 1.370 - [Francois Pinard http://www.iro.umontreal.ca/~pinard] 1.371 - 1.372 - - Attempting to call a non-function C value crashed the 1.373 - compiler. 1.374 - [John J Lee <jjl@pobox.com>] 1.375 - 1.376 - - Functions declared as "except *" were not returning exceptions. 1.377 - [John J Lee <jjl@pobox.com>] 1.378 - 1.379 - - A syntax warning from Plex about assignment to None has 1.380 - been eliminated. 1.381 - [Gordon Williams <g_will@cyberus.ca>] 1.382 - 1.383 - - Public function declaration with empty argument list was 1.384 - producing (void) in .pxi file. 1.385 - [Michael P. Dubner <dubnerm@mindless.com>] 1.386 - 1.387 - - Incorrect error signalling code was being generated in the 1.388 - __hash__ special method of an extension type. 1.389 - 1.390 - 1.391 -0.8.1 1.392 ------ 1.393 - 1.394 -Bug fixes: 1.395 - 1.396 - - Names of structs, unions and enums in external header 1.397 - files were getting mangled when they shouldn't have been. 1.398 - [Norman Shelley <Norman.Shelley@motorola.com>] 1.399 - 1.400 - - Modified distutils extension so that it will stop before 1.401 - compiling the C file if the Pyrex compiler reports errors. 1.402 - [John J Lee <jjl@pobox.com>] 1.403 - 1.404 - 1.405 -0.8 1.406 ---- 1.407 - 1.408 -New features: 1.409 - 1.410 - - INCOMPATIBLE CHANGE: The type object of an external extension 1.411 - type is now imported at run time using the Python import 1.412 - mechanism. To make this possible, an 'extern' extension type 1.413 - declaration must DECLARE THE MODULE from which the extension 1.414 - type originates. See the new version of the "Extension Types" 1.415 - documentation for details. 1.416 - 1.417 - This change was made to eliminate the need for Pyrex to be 1.418 - told the C name of the type object, or for the Pyrex module 1.419 - to be linked against the object code providing the type object. 1.420 - 1.421 - You will have to update any existing external extension type 1.422 - declarations that you are using. I'm sorry about that, but it 1.423 - was too hard to support both the old and new ways. 1.424 - 1.425 - - Compile-time importing: A Pyrex module can now import declarations 1.426 - from another Pyrex module using the new 'cimport' statement. See 1.427 - the new section on "Sharing Declarations Between Pyrex Modules" in 1.428 - the documentation. 1.429 - 1.430 -Minor improvements: 1.431 - 1.432 - - An error is reported if you declare a struct, union or 1.433 - extension type using 'cdef' in one place and 'ctypedef' 1.434 - in another. 1.435 - 1.436 - - Struct, union and extension types can only be forward- 1.437 - declared using 'cdef', not 'ctypedef' (otherwise invalid 1.438 - C code would be generated). 1.439 - 1.440 - - The 'global' statement can be used at the module level to 1.441 - declare that a name is a module-level name rather than a 1.442 - builtin. This can be used to access module attributes such 1.443 - as __name__ that would otherwise be assumed to be builtins. 1.444 - [Pat Maupin <pmaupin@speakeasy.net>] 1.445 - 1.446 - - The 'assert' statement now accepts a second argument. 1.447 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.448 - 1.449 -Bug fixes: 1.450 - 1.451 - - When using Python 2.3, "True" or "False" could sometimes 1.452 - turn up in generated code instead of "1" or "0". 1.453 - [Adam Hixson <chixson@ou.edu>] 1.454 - 1.455 - - Function return value not always converted to or from a 1.456 - Python object when it should have been. 1.457 - 1.458 - - Certain kinds of error in a function call expression 1.459 - could crash the compiler. 1.460 - ["Edward C. Jones" <edcjones@erols.com>] 1.461 - 1.462 - - Fixed memory leak in functions with * or ** args. 1.463 - [Alexander A Naanou <alex_nanou@pochtamt.ru>] 1.464 - 1.465 - 1.466 -0.7.1 1.467 ------ 1.468 - 1.469 -Bug fixes: 1.470 - 1.471 - - Calling a function declared as returning an extension 1.472 - type could crash the compiler. 1.473 - 1.474 - - A function call with type errors in the argument list 1.475 - could crash the compiler. 1.476 - 1.477 - - An 'else' clause on a for-from statement could crash 1.478 - the compiler. 1.479 - 1.480 - - Incorrect casting code was generated when a generic 1.481 - object argument of a special method was declared as 1.482 - being of an extension type. 1.483 - [Phillip J. Eby <pje@telecommunity.com>] 1.484 - 1.485 - - A blank line that couldn't be interpreted wholly as 1.486 - a valid indentation sequence caused a syntax error. 1.487 - In particular, a formfeed character on an otherwise 1.488 - blank line wasn't accepted. 1.489 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.490 - 1.491 - - Parallel assignments were incorrectly optimised. 1.492 - 1.493 - - A bare tuple constructor with an extra comma at the 1.494 - end of a line caused a syntax error. 1.495 - 1.496 -0.7 1.497 ---- 1.498 - 1.499 -New features: 1.500 - 1.501 - - Attributes of extension types can be exposed to Python 1.502 - code, either read/write or read-only. 1.503 - 1.504 - - Different internal and external names can be specified 1.505 - for C entities. 1.506 - 1.507 - - None is a compile-time constant, and more efficient code 1.508 - is generated to reference it. 1.509 - 1.510 - - Command line options for specifying directories to 1.511 - search for include files. 1.512 - 1.513 -Enhancements: 1.514 - 1.515 - - More efficient code is generated for access to Python 1.516 - valued C attributes of extension types. 1.517 - 1.518 - - Cosmetic code improvement: Less casting back and forth 1.519 - between extension types and PyObject * when referencing 1.520 - C members of the object struct. 1.521 - 1.522 - - C arguments and variables declared as an extension type 1.523 - can take the value None. 1.524 - 1.525 - - Form feed characters are accepted as whitespace. 1.526 - 1.527 - - Function names in tracebacks are qualified with 1.528 - module name and class name. 1.529 - 1.530 -Bug fixes: 1.531 - 1.532 - - A sufficiently complex expression in a boolean context 1.533 - could cause code to be generated twice for the same 1.534 - subexpression. 1.535 - 1.536 - - Incorrect casting code was generated when passing an 1.537 - extension type to a function expecting a generic Python 1.538 - object. 1.539 - 1.540 - - Executable statements are now disallowed inside a 1.541 - cdef class block (previously they silently caused 1.542 - crazy C code to be generated). 1.543 - 1.544 - - Tracebacks should now report the correct filename for 1.545 - functions defined in files included with the 'include' 1.546 - statement. 1.547 - 1.548 - - The documentation incorrectly claimed that an extension 1.549 - type can't have a __del__ method. In fact, it can, and 1.550 - it behaves as expected. 1.551 - 1.552 - 1.553 -0.6.1 1.554 ------ 1.555 - 1.556 -Bug fixes: 1.557 - 1.558 - - Fixed broken distutils extension. 1.559 - 1.560 - 1.561 - 1.562 -0.6 1.563 ---- 1.564 - 1.565 -New features: 1.566 - 1.567 - - Command line options for reporting version number, 1.568 - requesting a listing file and specifying the name of 1.569 - the generated C file. 1.570 - 1.571 - - An 'include' statement allows inclusion of declarations 1.572 - from other Pyrex source files. 1.573 - 1.574 - - If there are any public declarations, a Pyrex include 1.575 - file is generated (as well as a .h file) containing 1.576 - declarations for them. 1.577 - 1.578 - - Extension types can be declared public, so their C 1.579 - attributes are visible to other Pyrex and C code. 1.580 - 1.581 - - Try-except statements can now have an 'else' clause. 1.582 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.583 - 1.584 - - Multiple simple statements can be placed on one line 1.585 - separated by semicolons. 1.586 - 1.587 - - A suite consisting of a simple statement list can now 1.588 - be placed on the same line after the colon in most 1.589 - cases. 1.590 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.591 - 1.592 - - The automatic coercion of a C string to a C char has 1.593 - been removed (it proved to be too error-prone). 1.594 - Instead, there is a new form of literal for C 1.595 - character constants: c'X' 1.596 - 1.597 - - The __get__ special method (used by descriptor objects) 1.598 - now allows for the possibility of the 2nd or 3rd 1.599 - arguments being NULL. Also the __set__ method has been 1.600 - split into two methods, __set__ and __delete__. 1.601 - [Phillip J. Eby <pje@telecommunity.com>] 1.602 - 1.603 -Bug fixes: 1.604 - 1.605 - - Values unpacked into a non-Python destination variable 1.606 - were not being converted before assignment. 1.607 - [Gareth Watts <gareth@omnipotent.net>] 1.608 - 1.609 - - Hex constants greater than 0x7fffffff caused compiler 1.610 - to crash. [Gareth Watts <gareth@omnipotent.net>] 1.611 - 1.612 - - Type slots are no longer statically initialised with 1.613 - extern function pointers, to avoid problems with 1.614 - some compilers. The hack in the distutils extension 1.615 - to work around this by compiling as C++ has been 1.616 - disabled. [Phillip J. Eby <pje@telecommunity.com>] 1.617 - 1.618 - - Fixed several more instances of the error-reporting 1.619 - routine being called with arguments in the wrong 1.620 - order. Hoping I've *finally* got all of them now... 1.621 - 1.622 - - Nested for-from loops used the same control variable. 1.623 - [Sebastien de Menten <sdementen@hotmail.com>] 1.624 - 1.625 - - Fixed some other error message related bugs. 1.626 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.627 - 1.628 - - Assigning to slice didn't work. 1.629 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.630 - 1.631 - - Temp variables were being declared as extension 1.632 - types and then being assigned PyObject *'s. All 1.633 - Python temp vars are now declared as PyObject *. 1.634 - [Francois Pinard <pinard@iro.umontreal.ca>] 1.635 - 1.636 -0.5 1.637 ---- 1.638 - 1.639 -Bug fixes: 1.640 - 1.641 - - Algorithm for allocating temp variables redesigned 1.642 - to fix various errors concerning temp 1.643 - variable re-use. 1.644 - [Mark Rowe <bdash@gmx.net>] 1.645 - 1.646 - - Memory leak occured sometimes when an implicit 1.647 - type test was applied to the result of an 1.648 - expression. 1.649 - [christoph.wiedemann@daimlerchrysler.com] 1.650 - 1.651 - - __set__ method of extension types had wrong 1.652 - signature. 1.653 - [Josh Littlefield <joshl@cisco.com>] 1.654 - 1.655 -0.4.6 1.656 ------ 1.657 - 1.658 -Bug fixes: 1.659 - 1.660 - - Indexing multi-dimensional C arrays didn't 1.661 - work. 1.662 - [Gary Dietachmayer <gary.dietachmayer@dsto.defence.gov.au>] 1.663 - 1.664 - 1.665 -0.4.5 1.666 ------ 1.667 - 1.668 -New features: 1.669 - 1.670 - - There is now a 'public' declaration for 1.671 - making Pyrex-defined variables and functions 1.672 - available to external C code. A .h file is 1.673 - also generated if there are any public 1.674 - declarations. 1.675 - 1.676 -Enhancements: 1.677 - 1.678 - - Defining __len__/__getitem__ methods in an 1.679 - extension class fills sq_length/sq_item slots 1.680 - as well as mp_length/mp_subscript. 1.681 - [Matthias Baas <baas@ira.uka.de>] 1.682 - 1.683 - - The Distutils extension now allows .c files 1.684 - to be incorporated along with .pyx files. 1.685 - [Modification to Distutils extension contributed 1.686 - by Darrell Gallion <dgallion1@yahoo.com>.] 1.687 - 1.688 -Bug fixes: 1.689 - 1.690 - - Float literals without a decimal point 1.691 - work again now. 1.692 - [Mike Rovner <mike@bindkey.com>] 1.693 - [Peter Lepage <gpl@mail.lns.cornell.edu>] 1.694 - 1.695 - - Compiler crashed if exception value didn't 1.696 - match function return type. 1.697 - [Michael JasonSmith <mpj17@smtphost.canterbury.ac.nz>] 1.698 - 1.699 - - The setup.py file should now install the 1.700 - Lexicon.pickle file in the right place. 1.701 - [Patch supplied by David M. Cooke 1.702 - <cookedm@arbutus.physics.mcmaster.ca>] 1.703 - 1.704 - - Compiler crashed when compiling a C function that 1.705 - returned an extension type. 1.706 - [David M. Cooke 1.707 - <cookedm@arbutus.physics.mcmaster.ca>] 1.708 - 1.709 - - Anonymous enum types did not have C code 1.710 - suppressed inside an extern-from block. 1.711 - [Matthew Mueller <donut@azstarnet.com>] 1.712 - 1.713 - 1.714 -0.4.4 1.715 ------ 1.716 - 1.717 -Enhancements: 1.718 - 1.719 - - Tracebacks now extend into Pyrex function 1.720 - calls and show line numbers in the Pyrex 1.721 - source file. 1.722 - 1.723 - - Syntax for float literals made more lenient 1.724 - (no longer requires digits both before and 1.725 - after the point). 1.726 - [Peter Lepage <gpl@mail.lns.cornell.edu>] 1.727 - 1.728 - - Method calls can be made on string literals 1.729 - (e.g. ",".join(x)). 1.730 - [pedro_rodriguez@club-internet.fr] 1.731 - 1.732 -Bug fixes: 1.733 - 1.734 - - Incorrect refcount code generated when a 1.735 - Python function needing argument type tests 1.736 - had local Python variables. 1.737 - [Matthias Baas <baas@ira.uka.de>] 1.738 - 1.739 - - 'self' parameter of __getitem__ method of 1.740 - extension type had wrong implicit type. 1.741 - [Peter Lepage <gpl@mail.lns.cornell.edu>] 1.742 - 1.743 - - Repaired breakage introduced by trying to 1.744 - allow an empty parameter list to be written 1.745 - as (void). No longer attempting to allow 1.746 - this (too hard to parse correctly). 1.747 - [Peter Lepage <gpl@mail.lns.cornell.edu>] 1.748 - 1.749 - - Found bug in Plex 1.1.2 which was the *real* 1.750 - cause of the two-newlines-in-a-row problem. 1.751 - Removed the Opt(Eol)+Str("\n") hacks in 1.752 - the scanner which were working around this 1.753 - before. 1.754 - [pedro_rodriguez@club-internet.fr] 1.755 - 1.756 - - __call__ special method of extension types 1.757 - had wrong signature. 1.758 - [Peter Lepage <gpl@mail.lns.cornell.edu>] 1.759 - 1.760 - 1.761 -0.4.3 1.762 ------ 1.763 - 1.764 -New language features: 1.765 - 1.766 - - For-from loop for iterating over integer 1.767 - ranges, using pure C loop where possible. 1.768 - 1.769 -Enhancements: 1.770 - 1.771 - - sizeof() can now be applied to types as 1.772 - well as variables. 1.773 - 1.774 - - Improved handling of forward-declared 1.775 - extension types. 1.776 - 1.777 -Bug fixes: 1.778 - 1.779 - - Two newlines in a row in a triple quoted 1.780 - string caused a parse error on some 1.781 - platforms. 1.782 - [Matthias Baas <baas@ira.uka.de>] 1.783 - 1.784 - - Fixed problem with break and continue in 1.785 - the else-clause of a loop. 1.786 - 1.787 - 1.788 -0.4.2 1.789 ------ 1.790 - 1.791 -New language features: 1.792 - 1.793 - - C functions can be declared as having an 1.794 - exception return value, which is checked 1.795 - whenever the function is called. If an 1.796 - exception is detected inside a C function 1.797 - for which no exception value is declared, 1.798 - a warning message is printed and the 1.799 - exception is cleared. 1.800 - 1.801 - - Cascaded assignments (i.e. a = b = c 1.802 - are now supported. 1.803 - 1.804 - - Anonymous enum declarations are allowed, 1.805 - for when you just want to declare constants. 1.806 - 1.807 - - The C types "long long" and "long double" 1.808 - are now understood. Also, "int" is optional 1.809 - after "short" or "long". 1.810 - 1.811 -Enhancements: 1.812 - 1.813 - - A * argument in a function call can now be 1.814 - any sequence, not just a tuple. 1.815 - 1.816 - - A C char* or char[] will be turned into 1.817 - a char by taking its first character if 1.818 - used in a context where a char is required, 1.819 - thus allowing a string literal to be used as 1.820 - a char literal. 1.821 - 1.822 - - C string * C int or vice versa is now 1.823 - interpreted as Python string replication. 1.824 - 1.825 - - Function arguments are checked for void or 1.826 - incomplete type. 1.827 - 1.828 -Bug fixes: 1.829 - 1.830 - - Non-external extension types show up in the 1.831 - module dict once more (this got broken in 1.832 - 0.4.1). 1.833 - 1.834 - - A spurious decref has been removed from the 1.835 - runtime support code for the "import" statement. 1.836 - Hopefully this will prevent the crashes some 1.837 - people have been experiencing when importing 1.838 - builtin modules. 1.839 - [Mathew Yeates <mathew@comma.jpl.nasa.gov>] 1.840 - 1.841 -0.4.1 1.842 ------ 1.843 - 1.844 -New language features: 1.845 - 1.846 - - "ctypedef struct/union/enum/class" statements 1.847 - added, for use in extern-from blocks when a 1.848 - header file uses a ctypedef to declare a 1.849 - tagless struct, union or enum type. 1.850 - 1.851 - - "pass" allowed in an extern-from block. 1.852 - 1.853 - - "cdef extern from *" for when you don't want 1.854 - to specify an include file name. 1.855 - 1.856 - - Argument names may be omitted in function 1.857 - signatures when they're not needed. 1.858 - 1.859 - - New reserved word NULL for the null C pointer. 1.860 - 1.861 -Compiler enhancements: 1.862 - 1.863 - - Lexicon is now picked in binary format, so 1.864 - startup should be much faster on slower 1.865 - machines. 1.866 - 1.867 - - If Pyrex decides to rebuild the lexicon and 1.868 - then finds that it can't write a pickle file, 1.869 - it now prints a warning and carries on 1.870 - instead of crashing. 1.871 - 1.872 - - Chat about hash codes and lexicon pickling 1.873 - now turned off by default except when creating 1.874 - a new lexicon (which ought never happen now 1.875 - unless you change the scanner). 1.876 - 1.877 -Bug fixes: 1.878 - 1.879 - - Modified the runtime support code for "import" 1.880 - statements, hopefully fixing problem with using 1.881 - a Pyrex module in conjunction with py2exe. 1.882 - 1.883 - - DL_EXPORT now used in both the prototype and 1.884 - definition of the module init function. 1.885 - 1.886 - - Exception state is now saved and restored around 1.887 - calls to an extension type __dealloc__ method, 1.888 - to avoid screwing up if the object is deallocated 1.889 - while an exception is being propagated. 1.890 - 1.891 - - Making an attribute reference to a method of 1.892 - an extension type caused a compiler crash. 1.893 - 1.894 - - Doc string in new-style class definition 1.895 - caused a run-time error. 1.896 - 1.897 - - Insufficient parentheses were put around C type 1.898 - casts. 1.899 - 1.900 - - Constructors for extension types are now read-only 1.901 - C global variables instead of entries in the 1.902 - module dict. This change was needed to prevent 1.903 - Numeric from blowing up due to touching its 1.904 - typeobject before import_numeric() could be called. 1.905 - 1.906 -0.4 1.907 ---- 1.908 - 1.909 -New features: 1.910 - 1.911 - - "cdef extern from" statement allows inclusion 1.912 - of C header files to be specified, solving 1.913 - a number of problems including: 1.914 - - Clashes between Pyrex and C declarations, 1.915 - due to "const" and other reasons 1.916 - - Windows-specific features required in 1.917 - function declarations 1.918 - - Helping deal with types such as "size_t" 1.919 - - Helping deal with functions defined as 1.920 - macros 1.921 - 1.922 - - Access to internals of pre-existing extension 1.923 - types is now possible by placing an extension 1.924 - type declaration inside a "cdef extern from" 1.925 - block. 1.926 - 1.927 -Bug fixes: 1.928 - 1.929 - - Error not reported properly when passing 1.930 - wrong number of args to certain special 1.931 - methods of extension types. 1.932 - [Mitch Chapman <mitchchapman@earthlink.net>] 1.933 - 1.934 - - Compile-time crash when defining an extension 1.935 - type with a __hash__ method. 1.936 - 1.937 -Minor enhancements: 1.938 - 1.939 - - Hashing of the scanner source file made more 1.940 - platform-independent, making spurious regeneration 1.941 - of the pickle less likely. 1.942 - 1.943 - 1.944 -0.3.4 1.945 ------ 1.946 - 1.947 -Bug fixes: 1.948 - 1.949 - - Runtime crash when using * or ** args in 1.950 - a method of an extension type fixed. 1.951 - [Matthew Mueller <donut@azstarnet.com>] 1.952 - 1.953 - - Compiler crash when using default argument 1.954 - values in a method of a Python class. 1.955 - [Mike Rovner <mike@bindkey.com>] 1.956 - 1.957 -Enhancements: 1.958 - 1.959 - - Type slots filled with functions from outside 1.960 - the extension module are now initialised dynamically, 1.961 - which should eliminate at least some of the 1.962 - "initialiser is not constant" problems experienced 1.963 - on Windows. 1.964 - [Marek Baczek <imbaczek@poczta.fm>] 1.965 - 1.966 - - On Windows, __declspec(dllexport) is now used for 1.967 - the module init func declaration (or should be -- 1.968 - I haven't tested this). 1.969 - [Marek Baczek <imbaczek@poczta.fm>] 1.970 - 1.971 - - The compiler shouldn't attempt to rewrite the 1.972 - Lexicon.pickle file unless the source has been 1.973 - changed (hashing is used now instead of comparing 1.974 - timestamps). So there should be no problem any more 1.975 - with installing Pyrex read-only. 1.976 - [fawcett@uwindsor.ca] 1.977 - 1.978 -0.3.3 1.979 ------ 1.980 - 1.981 -Bug fixes: 1.982 - 1.983 -* A void * can be assigned from any other 1.984 -pointer type. 1.985 -[piers@cs.su.oz.au] 1.986 - 1.987 -* File names in error messages no longer 1.988 -quoted (this was apparently confusing some 1.989 -editors). 1.990 -[donut@azstarnet.com] 1.991 - 1.992 -* Reference to a struct member which is an 1.993 -array is coerced to a pointer. 1.994 -[donut@azstarnet.com] 1.995 - 1.996 -* Default argument values did not work 1.997 -in methods of an extension type. 1.998 -[donut@azstarnet.com] 1.999 - 1.1000 -* Single or double quote characters in a 1.1001 -triple-quoted string didn't work. 1.1002 -[donut@azstarnet.com] 1.1003 - 1.1004 -* Using *args in a function definition 1.1005 -sometimes caused a crash at runtime. 1.1006 -[donut@azstarnet.com] 1.1007 - 1.1008 -* A hack is included which tries to make 1.1009 -functions in Python.h which use 'const' 1.1010 -accessible from Pyrex. But it doesn't 1.1011 -work on all platforms. Thinking about a 1.1012 -better solution. 1.1013 - 1.1014 - 1.1015 -New features: 1.1016 - 1.1017 -* Comment containing Pyrex version number 1.1018 -and date/time at top of generated C file. 1.1019 -[baas@ira.uka.de] 1.1020 - 1.1021 - 1.1022 -0.3.2 1.1023 ------ 1.1024 - 1.1025 -Bug fixes: 1.1026 - 1.1027 -* The & operator works again. 1.1028 -[matthias.oberlaender@daimlerchrysler.com] 1.1029 -[baas@ira.uka.de] 1.1030 - 1.1031 -* The & operator had incorrect precedence. 1.1032 - 1.1033 -* "SystemError: 'finally' pops bad exception" 1.1034 -under some circumstances when raising an 1.1035 -exception. [baas@ira.uka.de] 1.1036 - 1.1037 -* Calling a Python function sometimes leaked 1.1038 -a reference. 1.1039 - 1.1040 -* Crash under some circumstances when casting 1.1041 -a Python object reference to a C pointer type. 1.1042 -[mpj17@cosc.canterbury.ac.nz] 1.1043 - 1.1044 -* Crash when redeclaring a function. 1.1045 -[baas@ira.uka.de] 1.1046 - 1.1047 -* Crash when using a string constant inside 1.1048 -a Python class definition. 1.1049 -[mike@bindkey.com] 1.1050 - 1.1051 -* 2-element slice indexing expressions. 1.1052 -[mike@bindkey.com] 1.1053 - 1.1054 -* Crash when encountering mixed tabs and 1.1055 -spaces. 1.1056 -[mike@bindkey.com] 1.1057 - 1.1058 -New features: 1.1059 - 1.1060 -* A wider variety of constant expressions is 1.1061 -now accepted for enum values, array 1.1062 -dimensions, etc. 1.1063 -[mike@bindkey.com] 1.1064 - 1.1065 - 1.1066 -0.3.1 1.1067 ------ 1.1068 - 1.1069 -New features: 1.1070 - 1.1071 -* More special methods for extension types: 1.1072 -__delitem__, __delslice__, __getattr__, 1.1073 -__setattr__, __delattr__ 1.1074 - 1.1075 -* Module-level variable of a Python object type 1.1076 -declared with 'cdef' is private to the module, and 1.1077 -held in a C variable instead of the module dict. 1.1078 - 1.1079 -* External C functions with variable argument lists 1.1080 -can be declared and called. 1.1081 - 1.1082 -* Pyrex-defined Python functions can have default 1.1083 -argument values and * and ** arguments, and can be 1.1084 -called with keyword arguments. 1.1085 - 1.1086 -* Pointer-to-function types can be declared. 1.1087 - 1.1088 -* Pyrex now supports a declaration syntax that 1.1089 -C doesn't! Example: 1.1090 - 1.1091 - cdef (int (*)()) foo() # function returning a function ptr 1.1092 - 1.1093 -* There is now a ctypedef statement. 1.1094 - 1.1095 -* Extension types can now be forward-declared. 1.1096 - 1.1097 -* All permutations of (non-Unicode) string literals 1.1098 -and escape codes should work now. 1.1099 - 1.1100 -* Hex and octal integer literals. 1.1101 - 1.1102 -* Imaginary number literals. 1.1103 - 1.1104 -* Docstrings are now supported. 1.1105 - 1.1106 -Bug fixes: 1.1107 - 1.1108 -* Type tests are performed when using a Python object 1.1109 -in a context requiring a particular extension type. 1.1110 - 1.1111 -* Module-level variable holding the type object 1.1112 -of an extension type had incorrect type. 1.1113 - 1.1114 -0.3 1.1115 ---- 1.1116 - 1.1117 -New features: 1.1118 - 1.1119 -* Extension types! Yay! 1.1120 - 1.1121 -0.2.2 1.1122 ------ 1.1123 - 1.1124 -Bug fixes: 1.1125 - 1.1126 -* Fixed error message generation again after a previous 1.1127 -bug was accidentally re-indroduced. 1.1128 - 1.1129 -* Removed the declaration of isspace() from the code 1.1130 -generated for print statement support (it's not needed 1.1131 -and was conflicting with the system-supplied one on 1.1132 -some platforms). 1.1133 - 1.1134 -0.2 1.1135 ---- 1.1136 - 1.1137 -New features: 1.1138 - 1.1139 -* Executable statements are now allowed at the 1.1140 -top level of a module. 1.1141 - 1.1142 -* Python class definitions are now supported, with 1.1143 -the following limitations: 1.1144 - 1.1145 - - Class definitions are only allowed at the top 1.1146 - level of a module, not inside a control structure 1.1147 - or function or another class definition. 1.1148 - 1.1149 - - Assigning a Pyrex-defined Python function to a 1.1150 - class attribute outside of the class definition 1.1151 - will not create a method (because it's not an 1.1152 - interpreted Python function and therefore 1.1153 - won't trigger the bound-method creation magic). 1.1154 - 1.1155 - - The __metaclass__ mechanism and the creation of 1.1156 - new-style classes is not (yet) supported. 1.1157 - 1.1158 -* Casting between Python and non-Python types is 1.1159 -better supported. 1.1160 - 1.1161 -Bug fixes: 1.1162 - 1.1163 -* Fixed bug preventing for-loops from working. 1.1164 - 1.1165 - 1.1166 -0.1.1 1.1167 ------ 1.1168 - 1.1169 -* I've discovered a flaw in my algorithm for releasing 1.1170 -temp variables. Fixing this properly will require some 1.1171 -extensive reworking; I've put in a hack in the meantime 1.1172 -which should work at the cost of using more temp variables 1.1173 -than are strictly necessary. 1.1174 - 1.1175 -* Fixed bug preventing access to builtin names from 1.1176 -working. This should also have fixed the import 1.1177 -statement, but I haven't tested it. 1.1178 - 1.1179 -* Fixed some errors in __Pyx_GetExcValue. 1.1180 - 1.1181 -* Fixed bug causing boolean expressions to malfunction 1.1182 -sometimes.
2.1 --- a/MANIFEST.in Sat Nov 08 18:05:10 2008 -0800 2.2 +++ b/MANIFEST.in Mon Nov 10 11:04:30 2008 -0800 2.3 @@ -1,16 +1,15 @@ 2.4 -include MANIFEST.in README.txt INSTALL.txt CHANGES.txt ToDo.txt USAGE.txt 2.5 -include CHANGES_pyrex.txt COPYING.txt LICENSE.txt Makefile 2.6 +include MANIFEST.in README.txt INSTALL.txt ToDo.txt USAGE.txt 2.7 +include COPYING.txt LICENSE.txt Makefile 2.8 recursive-include .hg * 2.9 include .hgignore .hgtags 2.10 include setup.py 2.11 -include bin/cython bin/update_references 2.12 +include bin/cython 2.13 include cython.py 2.14 include Cython/Compiler/Lexicon.pickle 2.15 include Cython/Includes/*.pxd 2.16 include Doc/* 2.17 2.18 include Demos/*.pyx 2.19 -include Demos/*.pxd 2.20 include Demos/*.py 2.21 include Demos/callback/* 2.22 include Demos/embed/*
3.1 --- a/ToDo.txt Sat Nov 08 18:05:10 2008 -0800 3.2 +++ b/ToDo.txt Mon Nov 10 11:04:30 2008 -0800 3.3 @@ -1,3 +1,6 @@ 3.4 +See http://trac.cython.org/cython_trac and http://wiki.cython.org/enhancements 3.5 + 3.6 + 3.7 -- The Original Pyrex Todo List -- 3.8 3.9 DONE - Pointer-to-function types.