On 20 May 2013 17:26, Marcus Denker <marcus.denker@inria.fr> wrote:
On May 20, 2013, at 6:16 PM, Frank Shearar <frank.shearar@gmail.com> wrote:
On 20 May 2013 16:57, Marcus Denker <marcus.denker@inria.fr> wrote:
On May 20, 2013, at 4:44 PM, Paul Davidowitz <pdavidow@fastmail.fm> wrote:
I just started following this Dev mailing list, and I saw that 'AST Everywhere' and 'Reflectivity' were mentioned as very promising (I already know about Slots). Can someone in a nutshell please describe these developments? Thanks,
Right now, the compiler uses it's own AST, Syntax highlighting uses a very minimal token stream (and it's own parser), the refactoring engine has one, too. And then there is Bytecode which is used by the Debugger, for example.
As a first step we plan to use the Refactoring AST for everything (Compiler, Refactoring, Syntax highlighting )
I keep forgetting to ask - does the Refactoring AST have an equivalent of Squeak's FutureNode?
No.
(It's not semantically necessary to have one to support futures; it's a performance enhancer.)
Now that sound *very* odd. An AST Node is by definition something that is a grammatical element of the language. If you write down the grammar of Smalltalk, there is no "Future" there, so in the AST there is none modeled, either.
No, I know nothing about the Future implementation in Squeak⦠but a Future node in the AST sounds extremely strange.
It's a compile-time transformation of #future and #future: messages. Depending on whether or not the result is used (through some basic semantic analysis) the messages are transformed into #futureDo:at:args or #futureSend:at:args. FutureNode to performs the necessary transformation through the usual emitCodeForFoo:value: messages. (Warning: I have limited knowledge of the inner workings of the Compiler, and so anything I say here might be nonsensical.) frank
Marcus