Michel Fortin wrote:
On 2010-02-25 14:11:02 -0500, Don <[email protected]> said:

Michel Fortin wrote:
To me, an attribute should be seen like this:

"""
If something is an attribute, then it's accessory to the language. Something is accessory when you can remove it completely from a program and expect the program to compile and behave the same. Attributes are not changing anything beside adding some restrictions to improve safety, optimization, etc.
"""

Please. *I* invented that rule.

I did not claim I invented it, just that this is what I think should be an attribute. It's very possible I was influenced by your previous posts into thinking this, but I'm not always tracking perfectly where each of my opinions come from. Sorry if I overexplained everything to you.

The point is that it's been previously discussed, and it doesn't work.

I quite agree that having pure as @pure and nothrow as @nothrow would be better than nothing.

If you want a rationale that works for everything beside pure and nothrow, I think it'd work better to just say that new keywords added in version 2 of D that behave as attributes(*) use the @attribute syntax.

You could say that. It's pretty much the same as the list from 'C-family languages'. we don't care about backwards compatibility with keywords from D1.

If pure and nothrow stay like this, just add a cutoff date to the above.

That isn't any better than an arbitrary list.

(*): http://www.digitalmars.com/d/2.0/attribute.html

I know you're trying to avoid this kind of "historical incident" kind of rule, but making a rule that depends instead on the history of C-derived languages doesn't really improve things in my opinion.

No, I'm trying to avoid a "prehistorical accident" type of rule.

For these purposes, the history of D begins when TDPL is published. We're still in prehistory for a few more weeks.

Compatibility with C and C++ has always been critical for D; D contains many historical accidents from C. But D has not yet set any historical precedents.

If we simultaneously release a language with @attributes, together with attributes that don't use them, it looks silly.

Reply via email to