On Nov 29, 2008, at 3:04 AM, Stefan Behnel wrote: > Hi, > > Greg Ewing wrote: >> Dag Sverre Seljebotn wrote: >> >>> Can anyone think of a reason why C string literals are allocated as >>> variables in C source? >> >> I can't remember all the reasons I did it that way in Pyrex, >> but one of them may have been so that I could leave calculating >> the length of the string to the C compiler. It's not entirely >> trivial to do that when escape sequences are involved. > > That is very true. I put a whole lot of work into proper string > escaping to > make sure byte strings end up in the binary the way they were > written in > the source. That usually makes non-ASCII strings a bit longer than > their > pure byte sequence. > > >> Another reason is so that I can refer to the C version of the >> string in the generated code concisely, instead of having to >> insert the whole string literal at that point, making it >> easier to audit the generated code. > > It's also more readable, as some important information such as > identifier > state or unicode type are currently stored in the string tab behind > the > string literal. Although one could argue that it's trivial to move it > before the literal... > > All of this makes me think that it's not a bad idea to keep them > separate > in the code.
+1, these are enough good reasons for me (aside from "if it ain't broke, don't fix it--we've got plenty of other stuff to fix"). - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
