On Sep 24, 2013, at 9:41 AM, Alejandro Pulver <alepul...@gmail.com> wrote:

> I see. But what about sampling? It shouldn't slow down the program nearly as 
> much as these "instrumentation" like mechanisms.
> 
> And as I'm going to count them anyways, missing the most unused ones won't be 
> such a problem.
> 
> That combined with complete capture for a small run (like a test or block) 
> would be enough for our needs.
> 
> 

Yes, one could just use some random selection (I really like the idea of 
shotgun sequencing… http://en.wikipedia.org/wiki/Shotgun_sequencing)
The resulting information should be quite good.

But the first step is that we need a really good, very dynamic, very general 
and powerful basis… this is what we want to build
with Reflectivity2 (and Reflectivity3 will have to hook deeper into the JIT of 
the VM, but that is another story).

Related to step 3), another source for interesting data is the VM itself (e.g. 
caches).

But step by step… 

The idea is to take the new possibilities we have in Pharo3 and make a well 
engineered realization of partial behavioral reflection,
with two extensions: 
        -> meta links on instance  variables. Very cool possibilities now that 
instance variables are reified objects ("Slot")
        -> object specific meta links by integrating with a good proxy 
implementation

This will already bring amazing capabilities to the system (and subsume 
MethodWrappers, simple CLOS style MOPs, perfect for
breakpoints, watchpoints and debugging in general,  and it can be the basis for 
AOP like things).

        Marcus

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to