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
>> 
> 
> 


Reply via email to