Index: third_party/cython/src/ToDo.txt |
diff --git a/third_party/cython/src/ToDo.txt b/third_party/cython/src/ToDo.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cf8cabcf4597229c3bff50d5aa06f53db9c1b828 |
--- /dev/null |
+++ b/third_party/cython/src/ToDo.txt |
@@ -0,0 +1,289 @@ |
+See http://trac.cython.org/cython_trac and http://wiki.cython.org/enhancements |
+ |
+ |
+-- The Original Pyrex Todo List -- |
+ |
+DONE - Pointer-to-function types. |
+ |
+DONE - Nested declarators. |
+ |
+DONE - Varargs C func defs and calls. |
+ |
+DONE - * and ** args in Python func defs. |
+ |
+DONE - Default argument values. |
+ |
+DONE - Tracebacks. |
+ |
+DONE - Disallow creating char * from Python temporary anywhere |
+ (not just on assignment). |
+ |
+DONE - Module and function and class doc strings. |
+ |
+DONE - Predeclare C functions. |
+ |
+DONE - Constant expressions. |
+ |
+DONE - Forward C struct declarations. |
+ |
+DONE - Prefix & operator. |
+ |
+DONE - Get rid of auto string->char coercion and |
+ add a c'X' syntax for char literals. |
+ |
+DONE - Cascaded assignments (a = b = c). |
+ |
+DONE - 'include' statement for including other Pyrex files. |
+ |
+DONE - Add command line option for specifying name of generated C file. |
+ |
+DONE - Add 'else' clause to try-except. |
+ |
+DONE - Allow extension types to be declared "public" so they |
+ can be accessed from another Pyrex module or a C file. |
+ |
+DONE - Don't try to generate objstruct definition for external |
+ extension type declared without suite (treat as though |
+ declared with empty suite). |
+ |
+DONE - Implement two-argument form of 'assert' statement. |
+ |
+Const types. |
+ |
+Tuple/list construction: Evaluate & store items one at a time? |
+ |
+Varargs argument traversal. |
+ |
+Use PyDict_SetItemString to build keyword arg dicts? |
+(Or wait until names are interned.) |
+ |
+Intern names. |
+ |
+print >>file |
+ |
+abs() and anything similar. |
+ |
+Semicolon-separated statement lists. |
+ |
+Optional semicolons after C declarations. |
+ |
+Multiple C declarations on one line? |
+ |
+Optimise return without value outside of try-finally. |
+ |
+exec statement. |
+ |
+from ... import statement. |
+ |
+Use iterator protocol for unpacking. |
+ |
+Save & restore exception being handled on function entry/exit. |
+ |
+In-place operators (+=, etc). |
+ |
+Constant declarations. Syntax? |
+ |
+DONE - Some way for C functions to signal Python errors? |
+ |
+Check for lack of return with value in non-void C functions? |
+ |
+Allow 'pass' in struct/union/enum definition. |
+ |
+Make C structs callable as constructors. |
+ |
+DONE - Provide way of specifying C names. |
+ |
+DONE - Public cdefs. |
+ |
+When calling user __dealloc__ func, save & restore exception. |
+ |
+DONE - Forward declaration of extension types. |
+ |
+Complex number parsetuple format? |
+ |
+DONE - long long type |
+ |
+DONE - long double type? |
+ |
+Windows __fooblarg function declaration things. |
+ |
+Generate type, var and func declarations in the same order that |
+they appear in the source file. |
+ |
+Provide a way of declaring a C function as returning a |
+borrowed Python reference. |
+ |
+Provide a way of specifying whether a Python object obtained |
+by casting a pointer should be treated as a new reference |
+or not. |
+ |
+Optimize integer for-loops. |
+ |
+Make sizeof() take types as well as variables. |
+ |
+Allow "unsigned" to be used alone as a type name. |
+ |
+Allow duplicate declarations, at least in extern-from. |
+ |
+Do something about installing proper version of pyrexc |
+script according to platform in setup.py. |
+ |
+DONE - Add "-o filename" command line option to unix/dos versions. |
+ |
+Recognise #line directives? |
+ |
+Catch floating point exceptions? |
+ |
+Check that forward-declared non-external extension types |
+are defined. |
+ |
+Generate type test when casting from one Python type |
+to another. |
+ |
+Generate a Pyrex include file for public declarations |
+as well as a C one. |
+ |
+Syntax for defining indefinite-sized int & float types. |
+ |
+Allow ranges of exception values. |
+ |
+Support "complex double" and "complex float"? |
+ |
+Allow module-level Python variables to be declared extern. |
+ |
+Consider: |
+>cdef extern from "foo.h": |
+> int dosomething() except -1 raise MyException |
+ |
+Properties for Python types. |
+ |
+DONE - Properties for extension types. |
+ |
+Find a way to make classmethod and staticmethod work better. |
+ |
+DONE - Document workarounds for classmethod and staticmethod. |
+ |
+Statically initialised C arrays & structs. |
+ |
+Reduce generation of unused vars and unreachable code? |
+ |
+Support for acquiring and releasing GIL. |
+ |
+Make docstrings of extension type special methods work. |
+ |
+Treat result of getting C attribute of extension type as non-ephemeral. |
+ |
+Make None a reserved identifier. |
+ |
+Teach it about builtin functions that correspond to |
+Python/C API calls. |
+ |
+Teach it about common builtin types. |
+ |
+Option for generating a main() function? |
+ |
+DONE - Allow an extension type to inherit from another type. |
+ |
+Do something about external C functions declared as returning |
+const * types? |
+ |
+Use PyString_FromStringAndSize for string literals? |
+ |
+DONE - C functions as methods of extension types. |
+ |
+What to do about __name__ etc. attributes of a module (they are |
+currently assumed to be built-in names). |
+ |
+Use PyDict_GetItem etc. on module & builtins dicts for speed. |
+ |
+Intern all string literals used as Python strings? |
+[Koshy <jkoshy@freebsd.org>] |
+ |
+Make extension types weak-referenceable. |
+[Matthias Baas <baas@ira.uka.de>] |
+ |
+Make 'pass' work in the body of an extern-from struct |
+or union. |
+ |
+Disallow a filename which results in an illegal identifier when |
+used as a module name. |
+ |
+Use ctypedef names. |
+ |
+Provide an easy way of exposing a set of enum values as Python names. |
+[John J Lee <jjl@pobox.com>] |
+ |
+Prevent user from returning a value from special methods that |
+return an error indicator only. |
+ |
+Use PyObject_TypeCheck instead of PyObject_IsInstance? |
+ |
+Allow * in cimport? [John J Lee <jjl@pobox.com>] |
+ |
+FAQ: Q. Pyrex says my extension type object has no attribute 'rhubarb', but |
+ I know it does. |
+ |
+ A. Have you declared the type at the point where you're using it? |
+ |
+Eliminate lvalue casts! (Illegal in C++, also disallowed by some C compilers) |
+[Matthias Baas <baas@ira.uka.de>] |
+ |
+Make Python class construction work more like it does in Python. |
+ |
+Give the right module name to Python classes. |
+ |
+Command line switch for full pathnames in backtraces? |
+ |
+Use PyString_FromStringAndSize on string literals containing |
+nulls. |
+ |
+Peephole optimisation? [Vladislav Bulatov <vrbulatov@list.ru>] |
+ |
+Avoid PyArg_ParseTuple call when a function takes no positional args. |
+ |
+Omit incref/decref of arguments that are not assigned to? |
+ |
+Can a faster way of instantiating extension types be found? |
+ |
+Disallow declaring a special method of an extension type with |
+'cdef' instead of 'def'. |
+ |
+Use PySequence_GetItem instead of PyObject_GetItem when index |
+is an integer. |
+ |
+If a __getitem__ method is declared with an int index, use the |
+sq_item slot instead of the mp_subscript slot. |
+ |
+Provide some way of controlling the argument list passed to |
+an extension type's base __new__ method? |
+[Alain Pointdexter <alainpoint@yahoo.fr>] |
+ |
+Rename __new__ in extension types to __alloc__. |
+ |
+Implement a true __new__ for extension types. |
+ |
+Way to provide constructors for extension types that are not |
+available to Python and can accept C types directly? |
+ |
+Support generators by turning them into extension types? |
+ |
+List comprehensions. |
+ |
+Variable declarations inside inner code blocks? |
+ |
+Initial values when declaring variables? |
+ |
+Do something about __stdcall. |
+ |
+Support class methods in extension types using METH_CLASS flag. |
+ |
+Disallow defaulting types to 'object' in C declarations? |
+ |
+C globals with static initialisers. |
+ |
+Find a way of providing C-only initialisers for extension types. |
+ |
+Metaclasses for extension types? |
+ |
+Make extension types use Py_TPFLAGS_HEAPTYPE so their __module__ |
+will get set dynamically? |