Re: Changing method definition at runtime
Posted by
Thierry Goubier on
Jul 23, 2016; 9:18am
URL: https://forum.world.st/Changing-method-definition-at-runtime-tp4907542p4907552.html
Hi Steven, Eric,
it can be done very easily by just recompiling the method, with
optionally handling the fact that the underlying package may be marked
as dirty.
(i.e. have multiple method implementations, and switching between them
by just calling #compile: on the class).
Regards,
Thierry
Le 23/07/2016 à 11:20, Steven Costiou a écrit :
> Hello,
>
> a mean to achieve behavior modification of methods at runtime could be
> context oriented programming (COP). It allows a method to have multiple
> behavior variations that can be (de)activated dynamically. However to my
> knowledge there is no context oriented extension for Pharo yet.
>
> I would also be interested by any known way to change method behavior
> dynamically, as COP is not an option for now. Maybe by working on ast
> nodes, by dynamically replacing them ?
>
> Steven.
>
> Le 2016-07-23 00:41, Eric Velten de Melo a écrit :
>
>> Hello,
>>
>> One thing I try to do often is changing the behaviour of a method
>> dynamically at runtime. The current way I do this is by having a block
>> as an instance variable and having the method call this block, but I
>> find this approach a bit cumbersome. Is there some other way or is
>> this the recommended approach?
>>
>> I mean, I suppose methods could be changed dynamically by means of
>> reflection somehow, but is this an easy or recommended way of
>> programming in Smalltalk? Should slots make things easier?
>>
>> Eric
>
>
>
> --
> kloum.io