Hey Guille,

To debug AST-interpreter there is a specific AIContextInspector. What you
can do is just to inspect in the debugger the latest AIContext created by
the AST-interpreter and you should see the stack of AIContext in the
inspector. It is not perfect but it helps a lot. There is also the
AST-Debugger but it is just a prototype so you can hardly use it.

testEnsureTricky is the one that checks ensure nested in the on:do: works
correctly. Basically it checks when you unwind the context up to the
exception handler that you executes the ensure blocks code. It's kind of
the trickiest one to fix :/. In the exception chapter of Deep into Pharo I
added a section somewhere in Exception implementation about that, it might
help you to read it.

Take care, AST-interpreter tests might not be enough. You should check the
console output of the AST-interpreter-regression build too. (here :
https://ci.inria.fr/rmod/job/ast-interpreter-regression/89/console) But it
is failing since some new updates in Pharo 3.0 ...

Are you committing on the AST-interpreter repository or on Pharo directly ?
I don't think there are but there might be some fixes already on the dev
branch > Smalltalkhub user: dh83 project: ast-interpreter

I would like to work on Opal test this afternoon but if you come to lille
this week (not today because there is the strike) we can have a look
together. For M4te I've also fixed some stuff in Hz on the m4te repo
(basically compatibility with the new RB visitor API) it might be nice to
commit it on your repo too.

See you,



2013/5/14 Guillermo Polito <[email protected]>

> Right now, in the image there exist two ways to annotate an AST:
>  - the Opal way
>  - the RB Way
>
> We should simplify that by having only one. So far, the only user of the
> RB bindings is the ASTInterpreter + the RB tests.
>
> So, I prepared a slice and issue [1], with the following details
>
> - annotate ast using opal annotator
> - extended OCBindings to read and write from an AST interpreter
> - not yet made a difference between arg nodes with a different class (just
> put an if)
> - i didnt add inst vars into the opal bindings for the binding->node
> relation as in RB, I send the node as a parameter
> - I had to adapt the #compile: into ASTInterpreter because
>     - opal does not annotate other than method nodes
>     - undeclared variables raised warnings, not errors
>
> There is one problem yet, I have only one failing test: #testEnsureTricky.
> I don't understand yet why it is failing and debugging it is pretty complex
> :). So any help is welcome in reviewing the changes.
>
> Guille
>
> [1]
> https://pharo.fogbugz.com/f/cases/10610/Make-ASTInterpreter-use-OC-Opal-bindings-instead-of-RB-bindings
>



-- 
Clément Béra
Mate Virtual Machine Engineer
Bâtiment B 40, avenue Halley 59650 *Villeneuve d'Ascq*

Reply via email to