> Am 04.11.2014 um 13:16 schrieb Marcus Denker <marcus.den...@inria.fr>: > > >> On 04 Nov 2014, at 09:59, Norbert Hartl <norb...@hartl.name >> <mailto:norb...@hartl.name>> wrote: >> >> Ghost won't be a big help here. Slots would be a good solution but not if it >> needs to be removable on runtime. So it seems MethodWrappers is your best >> bet. I'd try create a caching MethodWrapper, mark all the needed methods >> with a pragma and then install the MethodWrapper on these. Could be a >> package wide install/uninstall if you need that. >> > > This would be a nice useless for Reflectivity… one way of describing it is > “like method wrappers, but generalized”. e.g. you can put a “wrapper” on any > kind of AST node. > After the breakpoints, we could use that as the next client. > > Sure, I forgot. If I would have the need to implement it I would try solving it with meta-links. Basically it does the same as the method wrapper without having the need to exchange the compiled method.
Norbert > > Marcus > >> Norbert >> >> Am 04.11.2014 um 07:03 schrieb "p...@highoctane.be >> <mailto:p...@highoctane.be>" <p...@highoctane.be >> <mailto:p...@highoctane.be>>: >> >>> >>> Le 3 nov. 2014 22:13, "Hilaire" <hila...@drgeo.eu >>> <mailto:hila...@drgeo.eu>> a écrit : >>> > >>> > What's wrong with? >>> > >>> > myData >>> > ^ data ifNil: [data := self computeMe] >>> >>> That I do have a lot of places like this and do not want these data >>> littering the code. >>> >>> Aspects would solve this but we do not have that. >>> >>> Also I need the mechanism to be removable. >>> >>> So, I read something about MethodWrapper, ghost, slots... Can't one use any >>> of these things to do this memoization cleanly? >>> >>> Phil >>> >>> > >>> > >>> > >>> > Le 03/11/2014 16:10, p...@highoctane.be <mailto:p...@highoctane.be> a >>> > écrit : >>> > > How can I do memoization in Pharo? >>> > > >>> > > I mean, a generic mechanism that will help me wrap the caching around >>> > > the method invocations / messages. >>> > > >>> > > I have expensive calls that do not have to refresh their results as >>> > > often as they are called. >>> > > >>> > > TIA >>> > > Phil >>> > >>> > >>> > -- >>> > Dr. Geo - http://drgeo.eu <http://drgeo.eu/> >>> > iStoa - http://istoa.drgeo.eu <http://istoa.drgeo.eu/> >>> > >>> > >>> > >