On Friday, August 5, 2011 9:10:12 PM UTC+1, kcrisman wrote:
>
> [...] this is because Cython puts a lot of cimport and 
> other stuff long before the "regular" stuff in the C file. 
>

Slightly OT, but I recently noticed that Sage is using cython 
--disable-function-redefinition. 
The http://wiki.cython.org/ReleaseNotes-0.14 have the following to say about 
this option:

Python functions are declared in the order they appear in the file, rather 
than all being created at module creation time. This is consistent with 
Python and needed to support, for example, conditional or repeated 
declarations of functions. In the face of circular imports this may cause 
code to break, so a new --disable-function-redefinition flag was added to 
revert to the old behavior. This flag will be removed in a future release, 
so should only be used as a stopgap until old code can be fixed.


When I tried to remove the --disable-function-redefinition, I got lots of 
failures from the Sage library. This is not unexpected, as the release notes 
state. I tried to clean up some of the circular imports but I eventually ran 
out of steam. If anybody wants to play with it, here is my partial fix:
 
https://bitbucket.org/vbraun/mq-for-sage-toric-varieties/src/677f54a67aed/trac_xxxx_uncircularize_cython_classes.patch
 

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to