> On 04 Nov 2014, at 09:59, Norbert Hartl <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. 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/> >> > >> > >> >