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]