2010/7/22 Henrik Johansen <[email protected]> > > On Jul 22, 2010, at 7:39 43PM, Eliot Miranda wrote: > > > > 2010/7/22 Sudhakar Krishnamachari <[email protected]> > >> And of course the extensibility it gives: >> >> [ 1->'asd'. 2->'asd'. 3->'dsd' ] asDictionary >> > > I think Travis Griggs' once is much much nicer: > > [{ 1->'asd'. 2->'asd'. 3->'dsd' } asDictionary] once > > when once is sent to a BlockClosure it becomes itself into a > CachedBlockClosure that remembers and answers the evaluated value. > You could add selectors to this such as > onceEachSession - destroy the cached value on image startup > > It doesn't require any special compiler machinery (unlike ##(...)) and so > there are no problems with browsing references or senders within > compile-time evaluated forms. It is easily extensible to different > life-times. It is portable. > > my 2¢ > > Eliot > > > I like once as well, after using it in VisualWorks. > For my tastes, it's uses just the right amount of magickery to both be able > to easily understand how it works, and provide useful functionality. > > F.ex. I wrote a tool where I tagged (time-expensive) methods I suspected of > being invariants during a large analysis, the tool then ran those methods > wrapped in a once block, and told me which did not affect the end results. > Much faster than a manual verification of whether they were really > invariants, and provided an ok speedup for the amount of (brain) effort > required :D > > Only problem I've encountered in VW (7.7 at least), is the debugger raising > an mnu if you try to step into the once call of a CachedBlockClosure. >
In Squeak 4.1 it seems fine :) I really like Assets. The whole framework is small, flexible, useful and easy to understand. best Eliot > > Cheers, > Henry > > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
