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

Reply via email to