> On 3 May 2018, at 10:56, Tudor Girba <tu...@tudorgirba.com> wrote:
> 
> How about: #newAst & #cachedAst?

Best suggestion yet. +1

> Cheers,
> Doru
> 
> 
>> On May 3, 2018, at 9:30 AM, Guillermo Polito <guillermopol...@gmail.com> 
>> wrote:
>> 
>> method newAst ?
>> 
>> On Wed, May 2, 2018 at 11:03 PM, Bernardo Ezequiel Contreras 
>> <vonbecm...@gmail.com> wrote:
>> a "parse tree" is not equal to an "ast"(abstract syntax tree)
>> but its difficult to find a name for an ast that is not cached.
>> maybe 
>> parsedAst
>> parseAst
>> ....
>> 
>> 
>> On Wed, May 2, 2018 at 3:28 PM, Richard Sargent 
>> <richard.sarg...@gemtalksystems.com> wrote:
>> On Wed, May 2, 2018 at 11:06 AM, Denis Kudriashov <dionisi...@gmail.com> 
>> wrote:
>> Hi.
>> 
>> Maybe #parseSourceCode would be better name for #parseTree. 
>> 
>> I've always found it good advice to avoid using a verb phrase to name 
>> something which does not entail some kind of action.
>> #parseSourceCode realy reads like something which would parse the source 
>> code. #parseTree also has that effect, except for the lack of a tree to 
>> parse.
>> 
>> 
>> 
>> 2018-05-02 16:33 GMT+03:00 Marcus Denker <marcus.den...@inria.fr>:
>> 
>> 
>>> On 27 Apr 2018, at 21:36, Sean P. DeNigris <s...@clipperadams.com> wrote:
>>> 
>>> Marcus Denker-4 wrote
>>>> I will add comments…
>>> 
>>> I got confused by this again and created an issue:
>>> https://pharo.manuscript.com/f/cases/21806/Document-Difference-between-ast-and-parseTree
>>> 
>>> And then Peter Uhnak reminded me on Discord about this thread. I'm happy to
>>> add the comments, but not sure I understand the issue well enough. IIUC #ast
>>> is cached, but #parseTree is not. What I don't understand is the purpose of
>>> this difference and when one would use one over the other.
>> 
>> the cached #ast is for one interesting for speed (that is, in situations 
>> where you ask for it often).
>> 
>> The other use-case is if you want to annotate the AST and keep that 
>> annotation around (till the next
>> image save, but you can subscribe to ASTCacheReset and re-install the AST in 
>> the cache after cleaning.
>> (This is used by MetaLinks to make sure they survive image restart).
>> 
>> The last thing that it provides is that we do have a quite powerful mapping 
>> between bytecode/text/context
>> and the AST. Regardless how you navigate, you get the same object.
>> 
>> e.g. even this one works:
>> 
>>        [ 1+2 ] sourceNode == thisContext method ast blockNodes first
>> 
>>> For example,
>>> when, if ever, would a user want to access a CM's #ast (as opposed to
>>> #parseTree) and could modifying it create problems?
>>> 
>> 
>> Modification is a problem, yes.. code that wants to modify the AST without 
>> making sure the compiledMethod is in sync later
>> should use #parseTree. 
>> 
>> Code that does not modify the AST (or makes sure to compile it after 
>> modification) is free to use #ast. 
>> or if you want to annotate the AST (which is a modification, after all).
>> 
>> This is not perfect (not at all…) but the simplest solution to get (to some 
>> extend) what you would have if the system would have
>> a real persistent, first class AST…
>> 
>> To be improved. The ASTCache with it’s naive “lets just cache everything 
>> till the next image save” was done with the idea to see
>> when it would show that it is too naive… for that it worked amazingly well 
>> till now.
>> 
>>        Marcus
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Bernardo E.C.
>> 
>> Sent from a cheap desktop computer in South America.
>> 
>> 
>> 
>> -- 
>> 
>> Guille Polito
>> Research Engineer
>> 
>> Centre de Recherche en Informatique, Signal et Automatique de Lille
>> CRIStAL - UMR 9189
>> French National Center for Scientific Research - http://www.cnrs.fr
>> 
>> Web: http://guillep.github.io
>> Phone: +33 06 52 70 66 13
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "What is more important: To be happy, or to make happy?"
> 
> 


Reply via email to