2011/10/2 mark florisson <markflorisso...@gmail.com>: > On 2 October 2011 18:52, Vitja Makarov <vitja.maka...@gmail.com> wrote: >> 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 >> > > Ah, I thought you were going to wait until fused types were merged. In > any case, this doesn't look like it will give too many conflicts, but > there will be a few.
Yeah, I just had a free time and decided to try. I think fused types should be merged first. > I'm currently moving CyFunction to a utility code > file and making a FusedFunction subclass. > That's cool! Btw, have you seen utility code related bug in hudson it happens only with py2.4? -- vitja. _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel