2012/1/24 mark florisson <[email protected]>: > On 24 January 2012 11:37, Konrad Hinsen <[email protected]> wrote: >> Compiling the attached Cython file produced the attached C file which >> has errors in lines 532-534: >> >> __pyx_v_self->xx = None; >> __pyx_v_self->yy = None; >> __pyx_v_self->zz = None; >> >> There is no C symbol "None", so this doesn't compile. >> >> I first noticed the bug in Cython 0.15, but it's still in the latest >> revision from Github. >> >> Konrad. >> >> _______________________________________________ >> cython-devel mailing list >> [email protected] >> http://mail.python.org/mailman/listinfo/cython-devel >> > > Hm, it seems the problem is that the call to the builtin float results > in SimpleCallNode being replaced with PythonCApiNode, which then > generates the result code, but the list of coerced nodes are > CloneNodes of the original rhs, and CloneNode does not generate the > result code of the original rhs (i.e. allocate and assign to a temp), > which results in a None result. > > Maybe CascadedAssignmentNode should replace CloneNode.arg with the > latest self.rhs in generate_assignment_code? I'm not entirely sure.
May be it's better to run OptimizeBuiltinCalls before AnalyseExpressionsTransform? I have a patch that initializes NameNode's entry at ControlFlowAnalysis stage. -- vitja. _______________________________________________ cython-devel mailing list [email protected] http://mail.python.org/mailman/listinfo/cython-devel
