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 -~----------~----~----~----~------~----~------~--~---