Login  Register

Re: [Reflectivity] Progress for Breakpoints

Posted by Clara Allende on May 22, 2015; 1:00pm
URL: https://forum.world.st/Reflectivity-Progress-for-Breakpoints-tp4825234p4828079.html



2015-05-22 8:53 GMT-03:00 Marcus Denker <[hidden email]>:


this is of course completely untested… it works only when there is no unaccepted
text in the editor and maybe only within Nautilus.

And of course existing breakpoints are not yet in any form visualised in the editor.

This is in 50041. Please use with care… still needs work to be really usable.


I now finished to add everything from Clara’s original SmartBreakpoints project.

There are still lots of things that need to be done

-> Something goes wrong when re-adding a one-shot breakpoint again.

Yep, I'm aware of that bug, I couldn't figure out why it does it happen :/
At one point I got it work and randomly fail, so it was difficult to debug :( If right now it fails consistently, I would like to take a look.
 
-> Adding should be disabled when the editor has non-submitted code.
-> The experience in the debugger is not that nice
 (need to think about using the <debuggerCompleteToSender> trick and
         explore the filtering capabilities of the debugger)

I'm aware of this one too. I did add a filter for the Reflectivity/breakpoints contexts, but in my experience, the top most of those contexts remained on the debugger stack (because we need it in case we want to go back to that point after a lot of step into/out etc), making it a little bit confusing... I mean, when I saw it, I put myself in the place of the user, and could imagine him/her wondering wtf does that mean.
I agree we need to re-think it :/ 

I am now continuing to flesh out the Reflectivity features:

-> hook AST generation is now done by HookGenerator
-> correct hooks are already generated for the case that a link passes
    arguments to the meta object (see the RFReification hierarchy, for now
    we have only #object *and* actual compiling does not yet work due to missing 
    semantic analysis of the AST snippets for the hooks)
-> We have support for “virtual” meta objects. Any valid reification can be the metaObject
    (this is fun for #node).

TODO
- add all reifications for all nodes (#arguments, #node, #context, #value #name, #arg1…)
- do semantic analysis correctly and add test for links with arguments
- add conditions with parameters (e.g. for object specific links: [:object | object == myObject])
- handle primitives: when putting a link on a primitive method, wrap the compiledMethod instead
  of AST manipulation.
- ….

I will continue to flesh it out and send examples to the list as these things start to work for real.


Marcus