On Wed, Sep 21, 2011 at 3:48 AM, Torsten Bergmann <[email protected]> wrote:

> Hi Eliot,
>
> at [1] you mentioned a port of MethodWrappers to Squeak 4.2.
> Is there also a port for Pharo available or do you plan to
> port it?
>

I was hoping someone with focus on Pharo would integrate the necessary
compiler and kernel changes into Pharo.  The Squeak trunk packages are
Compiler-eem.214 & Compiler-eem.215, and Kernel-619 to Kernel-eem.623.  I've
attached the diffs.  Notionally file in Compiler-213-214.st &
Kernel-618-619.st, then file-in Compiler-214-215.st & Kernel-619-623.st.
 These are generally useful, a) restoring the ability to create subclasses
of CompiledMethod, and b) fixing various subtle copying-related
state-sharing bugs with AdditionalMethodState (the objects that add
additional state to compiled methods, pragmas, properties and "extra inst
vars").

The MethodWrappers4.2 package should then just load.  It serves as a model
for adding inst vars to CompiledMethod.


> For those who dont know about MethodWrappers: look at [2]
>

Indeed.  Yes, there's an alternative implementation above
objects-as-methods, but that implementation is far from complete.  It would
be good to see he same kind of completeness.  e.g. with MethodWrappers you
can write

| indent wrapper |
indent := 0.
wrapper := MwBlockMethodWrapper on: #benchFib inClass: Integer.
wrapper
beforeBlock: [:rcvr :args|
Transcript crtab: indent; print: rcvr; space; nextPutAll: #benchFib; flush.
indent := indent + 1];
afterBlock: [:rcvr :args| indent := indent - 1].
[wrapper install.
 7 benchFib] ensure: [wrapper uninstall]

whereas there are few if any examples with the objects-as-methods AFAICS.

>
> Thanks
> Torsten
>
>
> [1]
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-September/161567.html
> [2] http://www.refactory.com/Software/MethodWrappers/
> --
> NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!
> Jetzt informieren: http://www.gmx.net/de/go/freephone
>



-- 
best,
Eliot

Attachment: Compiler-213-214.st
Description: Binary data

Attachment: Compiler-214-215.st
Description: Binary data

Attachment: Kernel-618-619.st
Description: Binary data

Attachment: Kernel-619-623.st
Description: Binary data

Reply via email to