2011/9/30 mark florisson <markflorisso...@gmail.com>: > On 30 September 2011 07:47, Vitja Makarov <vitja.maka...@gmail.com> wrote: >> 2011/9/30 Vitja Makarov <vitja.maka...@gmail.com>: >>> 2011/9/30 Robert Bradshaw <rober...@math.washington.edu>: >>>> On Thu, Sep 29, 2011 at 10:43 PM, Stefan Behnel <stefan...@behnel.de> >>>> wrote: >>>>> Vitja Makarov, 30.09.2011 06:41: >>>>>> >>>>>> 2011/9/28 Vitja Makarov: >>>>>>> >>>>>>> I tried to build simple plan for ongoing cython function refactoring >>>>>>> >>>>>>> * Replace assignment synthesis with SingleAssignmentNode, where LHS is >>>>>>> NameNode and RHS is PyCFunctionNode >>>>>>> * Split function body into python wrapper and C function >>>>>>> http://wiki.cython.org/enhancements/generators#Pythonfunctionrefactoring >>>>>>> >>>>>>> Then we can implement some features and optimizations: >>>>>>> >>>>>>> * Reduce difference between cdef and def functions >>>>>>> * Store runtime evaluated default values inside CyFunction, ticket #674 >>>>>>> * Implement no-args super(), ticket #696 >>>>>>> * Function call inlining >>>>>> >>>>>> If nobody don't mind I would start with first one. >>>> >>>> I would love to see this happen. >>>> >>>>> Please go ahead. :) >>>>> >>>>> Note that you will encounter some problems when enabling name assignments >>>>> for all named functions. I tried that at least once and it "didn't work", >>>>> but I didn't take the time yet to investigate them further. >>>>> >>>>> I assume you are going to work on this in your own repo? >>>> >>>> Please also coordinate with Mark's work on function dispatching for >>>> fused types. >>>> >>> >>> I assume that that fused type functions are cdef ones so I think that >>> should be easy to merge. >>> On the other hand it's better to have Mark's branch merged into master. >>> >>> Mark, what is the state of your fused types branch? >>> Is it possible to break it into smaller parts to ease reviewing and merging? >>> >> >> It seems I meant memview branch not fusedtypes. > > There are 2 pending branches, _memview_rebase, which has support for > memoryviews, and fusedtypes. The former is ready for merge, it's > waiting to be reviewed. The fused types branch needs to subclass > CyFunction (it basically modified the old binding function). There was > also some duplicate functionality there, so I thought it'd be easier > and more convenient to use the utility code loading there. > > Since it's not a strict dependency and it will be blocking progress, I > will try to find some time to get it merge-ready for master. > > But no, it does cdef, cpdef and def methods, and it has some changes > to all function nodes (FuncdefNode, CFuncdefNode and DefNode). These > changes shouldn't be major though, but the logic in FusedFuncdefNode > does differentiate between all the different functions in order to > support them. Feel free to ask me about specifics any time. >
I've moved def node assignment synthesis into DefNodeAssignmentSynthesis transformation. https://github.com/vitek/cython/commit/efacfed3c9cd8216b6c2100073a9df809b76675a Instead of moving defnode into PyCFunctionNode I've inserted assignment statement right after defnode. This is much more easy and seems ok to me. -- vitja. _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel