Robert,

Since I hit the problem I'm motivated to chime in.  I also followed the 
email trail on the cython list.

Quick summary:

[X] Let the programmer decide, with
[X'] Get 4 as the default

There are obviously some cases where speed is paramount and others where 
Python compatibility is paramount, so it would be nice to choose. 
Echoing the cython list, I also prefer in-code directives over compiler 
options (though the two need not be mutually exclusive -- just a matter 
of development time).

But given the ability to choose, you still need a "default": which 
semantics are operative without any compiler options or pragmas.  Even 
though I "grew up" writing C, I came to Cython gradually from Python 
code, making small changes to see what speed-ups I could get.  So I 
assumed Python semantics were operative.  Besides my use case and 
personal preference, I think it's more pleasant to add a pragma from a 
wiki page of optimizations than to get really frustrated debugging 
because you made one little change and now your code segfaults (my 
experience).

Thanks for working on this!

- Ryan

Robert Bradshaw wrote:
> Here's a quick poll.
> 
> In Python, if I write "-1 % 5", I get 4. This is how we do it in Sage  
> as well (and I think it's the right way--that's not what I'm trying  
> to ask). However, in C if I write "-1 % 5" I get -1. The question is,  
> what should I get in Cython if I write (a % b) where a and b are cdef  
> ints? Should I
> 
> [ ] Get 4, because it should behave just like in Python, even though  
> it will require extra logic and be a bit slower
> 
> [ ] Get -1, because they're C ints, and besides we wouldn't be using  
> Cython if we didn't care about performance
> 
> [ ] Let the programmer decide (e.g. using http://wiki.cython.org/ 
> enhancements/compilerdirectives ) recognizing that % will mean  
> different things in different contexts.
> 
> - Robert
> 
> 
> > 

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to