Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Vitja Makarov <vitja.makarov-Re5JQEeQqe8AvxtiuMwx3w <at> public.gmane.org>
Subject: Re: [Cython] CyFunction refactoring plan
Newsgroups: gmane.comp.python.cython.devel
Date: Sunday 2nd October 2011 21:52:54 UTC (over 5 years ago)
2011/10/3 mark florisson
:
> On 2 October 2011 19:44, Vitja Makarov
 wrote:
>> 2011/10/2 mark florisson
:
>>> On 2 October 2011 18:52, Vitja Makarov
 wrote:
>>>> 2011/9/30 mark florisson
:
>>>>> On 30 September 2011 07:47, Vitja Makarov
 wrote:
>>>>>> 2011/9/30 Vitja Makarov
:
>>>>>>> 2011/9/30 Robert Bradshaw
:
>>>>>>>> On Thu, Sep 29, 2011 at 10:43 PM, Stefan Behnel
 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
>>>> [email protected]
>>>> 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.
>
> If you want you can rebase your branch on
> https://github.com/markflorisson88/cython/tree/fusedmerge,
I'm not
> going to rebase that branch. It needs a few more fixes though.
>

Ok. I'll try tomorrow.

-- 
vitja.
 
CD: 3ms