Re: [Pharo-dev] [squeak-dev] Pragma keyword / selector / methodSelector
On 16.11.2016, at 17:52, Eliot Miranda <eliot.miranda@gmail.com> wrote:
Hi Tobias, Hi Denis,
On Wed, Nov 16, 2016 at 7:00 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote: You force me to search archives. I hope anybody else does this :).
Here is good answer why pragma instead of annotation: http://forum.world.st/Pragma-support-in-Squeak-Pharo-Cuis-td3243836.html#a32...
Thanks. Igor gets to the technical justification; method annotations/pragmas/those funny things in angle brackets *can* tell a compiler to do things and yes, Tobias, you're right, they *are* also metadata.
The /real/ answer as to why we should use Pragma rather than MethodAnnotation is explained by Wittgenstein; we use words to mean what we want them to mean. Pragma is now a term that has been used for the Smalltalk scheme for nearly twenty years. We had a discussion several years ago, even before the thread Denis references, where we agreed that MethodAnnotation was a better name but the effort to make the change was too great for almost all of us (myself included) and so we fell back into using Pragma, and when we write the idea up this year and I presented it at ESUG I went back to using Pragma. It's shorter, and it means what we want it to mean, which is whatever is between those angle brackets, and whatever we make our compilers to on recognising them.
While the name Pragma may not be a perfect name, it does refer exactly to what we have, and it is short, and it is current.
Granted. But the scheme I proposed would (a) give us a new, supposedly better fitting interface, while (b) retaining the established interface under the established name. Best regards -Tobias
2016-11-16 15:46 GMT+01:00 H. Hirzel <hannes.hirzel@gmail.com>: On 11/15/16, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2016-11-15 21:58 GMT+01:00 Tobias Pape <Das.Linux@gmx.de>:
Here's my 2ct:
1. Pragmas aren't actually pragmas. They do not instruct the compiler to do things (_except_ for primitive: and apicall:, but these are now outliers). They rather add metadata to a (compiled) method. 2. The 'thing' (ie, class) should probably be named MethodAnnotation 3. We can have the cake and eat it to:
Rename Pragma -> MethodAnnotation. Make Pragma a new subclass of MethodAnnotation. Make MethodAnnotation implement #methodSelector #annotationSelector (or #selector, if it must be) Make Pragma implement #selector #keywords
I remember long discussion about Pragma vs Annotation name where Igor won completely :)). Conclusion was that Pragma is a right name.
Is there a summary of this discussion available?
--Hannes
-- _,,,^..^,,,_ best, Eliot
participants (1)
-
Tobias Pape