On Thu, Mar 25, 2010 at 7:31 PM, Alexandre Bergel <[email protected]>wrote:

> Hi folks. I want to intercept (and do something) for all objects. I know
>> few approaches, for example:
>>
>
> hi Mariano,
>
> I tried something similar, but I haven't found a satisfactory solution.
>
>
>  1) using method wrappers (implementing  run: aSelector with: arguments in:
>> aReceiver) I can wrap all compiled methods of all classes  and there I have
>> the receiver.
>>
>
> You can wrap most of the compiled methods in the system. Not all of them,
> so you will have find out which one you can safely wrap.
>

I also noticed this too. There are some methods or classes that are so
"kernel" that cannot be wrapped. And of course, the class wrapper in itself.


So...do you have a list to share of the classes/methods that should not be
wrapped ?

In my case, for example:
    #new #changed #initialize #drawOn: #doesNotUnderstand:

but I am not even sure.

Wrapping and unwrapping all classes takes a bit of times (1-2 seconds on my
> machine).
>

is not bad, at all.


> I therefore used MessageTally to find out what I exactly need to wrap. This
> is not perfect (MessageTally uses a sampling profiling after all). But it is
> fine for now.
>
>
I didn't understand you here. What I don't understand is how MessageTally
may be of help here.


>
>  2) become all objects to some kind of hacky object that stores the
>> original object and that redefines the doesNotUnderstand:
>>
>
> If you succeed, let me know.
>
>
Sure. I have been playing (no more than 2 days) and analyzing an
implementation of MethodWrappers, the TestCoverage and CUIS' Protocol
catcher.
I just wrote some notes for myself in a simple text file. Actually to write
down what I understood and not to loose it. I attached just in case you are
interested.

Ahhh I forgot. I am putting all these little tools here:
http://www.squeaksource.com/ObjectMetaTools
in case you want to take a look.


Cheers

Mariano


> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

Attachment: wrappers.rtf
Description: RTF file

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to