David Gibson wrote:
What I don't like is the combination of the two. Using the /word/ form in (1) suggests that each /word/ is a lexically distinct symbol with functions in different contexts: consider /dts-v1/, /include/, /memreserve/ - they're all used only in their own distinct context. Use of /word/s in (2) would suggest that each /word/ is just an identifier for a different function, and should all be usable in a similar grammtical context - which won't be true of /memreserve/, /dts-v1/ and any other truly lexically distinct symbols we need to add.
I don't understand this conclusion -- I wouldn't expect to be able to use "for" or "while" at file scope of C code, just because I can use "struct", "int", or "sizeof" there. The slashes are simply a way of creating reserved words, some of which happen to be function-like.
So, I like the notion of functions like this, but with identifiers that aren't /word/s. Re-invoking the "least surprise to C programmers" principle, in general I think the identifiers should be as C identifiers (i.e. [a-zA-Z_][a-zA-Z0-9_]*).
That would make it difficult to have function-like syntax outside of properties.
With one caveat, it's not essential but it might be worthwhile to make built-in function identifiers obviously distinct from user-defined ones (if we add those in future).
We have a way to make them obviously distinct -- slashes. :-) -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev