1 DONE - Pointer-to-function types.
3 DONE - Nested declarators.
5 DONE - Varargs C func defs and calls.
7 DONE - * and ** args in Python func defs.
9 DONE - Default argument values.
13 DONE - Disallow creating char * from Python temporary anywhere
14 (not just on assignment).
16 DONE - Module and function and class doc strings.
18 DONE - Predeclare C functions.
20 DONE - Constant expressions.
22 DONE - Forward C struct declarations.
24 DONE - Prefix & operator.
26 DONE - Get rid of auto string->char coercion and
27 add a c'X' syntax for char literals.
29 DONE - Cascaded assignments (a = b = c).
31 DONE - 'include' statement for including other Pyrex files.
33 DONE - Add command line option for specifying name of generated C file.
35 DONE - Add 'else' clause to try-except.
37 DONE - Allow extension types to be declared "public" so they
38 can be accessed from another Pyrex module or a C file.
40 DONE - Don't try to generate objstruct definition for external
41 extension type declared without suite (treat as though
42 declared with empty suite).
44 DONE - Implement two-argument form of 'assert' statement.
48 Tuple/list construction: Evaluate & store items one at a time?
50 Varargs argument traversal.
52 Use PyDict_SetItemString to build keyword arg dicts?
53 (Or wait until names are interned.)
59 abs() and anything similar.
61 Semicolon-separated statement lists.
63 Optional semicolons after C declarations.
65 Multiple C declarations on one line?
67 Optimise return without value outside of try-finally.
71 from ... import statement.
73 Use iterator protocol for unpacking.
75 Save & restore exception being handled on function entry/exit.
77 In-place operators (+=, etc).
79 Constant declarations. Syntax?
81 DONE - Some way for C functions to signal Python errors?
83 Check for lack of return with value in non-void C functions?
85 Allow 'pass' in struct/union/enum definition.
87 Make C structs callable as constructors.
89 DONE - Provide way of specifying C names.
93 When calling user __dealloc__ func, save & restore exception.
95 DONE - Forward declaration of extension types.
97 Complex number parsetuple format?
101 DONE - long double type?
103 Windows __fooblarg function declaration things.
105 Generate type, var and func declarations in the same order that
106 they appear in the source file.
108 Provide a way of declaring a C function as returning a
109 borrowed Python reference.
111 Provide a way of specifying whether a Python object obtained
112 by casting a pointer should be treated as a new reference
115 Optimize integer for-loops.
117 Make sizeof() take types as well as variables.
119 Allow "unsigned" to be used alone as a type name.
121 Allow duplicate declarations, at least in extern-from.
123 Do something about installing proper version of pyrexc
124 script according to platform in setup.py.
126 DONE - Add "-o filename" command line option to unix/dos versions.
128 Recognise #line directives?
130 Catch floating point exceptions?
132 Check that forward-declared non-external extension types
135 Generate type test when casting from one Python type
138 Generate a Pyrex include file for public declarations
141 Syntax for defining indefinite-sized int & float types.
143 Allow ranges of exception values.
145 Support "complex double" and "complex float"?
147 Allow module-level Python variables to be declared extern.
150 >cdef extern from "foo.h":
151 > int dosomething() except -1 raise MyException
153 Properties for Python types.
155 DONE - Properties for extension types.
157 Find a way to make classmethod and staticmethod work better.
159 DONE - Document workarounds for classmethod and staticmethod.
161 Statically initialised C arrays & structs.
163 Reduce generation of unused vars and unreachable code?
165 Support for acquiring and releasing GIL.
167 Make docstrings of extension type special methods work.
169 Treat result of getting C attribute of extension type as non-ephemeral.
171 Make None a reserved identifier.
173 Teach it about builtin functions that correspond to
176 Teach it about common builtin types.
178 Option for generating a main() function?
180 DONE - Allow an extension type to inherit from another type.
182 Do something about external C functions declared as returning
185 Use PyString_FromStringAndSize for string literals?
187 DONE - C functions as methods of extension types.
189 What to do about __name__ etc. attributes of a module (they are
190 currently assumed to be built-in names).
192 Use PyDict_GetItem etc. on module & builtins dicts for speed.
194 Intern all string literals used as Python strings?
195 [Koshy <jkoshy@freebsd.org>]
197 Make extension types weak-referenceable.
198 [Matthias Baas <baas@ira.uka.de>]
200 Make 'pass' work in the body of an extern-from struct
203 Disallow a filename which results in an illegal identifier when
204 used as a module name.
208 Provide an easy way of exposing a set of enum values as Python names.
209 [John J Lee <jjl@pobox.com>]
211 Prevent user from returning a value from special methods that
212 return an error indicator only.
214 Use PyObject_TypeCheck instead of PyObject_IsInstance?
216 Allow * in cimport? [John J Lee <jjl@pobox.com>]
218 FAQ: Q. Pyrex says my extension type object has no attribute 'rhubarb', but
221 A. Have you declared the type at the point where you're using it?
223 Eliminate lvalue casts! (Illegal in C++, also disallowed by some C compilers)
224 [Matthias Baas <baas@ira.uka.de>]
226 Make Python class construction work more like it does in Python.
228 Give the right module name to Python classes.
230 Command line switch for full pathnames in backtraces?
232 Use PyString_FromStringAndSize on string literals containing
235 Peephole optimisation? [Vladislav Bulatov <vrbulatov@list.ru>]
237 Avoid PyArg_ParseTuple call when a function takes no positional args.
239 Omit incref/decref of arguments that are not assigned to?
241 Can a faster way of instantiating extension types be found?
243 Disallow declaring a special method of an extension type with
244 'cdef' instead of 'def'.
246 Use PySequence_GetItem instead of PyObject_GetItem when index
249 If a __getitem__ method is declared with an int index, use the
250 sq_item slot instead of the mp_subscript slot.
252 Provide some way of controlling the argument list passed to
253 an extension type's base __new__ method?
254 [Alain Pointdexter <alainpoint@yahoo.fr>]
256 Rename __new__ in extension types to __alloc__.
258 Implement a true __new__ for extension types.
260 Way to provide constructors for extension types that are not
261 available to Python and can accept C types directly?
263 Support generators by turning them into extension types?
267 Variable declarations inside inner code blocks?
269 Initial values when declaring variables?
271 Do something about __stdcall.
273 Support class methods in extension types using METH_CLASS flag.
275 Disallow defaulting types to 'object' in C declarations?
277 C globals with static initialisers.
279 Find a way of providing C-only initialisers for extension types.
281 Metaclasses for extension types?
283 Make extension types use Py_TPFLAGS_HEAPTYPE so their __module__
284 will get set dynamically?