excellent! Stef
On May 19, 2011, at 9:51 AM, Toon Verwaest wrote: > I'll be at tools as well, so if we have time we can already do some stuff > there. > > On 05/18/2011 11:01 PM, Stéphane Ducasse wrote: >> I'm planning to be at bern the friday 30 of june after tools so I would be >> happy to do that. >> >> Stef >> >> On May 18, 2011, at 10:31 PM, Toon Verwaest wrote: >> >>> Nope. That needs to be added. Sorry. If you have tests for the old >>> classbuilder we can port them. Otherwise I can take the time at the next >>> print I attend to do it; maybe together with somebody else. >>> >>> Toon >>> >>> On 05/18/2011 09:38 PM, Stéphane Ducasse wrote: >>>> toon I looked at the code but do you have tests for the new class builder? >>>> I could not find them. >>>> >>>> Stef >>>> On May 18, 2011, at 6:17 PM, Toon Verwaest wrote: >>>> >>>>> The PlayOut classbuilder indeed separates this nicely. We have the >>>>> distinction between the "installer" and the "builder". The builder uses >>>>> an "installer" as a client and notifies it about stuff that happens. >>>>> >>>>> For example we have an "anonymous subclass builder" that's implemented >>>>> like that. It basically just ignores most of the notifications of the >>>>> builder since it doesn't really do anything. >>>>> >>>>> ... but of course this means that you need PlayOut ;) You can get an >>>>> image at http://pinocchio.unibe.ch/~tverwaes/PlayOut.tar.gz >>>>> >>>>> caveats: >>>>> - At the moment that system doesn't validate everything yet like the old >>>>> classbuilder (since I wanted to freely change classes with any name) >>>>> - it doesn't handle obsolete subclasses yet. Oh well ;) >>>>> - it's still intertwined with our slots implementation, so it relies on >>>>> Helvetia. But that can/should/will be fixed without changing the API. >>>>> >>>>> cheers, >>>>> Toon >>>>> >>>>> On 05/18/2011 03:18 PM, Mariano Martinez Peck wrote: >>>>>> Hi guys. As part of the Fuel project, one of the things we want to do >>>>>> (in fact, it is done) is to serialize classes. There want to have 3 >>>>>> possibilities: >>>>>> 1) Do something like DiskProxy where you only save its global name and >>>>>> some selector to run when deserialing it >>>>>> 2) Really searialize the whole class (following method dictionary, >>>>>> compiled methods, class pools and friend, etc) so that you can >>>>>> deserialize it in another image where such class is not present. >>>>>> 3) Do the same as 2 but validating and installing the class in the >>>>>> system. >>>>>> >>>>>> For 2) what we want to do is just to serialize the class as any other >>>>>> object. As a result, we get a Class instance. Nothing is validated, >>>>>> nothing is added in Smalltalk globals, nothing is compiled. We do not >>>>>> use ClassBuilder at all. >>>>>> >>>>>> For 3) we want to do 2) plus validating and installing the class in the >>>>>> system. For validating I mean ALL the validations that the class builder >>>>>> does when creating or modifying a class. And for "installing in the >>>>>> system" I mean notify, put in Smalltalk globals, re compile what is >>>>>> needed, etc... >>>>>> >>>>>> ClassBuilder seems to do 2) and 3) together. So, what I would love to >>>>>> have in a new class builder is to have those two things separated. So >>>>>> that I can say to an object ClassManager validate: aClass or >>>>>> ClassManager installClassOnSystem: aClass. >>>>>> >>>>>> Do you think such thing is possible? Right now going through >>>>>> ClassBuilder and understand all the validations it does is really >>>>>> complicated :( >>>>>> >>>>>> Thanks in advance, >>>>>> >>>>>> -- >>>>>> Mariano >>>>>> http://marianopeck.wordpress.com >>>>>> >>> >> > >
