• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1See http://trac.cython.org/cython_trac and http://wiki.cython.org/enhancements
2
3
4-- The Original Pyrex Todo List --
5
6DONE - Pointer-to-function types.
7
8DONE - Nested declarators.
9
10DONE - Varargs C func defs and calls.
11
12DONE - * and ** args in Python func defs.
13
14DONE - Default argument values.
15
16DONE - Tracebacks.
17
18DONE - Disallow creating char * from Python temporary anywhere
19       (not just on assignment).
20
21DONE - Module and function and class doc strings.
22
23DONE - Predeclare C functions.
24
25DONE - Constant expressions.
26
27DONE - Forward C struct declarations.
28
29DONE - Prefix & operator.
30
31DONE - Get rid of auto string->char coercion and
32       add a c'X' syntax for char literals.
33
34DONE - Cascaded assignments (a = b = c).
35
36DONE - 'include' statement for including other Pyrex files.
37
38DONE - Add command line option for specifying name of generated C file.
39
40DONE - Add 'else' clause to try-except.
41
42DONE - Allow extension types to be declared "public" so they
43       can be accessed from another Pyrex module or a C file.
44
45DONE - Don't try to generate objstruct definition for external
46       extension type declared without suite (treat as though
47       declared with empty suite).
48
49DONE - Implement two-argument form of 'assert' statement.
50
51Const types.
52
53Tuple/list construction: Evaluate & store items one at a time?
54
55Varargs argument traversal.
56
57Use PyDict_SetItemString to build keyword arg dicts?
58(Or wait until names are interned.)
59
60Intern names.
61
62print >>file
63
64abs() and anything similar.
65
66Semicolon-separated statement lists.
67
68Optional semicolons after C declarations.
69
70Multiple C declarations on one line?
71
72Optimise return without value outside of try-finally.
73
74exec statement.
75
76from ... import statement.
77
78Use iterator protocol for unpacking.
79
80Save & restore exception being handled on function entry/exit.
81
82In-place operators (+=, etc).
83
84Constant declarations. Syntax?
85
86DONE - Some way for C functions to signal Python errors?
87
88Check for lack of return with value in non-void C functions?
89
90Allow 'pass' in struct/union/enum definition.
91
92Make C structs callable as constructors.
93
94DONE - Provide way of specifying C names.
95
96DONE - Public cdefs.
97
98When calling user __dealloc__ func, save & restore exception.
99
100DONE - Forward declaration of extension types.
101
102Complex number parsetuple format?
103
104DONE - long long type
105
106DONE - long double type?
107
108Windows __fooblarg function declaration things.
109
110Generate type, var and func declarations in the same order that
111they appear in the source file.
112
113Provide a way of declaring a C function as returning a
114borrowed Python reference.
115
116Provide a way of specifying whether a Python object obtained
117by casting a pointer should be treated as a new reference
118or not.
119
120Optimize integer for-loops.
121
122Make sizeof() take types as well as variables.
123
124Allow "unsigned" to be used alone as a type name.
125
126Allow duplicate declarations, at least in extern-from.
127
128Do something about installing proper version of pyrexc
129script according to platform in setup.py.
130
131DONE - Add "-o filename" command line option to unix/dos versions.
132
133Recognise #line directives?
134
135Catch floating point exceptions?
136
137Check that forward-declared non-external extension types
138are defined.
139
140Generate type test when casting from one Python type
141to another.
142
143Generate a Pyrex include file for public declarations
144as well as a C one.
145
146Syntax for defining indefinite-sized int & float types.
147
148Allow ranges of exception values.
149
150Support "complex double" and "complex float"?
151
152Allow module-level Python variables to be declared extern.
153
154Consider:
155>cdef extern from "foo.h":
156>    int dosomething() except -1 raise MyException
157
158Properties for Python types.
159
160DONE - Properties for extension types.
161
162Find a way to make classmethod and staticmethod work better.
163
164DONE - Document workarounds for classmethod and staticmethod.
165
166Statically initialised C arrays & structs.
167
168Reduce generation of unused vars and unreachable code?
169
170Support for acquiring and releasing GIL.
171
172Make docstrings of extension type special methods work.
173
174Treat result of getting C attribute of extension type as non-ephemeral.
175
176Make None a reserved identifier.
177
178Teach it about builtin functions that correspond to
179Python/C API calls.
180
181Teach it about common builtin types.
182
183Option for generating a main() function?
184
185DONE - Allow an extension type to inherit from another type.
186
187Do something about external C functions declared as returning
188const * types?
189
190Use PyString_FromStringAndSize for string literals?
191
192DONE - C functions as methods of extension types.
193
194What to do about __name__ etc. attributes of a module (they are
195currently assumed to be built-in names).
196
197Use PyDict_GetItem etc. on module & builtins dicts for speed.
198
199Intern all string literals used as Python strings?
200[Koshy <jkoshy@freebsd.org>]
201
202Make extension types weak-referenceable.
203[Matthias Baas <baas@ira.uka.de>]
204
205Make 'pass' work in the body of an extern-from struct
206or union.
207
208Disallow a filename which results in an illegal identifier when
209used as a module name.
210
211Use ctypedef names.
212
213Provide an easy way of exposing a set of enum values as Python names.
214[John J Lee <jjl@pobox.com>]
215
216Prevent user from returning a value from special methods that
217return an error indicator only.
218
219Use PyObject_TypeCheck instead of PyObject_IsInstance?
220
221Allow * in cimport? [John J Lee <jjl@pobox.com>]
222
223FAQ: Q. Pyrex says my extension type object has no attribute 'rhubarb', but
224     I know it does.
225
226     A. Have you declared the type at the point where you're using it?
227
228Eliminate lvalue casts! (Illegal in C++, also disallowed by some C compilers)
229[Matthias Baas <baas@ira.uka.de>]
230
231Make Python class construction work more like it does in Python.
232
233Give the right module name to Python classes.
234
235Command line switch for full pathnames in backtraces?
236
237Use PyString_FromStringAndSize on string literals containing
238nulls.
239
240Peephole optimisation? [Vladislav Bulatov <vrbulatov@list.ru>]
241
242Avoid PyArg_ParseTuple call when a function takes no positional args.
243
244Omit incref/decref of arguments that are not assigned to?
245
246Can a faster way of instantiating extension types be found?
247
248Disallow declaring a special method of an extension type with
249'cdef' instead of 'def'.
250
251Use PySequence_GetItem instead of PyObject_GetItem when index
252is an integer.
253
254If a __getitem__ method is declared with an int index, use the
255sq_item slot instead of the mp_subscript slot.
256
257Provide some way of controlling the argument list passed to
258an extension type's base __new__ method?
259[Alain Pointdexter <alainpoint@yahoo.fr>]
260
261Rename __new__ in extension types to __alloc__.
262
263Implement a true __new__ for extension types.
264
265Way to provide constructors for extension types that are not
266available to Python and can accept C types directly?
267
268Support generators by turning them into extension types?
269
270List comprehensions.
271
272Variable declarations inside inner code blocks?
273
274Initial values when declaring variables?
275
276Do something about __stdcall.
277
278Support class methods in extension types using METH_CLASS flag.
279
280Disallow defaulting types to 'object' in C declarations?
281
282C globals with static initialisers.
283
284Find a way of providing C-only initialisers for extension types.
285
286Metaclasses for extension types?
287
288Make extension types use Py_TPFLAGS_HEAPTYPE so their __module__
289will get set dynamically?
290