Hi,
Lots of progress on the Reflectivity project… What is now working is this: 1) define a simple “Halt once” link: haltLink := MetaLink new metaObject: Halt; selector: #once. 2) install on the GlobalVariable that is referencing class Object: Object binding link: haltLink. 3) enable haltOnce in the system Menu —> next time the global variable “Object” is accessed, you get a halt. Keep in mind that lots of things are not yet working… but every day some progress. trello board is here: https://trello.com/b/m5cxaAxB/reflectivity Next big issues to fix - #after and #instead for LiteralVariable - links on Slots and Temps - more tests - classes should be able to define which methods should use meta-recursing stopper - make "Object methods do: #createTwin. Object methods do: #invalidate.” work Marcus |
On Wed, Sep 30, 2015 at 2:21 AM, Marcus Denker <[hidden email]> wrote:
> Hi, > > Lots of progress on the Reflectivity project… > > What is now working is this: > > 1) define a simple “Halt once” link: > > haltLink := MetaLink new > metaObject: Halt; > selector: #once. > > 2) install on the GlobalVariable that is referencing class Object: > > Object binding link: haltLink. > > 3) enable haltOnce in the system Menu > > —> next time the global variable “Object” is accessed, you get a halt. I'm looking forward to when I'm familiar enough with this for to be part of my instinctive workflow. I get the feeling this will revolutionize how our systems can be debugged. Often I might have an object I want to investigate but not know where to break into the code to learn about it. Sometimes thats putting halts in all accessors, but that is tedious. Now to make it easier to use what would be good is something like... anObject haltOnNextAccess. which enables halt once just for this breakpoint (I presume this might be possible) Also maybe... anObject haltOnEveryAccess. anObject haltOnEveryAccessFor: 5 seconds. On another track, is/can there be a facility that logs access rather than halting. Sometimes you get a faster understanding from observing a lot of movement from further away than from freezing things and going a step at a time from inside. Currently I sometimes find the following helpful... Transcript crShow: thisContext printString ,'<<', thisContext sender printString ,'<<', thisContext sender sender printString but its tedious to plug into several locations. Maybe this could be something like... anObject traceEveryAccessFor: 10 seconds contextDepth: 3. cheers -ben > Keep in mind that lots of things are not yet working… but every day some progress. > > trello board is here: https://trello.com/b/m5cxaAxB/reflectivity > > Next big issues to fix > > - #after and #instead for LiteralVariable > - links on Slots and Temps > - more tests > - classes should be able to define which methods should use meta-recursing stopper > - make "Object methods do: #createTwin. Object methods do: #invalidate.” work > > Marcus > > > |
>
> I'm looking forward to when I'm familiar enough with this for to be > part of my instinctive workflow. I get the feeling this will > revolutionize how our systems can be debugged. Often I might have an > object I want to investigate but not know where to break into the code > to learn about it. Sometimes thats putting halts in all accessors, > but that is tedious. > > Now to make it easier to use what would be good is something like... > anObject haltOnNextAccess. > which enables halt once just for this breakpoint (I presume this might > be possible) > Also maybe... > anObject haltOnEveryAccess. > anObject haltOnEveryAccessFor: 5 seconds. > Yes, and imagine it deeply integrated with the IDE: you can put a (conditional, object specific) halt on anything, there will be a light-wight “watcher” to look at values of variables and values, and so on... > On another track, is/can there be a facility that logs access rather > than halting. Sometimes you get a faster understanding from observing > a lot of movement from further away than from freezing things and > going a step at a time from inside. Currently I sometimes find the > following helpful... > Transcript crShow: thisContext printString ,'<<', thisContext > sender printString ,'<<', thisContext sender sender printString > but its tedious to plug into several locations. Maybe this could be > something like... > anObject traceEveryAccessFor: 10 seconds contextDepth: 3. > Ah, that’s a nice idea…. imagine that not with Transcript output but a special tool somehow… a bit like a halt that does not halt yet visualises the stack (execution flow) at a point in the code. Marcus |
Free forum by Nabble | Edit this page |