summaryrefslogtreecommitdiffstats
path: root/debian/pyrex/pyrex-0.9.9/CHANGES.txt
diff options
context:
space:
mode:
Diffstat (limited to 'debian/pyrex/pyrex-0.9.9/CHANGES.txt')
-rw-r--r--debian/pyrex/pyrex-0.9.9/CHANGES.txt1871
1 files changed, 0 insertions, 1871 deletions
diff --git a/debian/pyrex/pyrex-0.9.9/CHANGES.txt b/debian/pyrex/pyrex-0.9.9/CHANGES.txt
deleted file mode 100644
index be330a81..00000000
--- a/debian/pyrex/pyrex-0.9.9/CHANGES.txt
+++ /dev/null
@@ -1,1871 +0,0 @@
-0.9.9
------
-
-New features:
-
- - C++ struct declarations, 'new' operator, and del for C++ delete.
-
- - As well as the 'not None' modifier for extension type arguments, there
- is now 'or None' to explicitly allow passing None. It is planned to make
- 'not None' the default in a future version. For now, a warning is issued
- (once per Pyrex run) if you do not specify one or the other.
-
- - Extension types may have a 'nogc' option to suppress GC support.
-
-Modifications:
-
- - Exceptions caught by an except clause are no longer put into the thread
- state and cannot be retrieved using sys.exc_info(). To access the caught
- exception, it must be bound to a name in the except clause. A third name
- can be supplied to capture the traceback.
-
- - PyString_InternFromString is now exposed under the name 'cintern' because
- it is not a complete substitute for 'intern' (it can't handle strings
- containing null bytes). [John Arbash Meinel]
-
- - Disabled size check for cimported types because it was generating too
- many false positives in the field.
-
- - Added __fastcall calling convention. Also no longer assuming that an
- unspecified calling convention is the same as __cdecl.
-
- - Operations between signed and unsigned ints of the same size now have
- an unsigned result.
-
- - Py_ssize_t now ranked between long and long long.
-
- - Declaration of __new__ in an extension type is now an error, in
- preparation for introducing new semantics.
-
- - Added size_t type, and made sizeof() return it.
-
-Bug fixes:
-
- - When casting the result of a function call to a Python type, the
- function could be called twice. [David Martinez]
-
- - __Pyx_GetException was not taking account of the fact that the traceback
- could be NULL.
-
- - sizeof(module.typename) did not work. [Daniele Pianu]
-
-
-0.9.8.6
--------
-
-Enhancements:
-
- - Check for gil when calling a function declared 'execpt *' or 'except ?'.
- Acquire gil when reporting unraisable exception.
-
- - Added iter2() function for 2-argument form of iter().
-
-Bug fixes:
-
- - Compiler crashed if base class of extension type was incompletely
- defined.
-
- - Compiler crash on misspelled method name in property declaration.
- [Stefan Behnel]
-
- - Fixed deprecation warnings in 2.6
-
- - Always preserve explicit type casts for non-Python types.
- [Alexander Belchenko]
-
- - Added workaround for threading initialisation bug in Python 2.3.
- [Lisandro Dalcin]
-
- - Deleting dict item with integer key did not work. [Titus Brown]
-
- - Header files for cimported modules included in wrong order.
- [Stephane Drouard]
-
- - Don't allow a member of a ctypedef struct to reference itself.
- [Tim Wakeham]
-
- - Compiler crash due to attribute reference in compile-time expression.
- [Hoyt Koepke]
-
- - Public extension type attribute with cname didn't work.
- [Mark Ellis]
-
- - Memory leak related to exporting C functions. [Lisandro Dalcin]
-
- - Compiler crash on return outside function. [Kurt Smith]
-
- - Scope problem with extension types declared in pxd. [KS Sreeram]
-
- - Calling a builtin method of a subclass of a builtin class did not work.
-
- - Builtin hash() function had wrong return type. [John Arbash Meinel]
-
-
-Modifications:
-
- - Added 'tags' to .hgignore file. [Kirill Smelkov]
-
- - Disallow overriding a builtin method in a subclass of a builtin class.
-
-
-0.9.8.5
--------
-
-Bug fixes:
-
- - Function export code was erroneously generated for 'extern' functions
- declared in a .pxd file. [Sebastian Sable]
-
- - The 'api' option was not recognised with 'ctypedef public class'.
- [Lisandro Dalcin]
-
- - MACOSX_DEPLOYMENT_TARGET is no longer set unless the undocumented -X
- option is being used. Hopefully this will prevent complaints about it
- from distutils. [Martin Field]
-
- - Recognize MS_WINDOWS as well as WIN32. [Alexander Belchenko]
-
- - Hexadecimal compile-time constants did not work. [Devan]
-
-Enhancements:
-
- - Dependency files (.dep) are only created when compiling with timestamp
- checking or recursion enabled.
-
-Deprecations:
-
- - The features introducted in 0.9.8 and 0.9.8.1 for cross-forward-declaring
- extension types between .pxd files turn out to be unnecessary, since
- the circular import problems they are aimed at can be avoided using
- ordinary forward delcarations in the .pxd files ahead of any cimports.
-
-
-0.9.8.4
--------
-
-Bug fixes:
-
- - Incorrect code generated for Python indexing with an unsigned int.
- [Christopher Williams]
-
-
-0.9.8.3
--------
-
-Bug fixes:
-
- - Compiling multiple source files at once should work as advertised
- now.
-
- - Assignment of a nogil function to a non-nogil function pointer
- is now allowed.
-
- - Applying += or -= to a pointer and an integer did not work.
- [Arc Riley]
-
- - Compiling a .pyx file whose name is not a valid module name now
- reports an error instead of generating invalid C code.
- [Robert Bradshaw]
-
- - Integer indexing optimisation now performed only for signed
- index types, to avoid change of semantics with index values
- greater than the maximum positive signed int value. [Robert
- Bradshaw]
-
- - Non-void function declared 'except *' could produce C compiler
- warning about uninitialised variable. [Lisandro Dalcin]
-
-
-0.9.8.2
--------
-
-Enhancements:
-
- - A block of external functions can be declared nogil at once.
-
- cdef extern from "somewhere.h" nogil:
- ...
-
-Bug fixes:
-
- - The nogil attribute was not being checked for a match when
- comparing function signatures.
-
- - Improved error message for C method signature mismatch between
- a class and its base class.
-
-Bug workarounds:
-
- - Multiple source files passed to Main.compile are being compiled
- in separate contexts for the time being until I can sort out a
- problem. You probably won't notice any difference except that
- there will be no speed advantage over compiling them separately.
-
-
-0.9.8.1
--------
-
-Enhancements:
-
- - It is no longer necessary to specify the base class of an
- extension type in a forward declaration. Also, if the class is
- defined in a .pxd file, the base class only needs to be specified
- in the .pxd file, not the .pyx file.
- [Arc Riley]
-
- - There's now an even easier way to forward-declare a struct, union
- or extension type in another module:
-
- from blarg cimport class Foo
-
- This simultaneously cimports the name Foo and forward-declares
- it as an extension type. As well as 'class', you can also use
- 'struct' or 'union'.
-
-Modifications:
-
- - Casting a non-Python pointer type to a Python type no longer
- generates an incref, unless one is required for other reasons.
- [Arc Riley]
-
- - More checks added for gil-requiring operations performed without
- holding the gil.
-
-
-0.9.8
------
-
-New features:
-
- * Augmented assignment operators (+=, etc.) are now supported.
-
- * Package directories
-
- Modules in packages no longer need to have dotted names. Instead,
- a Python-like package directory structure can be used, with
- package dirs marked by containing an __init__.py or __init__.pyx.
-
- Top-level package directories are found by searching the include
- directories specified by -I options (analogous to PYTHONPATH).
-
- * Dependency tracking
-
- The Pyrex compiler records information about other source files cimported
- or included, and can automatically compile all the modules a given module
- depends on, with timestamp checking.
-
- This is enabled by a -r (recursive) option to the compiler, e.g.
-
- pyrexc -r mainmodule.pyx
-
- There are also two other new command-line options:
-
- -t Enable timestamp checking. This is implied with -r.
-
- -f Overrides implied -t when using -r and forces all
- dependent modules to be compiled regardless of timestamps.
-
- * Nogil restrictions relaxed
-
- C functions declared nogil can now have Python objects as arguments.
- The argument names are read-only inside the function when this is done.
-
- Among other things, this allows C methods to be declared nogil (this
- couldn't be done before because 'self' is always an object argument).
-
- * Circular cimports
-
- There is now a way of forward-declaring a struct, union or extension type
- into another module. This allows two .pxd files to define extension types
- that refer to each other without running into circular import problems.
- For example:
-
- cimport blarg
- cdef class blarg.Blarg # Forward declaration
-
- cdef class Foo:
- cdef blarg.Blarg blg
-
-
-0.9.7.2
--------
-
- Bug fixes:
-
- - Another integer indexing problem fixed.
-
-
-0.9.7.1
--------
-
- Bug fixes:
-
- - The optimisation for indexing using a C int failed when the
- object being indexed was a mapping rather than a sequence.
- [Arc Riley]
-
- Modifications:
-
- - Old integer for-loop syntax is no longer deprecated.
-
-
-0.9.7
------
-
-New features:
-
- - Builtin constants and types are known, and are referenced directly
- with no dictionary lookup.
-
- - Direct calls are made to certain methods of lists and dicts when
- their type is statically known.
-
- - New builtin functions 'typecheck' and 'issubtype' added, providing
- safer type checking than isinstance and issubclass (which can be
- overridden).
-
-Enhancements:
-
- - Redundant type test eliminated when assigning the result of an
- extension type constructor call to a variable of the same type.
-
- - No tp_traverse and tp_clear functions generated for types
- without Python attributes.
-
- - Safer code generated in tp_clear. [Stefan Behnel]
-
- - Indexing with a C int type generates calls to PySequence_GetItem
- and PySequence_SetItem.
-
- - Integer for-loop syntax streamlined to 'for x < i < y'.
-
- - Appropriate C code generated for compile-time expressions
- evaluating to float nan, inf and -inf. [Stefan Behnel]
-
-Bug fixes:
-
- - Value raised by assert statement now only evaluated if the
- assertion fails. [Stefan Behnel]
-
- - Comparing a value of an enum type with another value of a type
- which is ctypedefed to the same enum type gave a spurious type
- error. [Matt Hammond]
-
- - Comparing an int with a float resulted in the float being cast
- to an int before comparison. [Robin Becker]
-
- - Compiler crashed on an invalid argument to a 'with nogil' statement.
- [Stefan Behnel]
-
- - Incorrect code generated for function with keyword only args
- and no * or ** args. [Stefan Behnel]
-
- - GC type with non-GC base type caused crash due to trying to call
- non-existent base tp_traverse and tp_clear functions. [Stefan Behnel]
-
- - Compile-time IF with no ELSE clause crashed compiler. [Kirk McDonald]
-
- - Values in enum declaration were not being checked for appropriate type.
- [Simon Burton]
-
- - Improved the error message from attempting to declare a struct or
- union member as a function. [Yong Sun]
-
- - Referring to an undefined name in a compile-time constant crashed
- the compiler. [Stefan Behnel]
-
-
-0.9.6.4
--------
-
-Bug fixes:
-
- - Errors in setup.py corrected.
-
- - Incorrect error checking code generated for builtin functions
- and type slots with return type Py_ssize_t. [Robert Bradshaw]
-
- - A counted reference was not kept to the module, so if the entry
- in sys.modules was replaced, the module was freed prematurely.
- [Franck Pommerau]
-
- - A cimport statement inside a function crashed the compiler.
- [Robert Bradshaw]
-
- - __Pyx_ImportModule routine wasn't protected from multiple
- definition when including _api.h files. [Stefan Behnel]
-
- - Temp variables holding exception values were not being set to
- NULL after use in an except clause. [Robert Bradshaw]
-
- - Protect __stdcall and __cdecl from redefinition. [Jim Kleckner]
-
- - A temp var was not being set to NULL after api function import
- code. [Stefan Behnel]
-
- - __Pyx_ImportFunction was incorrectly decrefing a borrowed
- reference. [Stefan Behnel]
-
-Enhancements:
-
- - Functions declared with_gil and external functions declared nogil
- are now allowed to have Python arguments and return types.
-
-
-0.9.6.3
--------
-
-Enhancements:
-
- - C API now only uses a single name in the module namespace
- instead of one for each exported C function. [Stefan Behnel]
-
- - Multiple declarations with the same visibility and api options
- can now be grouped into a 'cdef' block.
-
- - The 'api' keyword can now be used on extension types to cause
- generation of an api.h file when there are no exported C functions.
-
- - Added a getattr3() builtin for the three-argument form of getattr.
-
-Bug fixes:
-
- - Setup.py no longer uses an import to get the version number
- being installed, to avoid a problem with setuptools.
-
- - If a struct or union was forward-declared, certain types of error
- message misleadingly referenced the source location of the forward
- declaration rather than the definition.
-
- - Calling convention specifier was being emitted in function
- prototypes but not the corresponding definitions. [Atsuo Ishimoto]
-
- - Added support for the --force option to Pyrex.Distutils.
- [Alexander Belchenko]
-
- - Compile-time "==" operator did not work. [Simon King]
-
- - Header files generated for public and api declarations now
- only contain types declared as 'public', instead of all types
- defined in the module. [Stefan Behnel]
-
-
-0.9.6.2
--------
-
-Bug fixes:
-
- - Corrected a problem with declaration ordering in generated C
- code involving forward-declared struct, union or extension types.
-
- - New distutils extension: Only compile .pyx if it is newer
- than the corresponding .c file.
-
-
-0.9.6.1
--------
-
-Bug fixes:
-
- - Changed os.uname to platform.uname for portability.
- [Alexander Belchenko]
-
- - Fixed C compiler warning about incompatible types in 2.5.
- [Alexander Belchenko]
-
- - Also fixed a few other 2.5 problems.
-
- - Fixed problem with the Extension class in the new Pyrex.Distutils
- module.
-
-
-0.9.6
------
-
-New Features:
-
- - Top-level C functions defined in one module can now be used in
- another via cimport, and a C API can be produced to allow them
- to be used from C code without linking to the extension module.
- See "Interfacing with External C Code" and "Sharing Declarations
- between Pyrex Modules" in the Language Overview. [Stefan Behnel]
-
- - Facilities added for releasing the GIL around a section of code
- and acquiring it on entry to a C function. See "Acquiring and
- Releasing the GIL under "Interfacing with External C Code" in
- the Language Overview. [Ulisses Furquim, Stefan Behnel]
-
- - Some conditional compilation facilities have been added. See
- "Conditional Compilation" under "Language Basics" in the
- Language Overview. [Sam Rushing]
-
-Language Changes:
-
- - The __new__ special method of extension types is being renamed
- to "__cinit__". For now, you will get a warning whenever you
- declare a __new__ method for an extension type, and it will
- automatically be renamed to __cinit__ for you. In the next
- release, the warning will become an error and no renaming will
- occur. In some later release, the __new__ method may be
- re-introduced with different semantics. It is recommended that
- you begin updating your sources now to use __cinit__.
-
- - A 'raise' statement with no arguments (i.e. to re-raise the
- last exception caught) is now required to be lexically within
- the 'except' clause which caught the exception. This change was
- necessary to efficiently support preserving the exception if an
- intervening call raises and catches a different exception.
-
- - The following new reserved words have been added:
-
- with, DEF, IF, ELIF, ELSE
-
-Enhancements:
-
- - Calls to many of the builtin functions are now compiled as
- direct calls to Python/C API routines.
-
- - A C type explicitly declared as 'signed' is represented as
- such in the generated code, to acommodate platforms where
- 'char' is unsigned by default. [Francesc Altet]
-
- - Python function can now have an argument of type "unsigned
- char". [Alexander Belchenko]
-
- - A new Pyrex.Distutils implementation has been added, which
- exports an Extension type supporting the following options:
-
- pyrex_include_dirs - list of dirs to search for Pyrex header files
- pyrex_create_listing_file - bool - write errs to listing file
- pyrex_cplus - bool - generate C++ code
- pyrex_c_in_temp - bool - put generated C files in temp dir
- pyrex_gen_pxi - bool - generate .pxi file for public declarations
-
- [Contributed by Billie G. Allie]
-
- - Assert statements can be compiled out by arranging for
- PYREX_WITHOUT_ASSERTIONS to be #defined at C compilation time.
- [Contributed by Stefan Behnel]
-
- - Support for __index__ slot added to extension types.
- [William Stein]
-
- - Exception types now properly checked according to pre or post
- 2.5 rules as appropriate.
-
- - Py_ssize_t support added. [Stefan Behnel]
-
- - Windows __stdcall and __cdecl qualifiers now supported.
- [Suggested by Eric Devolder]
-
- - Keyword-only argument support added. [Suggested by Stefan Behnel]
-
- - An 'include' statement can now appear anywhere that another kind
- of statement or declaration can appear, instead of being restricted
- to the top level. [Caio Marcelo]
-
- - Unnecessary PyErr_Occurred() call to check result of
- PyString_AsString() no longer made.
-
- - Complicated C types are displayed more readably in error messages.
-
-Modifications:
-
- - A Python function argument declared as "char" or "unsigned
- char" now expects a Python integer rather than a string of
- length 1, for consistency with the way automatic conversions
- are done elsewhere.
-
- - Support for string and tuple exceptions dropped.
-
-Bug fixes:
-
- - If an external ctypedef type was used as the type of an
- argument to a Python function, a declaration was generated
- using the underlying type rather than the typedef name.
- [Francesc Altet]
-
- - Some problems with int/enum and pointer/array compatibility
- fixed. [Eric Huss, Stefan Behnel, Jiba]
-
- - Eliminated C compiler warning when comparing an extension
- type reference to None using 'is' or 'is not'
-
- - Eliminated C compiler warnings about docstrings of C functions
- and special methods being unused. [Francesc Altet]
-
- - When compiling with -O, raising an exception in a C function
- that couldn't propagate exceptions produced a compiler
- warning about the return value possibly being uninitialised.
-
- - Fixed warning about function declaration not being a prototype
- caused by C method table initialisation code.
-
- - Spurious initialisation was generated for unused local variable.
- [Helmut Jarausch]
-
- - Declaration of a non-extern C function without definition
- was not detected. [Lenard Lindstrom]
-
- - Applying ** directly to two C int types is now disallowed due
- to ambiguity (it's not clear whether to use C pow() or convert
- to Python ints). [Didier Deshommes]
-
- - Traverse and clear code was being inadvertently generated for
- the __weakref__ slot of a weakly-referenceable extension type.
- [Peter Johnson]
-
- - Statements other than def inside a property declaration were
- crashing the compiler. [Sven Berkvens]
-
- - Defining an extension type with different visibility from its
- declaration in a .pxd file crashed the compiler.
- [Alex Coventry]
-
- - Instantiating an exception type whose base class __new__ method
- raises an exception caused a segfault. [Gustavo Sverzut Barbieri]
-
- - The 'import pkg.module as name' form of import statement did not
- work correctly. [Dan]
-
- - Fixed error-checking typo in __Pyx_GetStarArgs(). [Eric Huss]
-
- - Trailing comma now allowed on argument list. [Jim Kleckner]
-
- - Behaviour of reraise made to match Python more closely.
- [Eric Huss]
-
- - An empty C variable declaration crashed the compiler.
-
- - Now includes math.h instead of generating own declaration
- of pow(). [Leif Strand]
-
- - Missing import of sys in LinuxSystem.py added. [Scott Jackson]
-
- - Typecasts using a ctypedef type were not using the ctypedef
- name. [Alexander Belchenko]
-
- - Workaround added to setup.py for a problem with bdist_wininst.
- [Alexander Belchenko]
-
- - Subtle error in parsing empty function declarators corrected.
-
- - Checks added for some type combinations that are illegal in C:
- array of functions, function returning function or array, cast
- to a function.
-
-
-0.9.5.1a
---------
-
-Bug fixes:
-
- - Package list now calculated dynamically in setup.py so that
- it will work with or without the testing framework installed.
-
-
-0.9.5.1
--------
-
-Bug fixes:
-
- - Comparing two values of the same enum type incorrectly
- produced an error. [Anders Gustafsson]
-
- - Compiler crash caused by assigning a Python value to
- a variable of an enum type. [Peter Johnson]
-
- - Comparison between pointer and array incorrectly produced
- a type mismatch error. [Helmut Jarausch]
-
- - Unused local Python variable had spurious init/cleanup code
- generated for it, causing C compilation errors. [Helmut Jarausch]
-
- - Updated list of packages in setup.py.
-
-Modifications:
-
- - NULL in Pyrex source now translated into NULL instead of 0
- in C code, to allow for the possibility of calling something
- not defined with a prototype in an external header. [Adapted Cat]
-
-
-0.9.5
------
-
-Enhancements:
-
- - Exception return values may now be specified by arbitrary
- constant expressions of appropriate type, not just literals.
- [Stefan Behnel]
-
- - Redundant type check now omitted when passing a literal None
- to a function expecting an extension type. [Patch by Sam Rushing]
-
- - New-style classes now allowed as exceptions for compatibility
- with Python 2.5 (inheritance from BaseException not currently
- checked). [Stefan Behnel]
-
- - Sequence unpacking is now done using the iterator protocol
- instead of indexing.
-
- - Allocation of an empty tuple is avoided when making a
- Python call with no arguments. [Stefan Behnel]
-
- - Most warnings about unused variables and labels have been
- eliminated.
-
- - Support for running the test suite on Linux added but not
- yet fully tested. [Based in part on patch by Eric Wald].
-
- - Makefile included for compiling the patched Carbon File module
- used by the MacOSX test code.
-
-Modifications:
-
- - Type rules for enums tightened for compatibility with C++.
-
- - Direct assignment from float to int disallowed to prevent
- C++ compilation warnings.
-
- - Hex literals left as hex in C code to avoid warnings from
- the C compiler about decimal constants becoming unsigned.
-
-Bug fixes:
-
- - Exception raised during argument conversion could cause crash
- due to uninitialised local variables. [Konrad Hinsen]
-
- - Assignment to a C attribute of an extension type from a
- different type could generate C code with a pointer type
- mismatch. [Atsuo Ishimoto]
-
- - Backslash in a string literal before a non-special character
- was not handled correctly. [Yuan Mang]
-
- - Temporary vars used by del statement not being properly
- released, sometimes leading to double decrefs. [Jiba]
-
- - A return statement whose expression raises an exception
- inside a try-except that catches the exception could cause
- a crash. [Anders Gustafsson]
-
- - Fixed type compatibility checking problem between pointers
- and arrays. [Lenard Lindstrom]
-
- - Circular imports between modules defining extension types
- caused unresolvable import order conflicts. [Mike Wyatt]
-
- - Cimporting multiple submodules from the same package caused
- a redefined name error for the top level name. [Martin Albrecht]
-
- - Incorrect reference counting when assigning to an element of an
- array that is a C attribute of an extension type. [Igor Khavkine]
-
- - Weak-referenceable extension types were not implemented
- properly. [Chris Perkins, Peter Johnson]
-
- - Crash if C variable declared readonly outside an extension
- type definition. [Eric Huss]
-
-Doc updates:
-
- - Expanded discussion of the need for type declarations to enable
- access to attributes of extension types.
-
- - Added a section "Source Files and Compilation" explaining the
- rules for naming of source files of modules residing in packages,
- and instructions for using the compiler and distutils extension.
-
-
-0.9.4.1
--------
-
-Bug fixes:
-
- - Fixed indentation problem in Pyrex.Distutils.build_ext.
- [Oliver Grisel]
-
-
-0.9.4
------
-
-Improvements:
-
- - All use of lvalue casts has been eliminated, for
- compatibility with gcc4.
-
- - PyMODINIT_FUNC now used to declare the module init function.
-
- - Generated code should be compilable as either C or C++.
- When compiling as C++, "extern C" is used where appropriate
- to preserve linkage semantics.
-
- - An extension type can be made weak-referenceable by
- giving it a C attribute of type object called __weakref__.
-
- - Source files opened in universal newlines mode.
-
- - Support for public extension type C attributes of type
- long long and unsigned long long added (but not tested).
- [Sam Rushing]
-
- - Distutils include directories now passed to Pyrex compiler.
- [Konrad Hinsen]
-
- - Integer constants with an "L" suffix are now allowed
- and are converted to Python long integers. [Rainer Deyke]
-
- - A broken .c file is no longer left behind if there are
- compilation errors.
-
- - Using the result of a Python indexing or attribute access
- operation as a char * is no longer considered an error in
- most cases, as the former behaviour proved to be more
- annoying than helpful.
-
-Bug fixes:
-
- - Fixed problems with conversion from Python integers to
- C unsigned longs. Now use PyInt_AsUnsignedLongMask and
- PyInt_AsUnsignedLongLongMask instead of the PyLong_*
- functions (which only work on Python longs). [Wim Vree]
-
- - C unsigned ints now converted to/from Python longs intead
- of Python ints to avoid overflow problems. [Heiko Wundram]
-
- - Correct PyArg_ParseTuple format characters now used for
- unsigned types. [Jeff Bowden]
-
- - Nonzero return value from a base class tp_traverse call
- is handled.
-
- - Taking sizeof an incomplete type caused a crash while
- producing an error message. [Drew Perttula]
-
- - If a module cimported itself, definitions of global variables
- were generated twice. [Parzival Herzog]
-
- - Distutils extension updated to handle changed signature of
- swig_sources(). [David M. Cooke]
-
- - Incorrect C code generated for a raw string containing a double
- quote preceded by a backslash. [Thomas Drake]
-
- - Declaration of public C function with an exception value written
- to generated .pxi file without the except clause. [Robby Dermody]
-
- - __delitem__ method of an extension type with no __setitem__
- did not get called. [Richard Boulton]
-
- - A spurious Py_INCREF was generated when a return statement
- required a type test. [Jonathan Doda]
-
- - Casting a value to a function pointer and then immediately
- calling it generated a cast to a function instead of a cast
- to a function pointer. [Simon Burton]
-
- - Py_TPFLAGS_HAVE_GC was not being set on an extension type that
- inherited from an external extension type that used GC but did
- not itself have any PyObject* attributes.
- [Michael Hordijk]
-
- - A return statement inside a for statement leaked a reference
- to the loop's iterator.
- [Jürgen Kartnaller]
-
- - Full module name now appears in __module__ attribute of classes
- and extension types, provided a correct dotted name is used
- for the .pyx file. [Giovanni Bajo]
-
- - Public extension type with no C attributes produced an
- invalid .pxi file. [Simon Burton]
-
- - Using a dict constructor as the second operand of a boolean
- expression crashed the Pyrex compiler.
- [Stefan Behnel]
-
- - A C declaration list ending with a comma resulted in invalid
- C code being generated. [Alex Coventry]
-
- - A raw string containing two consecutive backslashes produced
- incorrect C code. [Helmut Jarausch]
-
- - An error is reported if you attempt to declare a special
- method of an extension type using 'cdef' instead of 'def'.
- [Sam Rushing]
-
-0.9.3
------
-
-Enhancements:
-
- - Types defined with a ctypedef in a 'cdef extern from' block
- are now referred to by the typedef name in generated C code,
- so it is no longer necessary to match the type in the C
- header file exactly.
-
- - Conversion to/from unsigned long now done with
- PyLong_AsUnsignedLong and PyLong_FromUnsignedLong. [Dug Song]
-
- - A struct, union or enum definition in a 'cdef extern from'
- block may now be left empty (using 'pass'). This can be useful
- if you need to declare a variable of that type, but don't need
- to refer to any of its members.
-
- - More flexible about ordering of qualifiers such as 'long' and
- 'unsigned'. ["John (J5) Palmieri"]
-
-
-Bug fixes:
-
- - Non-interned string literals used in a Python class
- definition did not work. [Atsuo Ishimoto, Andreas Kostyrka]
-
- - Return types of the buffer interface functions for extension
- types have been corrected. [Dug Song]
-
- - Added 'static' to declarations of string literals. [Phil Frost]
-
- - Float literals are now copied directly to the C code as written,
- to avoid problems with loss of precision. [Mario Pernici]
-
- - Inheriting from an extension type with C methods defined in
- another Pyrex module did not work. [Itamar Shtull-Trauring]
-
-0.9.2.1
--------
-
-Bug fixes:
-
- - Corrected an import statement setup.py, and made it
- check for a unix platform in a more reliable way.
-
-0.9.2
------
-
-Enhancements:
-
- - Names of Python global variables and attributes are now
- interned, and PyObject_GetAttr/SetAttr are used instead
- of PyObject_GetAttrString/SetAttrString. String literals
- which resemble Python identifiers are also interned.
-
- - String literals are now converted to Python objects only
- once instead of every time they are used.
-
- - NUL characters are now allowed in Python string literals.
-
- - Added some missing error checking code to the beginning
- of module init functions. It's unlikely the operations
- involved would ever fail, but you never know.
-
-Bug fixes:
-
- - Corrected some problems introduced by moving the Plex
- package.
-
-0.9.1.1
--------
-
-Bug fixes:
-
- - Corrected a problem in the setup.py (pyrexc script incorrectly
- named).
-
- - Updated the distutils extension to match changes in the
- Pyrex compiler calling interface.
-
- - Doing 'make clean' in Demos/callback was removing a little too
- much (that's why cheesefinder.c kept disappearing).
-
-0.9.1
------
-
-Enhancements:
-
- - A C method can now call an inherited C method by the usual
- Python technique. [Jiba]
-
- - The __modname__ of a Python class is now set correctly. [Paul Prescod]
-
- - A MANIFEST.in file has been added to the distribution to
- facilitate building rpms. [contributed by Konrad Hinsen]
-
-Bug fixes:
-
- - Conditional code now generated to allow for the renaming of LONG_LONG
- to PY_LONG_LONG that occurred between Python 2.2 and 2.3.
-
- - Header files referenced in cimported modules were not being included.
- [Tom Popovich]
-
- - References to C functions and variables in a cimported module were
- not being recognised if made from within a local scope. [Tom Popovich]
-
- - Spurious declarations in code generated for a "finally" block.
- [Brandon Long]
-
- - Attempting to return a value from a __contains__ method didn't work.
- [Andreas Kostyrka]
-
- - Incorrect code generated for an extension type with C methods
- inheriting from a base type with no C methods. [Robin Becker]
-
- - Failure to report an error if a C method was defined in the
- implementation part of an extension type that was not declared
- in the corresponding definition part. Documentation also updated
- to explain that this is necessary. [Jiba]
-
- - Made it an error to forward-declare an extension type with
- a different base class specification from its subsequent
- definition. [Jiba]
-
- - C attributes of an extension type were not being propagated
- through more than one level of inheritance. [Jiba]
-
- - If a garbage collection occurred early enough in the __new__
- method of an extension type with Python-valued C attributes,
- a crash could occur in its tp_traverse function.
- [reported by Jiba, fix suggested by Paul Prescod]
-
- - An empty vtable struct is no longer generated for extension
- types with no C methods. [Robin Becker]
-
- - Memory was leaked in the sq_item function of an extension
- type with a __getitem__ method. [Atsuo Ishimoto]
-
- - Code generated to work around a bug in some versions of Python
- 2.2 which fails to initialise the tp_free slot correctly in
- some circumstances. [Matthias Baas]
-
- - Compiler crash when defining an extension type with a base
- class specified by a dotted name. [Alain Pointdexter]
-
- - Referencing an extension type defined in a cimported module
- at run time did not work correctly. [Alain Pointdexter]
-
- - Incorrect object struct code generated for an extension type
- whose base class was defined in a .pxd file. [Alain Pointdexter]
-
- - Redeclaring a type that wasn't previously an extension type
- as an extension type caused a compiler crash. [Scott Robinson]
-
- - Incorrect code was generated for return statements in a
- special method with no return value. [Gary Bishop]
-
- - Single-line def statement did not work. [Francois Pinard]
-
-Modifications:
-
- - Only the last pathname component of the .pyx file is reported in
- backtraces now. [Bryan Weingarten]
-
- - Documentation corrected to remove the erroneous statement that
- extension classes can have a __del__ method. [Bryan Weingarten]
-
- - Note added to documentation explaining that it is not possible
- for an extension type's __new__ method to explicitly call the
- inherited __new__ method.
-
- - The version of Plex included with Pyrex is now installed
- as a subpackage of the Pyrex package, rather than as a
- top-level package, so as not to interfere with any other
- version of Plex the user may have installed.
-
-0.9
----
-
-New features:
-
- - Extension types can have properties. See the new "Properties"
- section in the "Extension Types" page.
-
- - An extension type can inherit from a builtin type or another
- extension type. See "Subclassing" in the "Extension Types" page.
-
- - Extension types can have C methods, which can be overridden
- in derived extension types. See "C Methods" in the "Extension Types"
- page.
-
-Enhancements:
-
- - Conversion is now performed between C long longs and Python
- long integers without chopping to the size of a C long.
- Also the Python PY_LONG_LONG type is now used for long longs
- for greater portability.
-
-Bug fixes:
-
- - Names were sometimes being generated that were insufficiently
- unique in the presence of cimported declarations.
-
- - Changed the way the included filename table is declared from
- char *[] to char **, to stop MSVC from complaining about it
- having an unknown size. [Alexander A Naanou]
-
- - Second argument of assert statement was not being coerced
- to a Python value. [Francois Pinard]
-
- - Return statement without value wasn't accepted in some
- extension type special methods when it should have been.
- [Francois Pinard]
-
- - Attempting to call a non-function C value crashed the
- compiler. [John J Lee]
-
- - Functions declared as "except *" were not returning exceptions.
- [John J Lee]
-
- - A syntax warning from Plex about assignment to None has
- been eliminated. [Gordon Williams]
-
- - Public function declaration with empty argument list was
- producing (void) in .pxi file. [Michael P. Dubner]
-
- - Incorrect error signalling code was being generated in the
- __hash__ special method of an extension type.
-
-
-0.8.1
------
-
-Bug fixes:
-
- - Names of structs, unions and enums in external header
- files were getting mangled when they shouldn't have been.
- [Norman Shelley]
-
- - Modified distutils extension so that it will stop before
- compiling the C file if the Pyrex compiler reports errors.
- [John J Lee]
-
-
-0.8
----
-
-New features:
-
- - INCOMPATIBLE CHANGE: The type object of an external extension
- type is now imported at run time using the Python import
- mechanism. To make this possible, an 'extern' extension type
- declaration must DECLARE THE MODULE from which the extension
- type originates. See the new version of the "Extension Types"
- documentation for details.
-
- This change was made to eliminate the need for Pyrex to be
- told the C name of the type object, or for the Pyrex module
- to be linked against the object code providing the type object.
-
- You will have to update any existing external extension type
- declarations that you are using. I'm sorry about that, but it
- was too hard to support both the old and new ways.
-
- - Compile-time importing: A Pyrex module can now import declarations
- from another Pyrex module using the new 'cimport' statement. See
- the new section on "Sharing Declarations Between Pyrex Modules" in
- the documentation.
-
-Minor improvements:
-
- - An error is reported if you declare a struct, union or
- extension type using 'cdef' in one place and 'ctypedef'
- in another.
-
- - Struct, union and extension types can only be forward-
- declared using 'cdef', not 'ctypedef' (otherwise invalid
- C code would be generated).
-
- - The 'global' statement can be used at the module level to
- declare that a name is a module-level name rather than a
- builtin. This can be used to access module attributes such
- as __name__ that would otherwise be assumed to be builtins.
- [Pat Maupin]
-
- - The 'assert' statement now accepts a second argument.
- [Francois Pinard]
-
-Bug fixes:
-
- - When using Python 2.3, "True" or "False" could sometimes
- turn up in generated code instead of "1" or "0". [Adam Hixson]
-
- - Function return value not always converted to or from a
- Python object when it should have been.
-
- - Certain kinds of error in a function call expression
- could crash the compiler. ["Edward C. Jones"]
-
- - Fixed memory leak in functions with * or ** args. [Alexander A Naanou]
-
-
-0.7.1
------
-
-Bug fixes:
-
- - Calling a function declared as returning an extension
- type could crash the compiler.
-
- - A function call with type errors in the argument list
- could crash the compiler.
-
- - An 'else' clause on a for-from statement could crash
- the compiler.
-
- - Incorrect casting code was generated when a generic
- object argument of a special method was declared as
- being of an extension type. [Phillip J. Eby]
-
- - A blank line that couldn't be interpreted wholly as
- a valid indentation sequence caused a syntax error.
- In particular, a formfeed character on an otherwise
- blank line wasn't accepted. [Francois Pinard]
-
- - Parallel assignments were incorrectly optimised.
-
- - A bare tuple constructor with an extra comma at the
- end of a line caused a syntax error.
-
-0.7
----
-
-New features:
-
- - Attributes of extension types can be exposed to Python
- code, either read/write or read-only.
-
- - Different internal and external names can be specified
- for C entities.
-
- - None is a compile-time constant, and more efficient code
- is generated to reference it.
-
- - Command line options for specifying directories to
- search for include files.
-
-Enhancements:
-
- - More efficient code is generated for access to Python
- valued C attributes of extension types.
-
- - Cosmetic code improvement: Less casting back and forth
- between extension types and PyObject * when referencing
- C members of the object struct.
-
- - C arguments and variables declared as an extension type
- can take the value None.
-
- - Form feed characters are accepted as whitespace.
-
- - Function names in tracebacks are qualified with
- module name and class name.
-
-Bug fixes:
-
- - A sufficiently complex expression in a boolean context
- could cause code to be generated twice for the same
- subexpression.
-
- - Incorrect casting code was generated when passing an
- extension type to a function expecting a generic Python
- object.
-
- - Executable statements are now disallowed inside a
- cdef class block (previously they silently caused
- crazy C code to be generated).
-
- - Tracebacks should now report the correct filename for
- functions defined in files included with the 'include'
- statement.
-
- - The documentation incorrectly claimed that an extension
- type can't have a __del__ method. In fact, it can, and
- it behaves as expected.
-
-
-0.6.1
------
-
-Bug fixes:
-
- - Fixed broken distutils extension.
-
-
-
-0.6
----
-
-New features:
-
- - Command line options for reporting version number,
- requesting a listing file and specifying the name of
- the generated C file.
-
- - An 'include' statement allows inclusion of declarations
- from other Pyrex source files.
-
- - If there are any public declarations, a Pyrex include
- file is generated (as well as a .h file) containing
- declarations for them.
-
- - Extension types can be declared public, so their C
- attributes are visible to other Pyrex and C code.
-
- - Try-except statements can now have an 'else' clause.
- [Francois Pinard]
-
- - Multiple simple statements can be placed on one line
- separated by semicolons.
-
- - A suite consisting of a simple statement list can now
- be placed on the same line after the colon in most
- cases. [Francois Pinard]
-
- - The automatic coercion of a C string to a C char has
- been removed (it proved to be too error-prone).
- Instead, there is a new form of literal for C
- character constants: c'X'
-
- - The __get__ special method (used by descriptor objects)
- now allows for the possibility of the 2nd or 3rd
- arguments being NULL. Also the __set__ method has been
- split into two methods, __set__ and __delete__.
- [Phillip J. Eby]
-
-Bug fixes:
-
- - Values unpacked into a non-Python destination variable
- were not being converted before assignment. [Gareth Watts]
-
- - Hex constants greater than 0x7fffffff caused compiler
- to crash. [Gareth Watts]
-
- - Type slots are no longer statically initialised with
- extern function pointers, to avoid problems with
- some compilers. The hack in the distutils extension
- to work around this by compiling as C++ has been
- disabled. [Phillip J. Eby]
-
- - Fixed several more instances of the error-reporting
- routine being called with arguments in the wrong
- order. Hoping I've *finally* got all of them now...
-
- - Nested for-from loops used the same control variable.
- [Sebastien de Menten]
-
- - Fixed some other error message related bugs. [Francois Pinard]
-
- - Assigning to slice didn't work. [Francois Pinard]
-
- - Temp variables were being declared as extension
- types and then being assigned PyObject *'s. All
- Python temp vars are now declared as PyObject *.
- [Francois Pinard]
-
-0.5
----
-
-Bug fixes:
-
- - Algorithm for allocating temp variables redesigned
- to fix various errors concerning temp
- variable re-use. [Mark Rowe]
-
- - Memory leak occured sometimes when an implicit
- type test was applied to the result of an
- expression. [Christoph Wiedemann]
-
- - __set__ method of extension types had wrong
- signature. [Josh Littlefield]
-
-0.4.6
------
-
-Bug fixes:
-
- - Indexing multi-dimensional C arrays didn't
- work. [Gary Dietachmayer]
-
-
-0.4.5
------
-
-New features:
-
- - There is now a 'public' declaration for
- making Pyrex-defined variables and functions
- available to external C code. A .h file is
- also generated if there are any public
- declarations.
-
-Enhancements:
-
- - Defining __len__/__getitem__ methods in an
- extension class fills sq_length/sq_item slots
- as well as mp_length/mp_subscript. [Matthias Baas]
-
- - The Distutils extension now allows .c files
- to be incorporated along with .pyx files.
- [Modification to Distutils extension contributed
- by Darrell Gallion]
-
-Bug fixes:
-
- - Float literals without a decimal point
- work again now. [Mike Rovner, Peter Lepage]
-
- - Compiler crashed if exception value didn't
- match function return type. [Michael JasonSmith]
-
- - The setup.py file should now install the
- Lexicon.pickle file in the right place.
- [Patch supplied by David M. Cooke]
-
- - Compiler crashed when compiling a C function that
- returned an extension type.
- [David M. Cooke]
-
- - Anonymous enum types did not have C code
- suppressed inside an extern-from block. [Matthew Mueller]
-
-
-0.4.4
------
-
-Enhancements:
-
- - Tracebacks now extend into Pyrex function
- calls and show line numbers in the Pyrex
- source file.
-
- - Syntax for float literals made more lenient
- (no longer requires digits both before and
- after the point). [Peter Lepage]
-
- - Method calls can be made on string literals
- (e.g. ",".join(x)). [Pedro Rodriguez]
-
-Bug fixes:
-
- - Incorrect refcount code generated when a
- Python function needing argument type tests
- had local Python variables. [Matthias Baas]
-
- - 'self' parameter of __getitem__ method of
- extension type had wrong implicit type. [Peter Lepage]
-
- - Repaired breakage introduced by trying to
- allow an empty parameter list to be written
- as (void). No longer attempting to allow
- this (too hard to parse correctly). [Peter Lepage]
-
- - Found bug in Plex 1.1.2 which was the *real*
- cause of the two-newlines-in-a-row problem.
- Removed the Opt(Eol)+Str("\n") hacks in
- the scanner which were working around this
- before. [Pedro Rodriguez]
-
- - __call__ special method of extension types
- had wrong signature. [Peter Lepage]
-
-
-0.4.3
------
-
-New language features:
-
- - For-from loop for iterating over integer
- ranges, using pure C loop where possible.
-
-Enhancements:
-
- - sizeof() can now be applied to types as
- well as variables.
-
- - Improved handling of forward-declared
- extension types.
-
-Bug fixes:
-
- - Two newlines in a row in a triple quoted
- string caused a parse error on some
- platforms. [Matthias Baas]
-
- - Fixed problem with break and continue in
- the else-clause of a loop.
-
-
-0.4.2
------
-
-New language features:
-
- - C functions can be declared as having an
- exception return value, which is checked
- whenever the function is called. If an
- exception is detected inside a C function
- for which no exception value is declared,
- a warning message is printed and the
- exception is cleared.
-
- - Cascaded assignments (i.e. a = b = c
- are now supported.
-
- - Anonymous enum declarations are allowed,
- for when you just want to declare constants.
-
- - The C types "long long" and "long double"
- are now understood. Also, "int" is optional
- after "short" or "long".
-
-Enhancements:
-
- - A * argument in a function call can now be
- any sequence, not just a tuple.
-
- - A C char* or char[] will be turned into
- a char by taking its first character if
- used in a context where a char is required,
- thus allowing a string literal to be used as
- a char literal.
-
- - C string * C int or vice versa is now
- interpreted as Python string replication.
-
- - Function arguments are checked for void or
- incomplete type.
-
-Bug fixes:
-
- - Non-external extension types show up in the
- module dict once more (this got broken in
- 0.4.1).
-
- - A spurious decref has been removed from the
- runtime support code for the "import" statement.
- Hopefully this will prevent the crashes some
- people have been experiencing when importing
- builtin modules. [Mathew Yeates]
-
-0.4.1
------
-
-New language features:
-
- - "ctypedef struct/union/enum/class" statements
- added, for use in extern-from blocks when a
- header file uses a ctypedef to declare a
- tagless struct, union or enum type.
-
- - "pass" allowed in an extern-from block.
-
- - "cdef extern from *" for when you don't want
- to specify an include file name.
-
- - Argument names may be omitted in function
- signatures when they're not needed.
-
- - New reserved word NULL for the null C pointer.
-
-Compiler enhancements:
-
- - Lexicon is now picked in binary format, so
- startup should be much faster on slower
- machines.
-
- - If Pyrex decides to rebuild the lexicon and
- then finds that it can't write a pickle file,
- it now prints a warning and carries on
- instead of crashing.
-
- - Chat about hash codes and lexicon pickling
- now turned off by default except when creating
- a new lexicon (which ought never happen now
- unless you change the scanner).
-
-Bug fixes:
-
- - Modified the runtime support code for "import"
- statements, hopefully fixing problem with using
- a Pyrex module in conjunction with py2exe.
-
- - DL_EXPORT now used in both the prototype and
- definition of the module init function.
-
- - Exception state is now saved and restored around
- calls to an extension type __dealloc__ method,
- to avoid screwing up if the object is deallocated
- while an exception is being propagated.
-
- - Making an attribute reference to a method of
- an extension type caused a compiler crash.
-
- - Doc string in new-style class definition
- caused a run-time error.
-
- - Insufficient parentheses were put around C type
- casts.
-
- - Constructors for extension types are now read-only
- C global variables instead of entries in the
- module dict. This change was needed to prevent
- Numeric from blowing up due to touching its
- typeobject before import_numeric() could be called.
-
-0.4
----
-
-New features:
-
- - "cdef extern from" statement allows inclusion
- of C header files to be specified, solving
- a number of problems including:
- - Clashes between Pyrex and C declarations,
- due to "const" and other reasons
- - Windows-specific features required in
- function declarations
- - Helping deal with types such as "size_t"
- - Helping deal with functions defined as
- macros
-
- - Access to internals of pre-existing extension
- types is now possible by placing an extension
- type declaration inside a "cdef extern from"
- block.
-
-Bug fixes:
-
- - Error not reported properly when passing
- wrong number of args to certain special
- methods of extension types. [Mitch Chapman]
-
- - Compile-time crash when defining an extension
- type with a __hash__ method.
-
-Minor enhancements:
-
- - Hashing of the scanner source file made more
- platform-independent, making spurious regeneration
- of the pickle less likely.
-
-
-0.3.4
------
-
-Bug fixes:
-
- - Runtime crash when using * or ** args in
- a method of an extension type fixed. [Matthew Mueller]
-
- - Compiler crash when using default argument
- values in a method of a Python class. [Mike Rovner]
-
-Enhancements:
-
- - Type slots filled with functions from outside
- the extension module are now initialised dynamically,
- which should eliminate at least some of the
- "initialiser is not constant" problems experienced
- on Windows. [Marek Baczek]
-
- - On Windows, __declspec(dllexport) is now used for
- the module init func declaration (or should be --
- I haven't tested this). [Marek Baczek]
-
- - The compiler shouldn't attempt to rewrite the
- Lexicon.pickle file unless the source has been
- changed (hashing is used now instead of comparing
- timestamps). So there should be no problem any more
- with installing Pyrex read-only.
-
-0.3.3
------
-
-Bug fixes:
-
-* A void * can be assigned from any other
-pointer type.
-* File names in error messages no longer
-quoted (this was apparently confusing some
-editors). [Matthew Mueller]
-
-* Reference to a struct member which is an
-array is coerced to a pointer. [Matthew Mueller]
-
-* Default argument values did not work
-in methods of an extension type. [Matthew Mueller]
-
-* Single or double quote characters in a
-triple-quoted string didn't work. [Matthew Mueller]
-
-* Using *args in a function definition
-sometimes caused a crash at runtime. [Matthew Mueller]
-
-* A hack is included which tries to make
-functions in Python.h which use 'const'
-accessible from Pyrex. But it doesn't
-work on all platforms. Thinking about a
-better solution.
-
-
-New features:
-
-* Comment containing Pyrex version number
-and date/time at top of generated C file. [Matthias Baas]
-
-
-0.3.2
------
-
-Bug fixes:
-
-* The & operator works again. [Matthias Baas]
-
-* The & operator had incorrect precedence.
-
-* "SystemError: 'finally' pops bad exception"
-under some circumstances when raising an
-exception. [Matthias Baas]
-
-* Calling a Python function sometimes leaked
-a reference.
-
-* Crash under some circumstances when casting
-a Python object reference to a C pointer type.
-[Michael JasonSmith]
-
-* Crash when redeclaring a function. [Matthias Baas]
-
-* Crash when using a string constant inside
-a Python class definition. [Mike Rovner]
-
-* 2-element slice indexing expressions. [Mike Rovner]
-
-* Crash when encountering mixed tabs and
-spaces. [Mike Rovner]
-
-New features:
-
-* A wider variety of constant expressions is
-now accepted for enum values, array
-dimensions, etc. [Mike Rovner]
-
-
-0.3.1
------
-
-New features:
-
-* More special methods for extension types:
-__delitem__, __delslice__, __getattr__,
-__setattr__, __delattr__
-
-* Module-level variable of a Python object type
-declared with 'cdef' is private to the module, and
-held in a C variable instead of the module dict.
-
-* External C functions with variable argument lists
-can be declared and called.
-
-* Pyrex-defined Python functions can have default
-argument values and * and ** arguments, and can be
-called with keyword arguments.
-
-* Pointer-to-function types can be declared.
-
-* Pyrex now supports a declaration syntax that
-C doesn't! Example:
-
- cdef (int (*)()) foo() # function returning a function ptr
-
-* There is now a ctypedef statement.
-
-* Extension types can now be forward-declared.
-
-* All permutations of (non-Unicode) string literals
-and escape codes should work now.
-
-* Hex and octal integer literals.
-
-* Imaginary number literals.
-
-* Docstrings are now supported.
-
-Bug fixes:
-
-* Type tests are performed when using a Python object
-in a context requiring a particular extension type.
-
-* Module-level variable holding the type object
-of an extension type had incorrect type.
-
-0.3
----
-
-New features:
-
-* Extension types! Yay!
-
-0.2.2
------
-
-Bug fixes:
-
-* Fixed error message generation again after a previous
-bug was accidentally re-indroduced.
-
-* Removed the declaration of isspace() from the code
-generated for print statement support (it's not needed
-and was conflicting with the system-supplied one on
-some platforms).
-
-0.2
----
-
-New features:
-
-* Executable statements are now allowed at the
-top level of a module.
-
-* Python class definitions are now supported, with
-the following limitations:
-
- - Class definitions are only allowed at the top
- level of a module, not inside a control structure
- or function or another class definition.
-
- - Assigning a Pyrex-defined Python function to a
- class attribute outside of the class definition
- will not create a method (because it's not an
- interpreted Python function and therefore
- won't trigger the bound-method creation magic).
-
- - The __metaclass__ mechanism and the creation of
- new-style classes is not (yet) supported.
-
-* Casting between Python and non-Python types is
-better supported.
-
-Bug fixes:
-
-* Fixed bug preventing for-loops from working.
-
-
-0.1.1
------
-
-* I've discovered a flaw in my algorithm for releasing
-temp variables. Fixing this properly will require some
-extensive reworking; I've put in a hack in the meantime
-which should work at the cost of using more temp variables
-than are strictly necessary.
-
-* Fixed bug preventing access to builtin names from
-working. This should also have fixed the import
-statement, but I haven't tested it.
-
-* Fixed some errors in __Pyx_GetExcValue.
-
-* Fixed bug causing boolean expressions to malfunction
-sometimes.