Nathann, if you're still tens of kilometers away from the nearest pub, you 
might want to turn all the info here into proper documentation?

On Sunday, December 28, 2014 1:45:26 AM UTC+1, Nils Bruin wrote:
>
> On Saturday, December 27, 2014 3:13:37 PM UTC-8, Simon King wrote:
>>
>> That's exactly what I meant: The use of __eq__, __lt__, etc. is 
>> deprecated in Sage, in favour of using __richcmp__ (of course __cmp__ is 
>> a different thing). 
>>
>
> There is no deprecating of __eq__ or __richcmp__. They appear in different 
> contexts (python classes vs. cdef classes to be precise).
>
> In a python class, __eq__, __lt__ etc. are the appropriate methods to 
> implement and __richcmp__ isn't a special method at all there, so 
> implementing it will not have much effect.
>
> In cython, the __eq__ and __lt__ methods aren't special. There, 
> implementing __richcmp__ does the right thing (cython recognizes the method 
> name and places it in the relevant slot--the slot that on a python class 
> would contain a routine that dispatches to __eq__, __lt__  methods).
>
> I haven't tested it, but I expect that if you put a "class" in a cython 
> file instead of a "cdef class", you would also find that you need to 
> implement __eq__ and __lt__, because cython wouldn't be in a position to 
> place any special routines into slots there.
>
> Python 3 indicates that in sage we *should* be moving entirely to these 
> methods. However, historically sage has preferred "cmp". It wouldn't 
> surprise me that for backwards compatibility one may still need to provide 
> it, until the remaining bits of sage have transitioned to make use of "rich 
> comparison".
>
> >    If you implement with 2 underscores, then you bypass the (generic) 
>> > coercion implementation. You'd want to implement with a single 
>> underscore 
>> > to ensure common parents (i.e. _richcm_ or _cmp_). 
>>
>> Is that so? The comments in structure.elements seem to tell something 
>> else.  
>>
>
> A brief browsing of the code indicates that there certainly is the 
> possibility of implementing these single underscore methods (which is a 
> sage API), and I would expect that those would indeed be hooks used by the 
> coercion framework.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to