At 12:16 PM 12/10/2003 +0000, Tim Bunce wrote:
        *{"Foo\0Bar\0Baz"}->{var};
or
        *{"Foo\0Bar\0Baz\0var"};

[snip]
I think Dan was proposing the first and that's fine.
I think the second would be a mistake.


Using a character that won't collide with HLL has a disadvantage
in the general case:

1) ALL qualfied names (not some) have to be translated/mangled.

What is the benefit, then, if all HLL compilers have to mangle it anyway?

It be a bit friendlier to make the scope resolution operator something
that at least 1 or 2 languages use as their own already; then all the rest
still have to mangle.

Benefits:

-Some languages don't have to translate, so they win.
-Parrot hackers don't have to write 'Foo\0Bar\0Baz'!
-Compiler hackers have enough headaches without worrying about handling
        strings with embedded null characters.

-Melvin


PS: I still haven't seen Dan say if he has some other neat cheat trick in mind for using \0. I can see that it would be pretty fast for tokenizing Foo\0Bar\0Baz into its components given C strcpy semantics.




Reply via email to