<br><br><div class="gmail_quote">On Mon, Apr 26, 2010 at 12:05 PM, Andreas Raab <span dir="ltr"><<a href="mailto:andreas.raab@gmx.de">andreas.raab@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
On 4/26/2010 11:48 AM, Eliot Miranda wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
OK, so Pragma is bad; its historical from "primitive pragma". But<br>
Annotation doesn't capture the potentially executable flavour of<br>
pragmas. How about MethodMetaMessage? (mmm, yum :) ) We could talk<br>
about meta-messages for short. "Add a meta-message that does ..." etc...<br>
</blockquote>
<br>
But "primitive pragma" is every bit as wrong. A pragma is something that gives the compiler information about the code without being code itself. Primitives are't pragmas, primitives are *code* (if you don't believe me, just remove all of them and see how that goes).<br>
</blockquote><div><br></div><div>I know, but within ParcPlace a <primitive: 123> mark was /called/ a primitive pragma, and so "pragma" was the term we used (without sufficient thought) when we did the menu and exception "pragma" work in vw3.0. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
By definition, a "pragma" is an interface between the code and the compiler, something where the code conveys meta-information to the compiler. For example, this is a pragma (assuming the compiler understands it):<br>
<br>
foo<br>
<inline: true><br>
<br>
bar<br>
<tailcut: true><br>
<br>
The first one might instruct the compiler to generate the code for this method inline, the second one to eliminate tail recursion.<br>
<br>
None of these, however, are pragmas:<br>
<br>
foo<br>
"Not a pragma since it's not for the compiler"<br>
<preference: 'Foo Preference'<br>
...<br>
><br>
<br>
apiGetWindowFocus<br>
"Not a pragma since it's code"<br>
<apicall: ulong 'GetWindowFocus' (void)><br>
<br>
etc. I should also add that before the introduction of the so-called "pragmas" there was only *code* used in the <> syntax (primitives and FFI calls) and the change to allow non-code entities is something that, although useful, still worries me because of the conceptual issues associated with mixing code and non-code entities. We wouldn't even have that discussion if <> just meant "code".<br>
<br>
Cheers,<br><font color="#888888">
- Andreas<br>
<br>
</font></blockquote></div><br>