Tips and tricks?

ducasse ducasse at iam.unibe.ch
Tue Mar 9 21:22:03 UTC 2004


Hi andreas

We never had the time to look at it deeply but we discussed with alex a 
lot. But I was really thinking that the model of smalltalk is really 
powerful with class extensions (AspectJ introductions are a simple 
proof of that) then on the hand of the state we are weak
because we have to do all kind of hack.

In VW I happen to copy and paste the code of the class and add the 
instance variable but again this is a hack
because I know that the parcel support that even if store is shaky 
about it. and sometimes is confused. Again a hack

In fact I would like to say:

Object subclass:
	addIV: 'x'

and not
	iv: ' a c x'

Now the question is the question of the offset in the compiled methods. 
This is clear that with only using accessor
we could get rid of that as they do in DrScheme or Unit. But we need 
speed.
So does anybody know:
	- would it be possible with offset (my impression is that this cannot 
work)
	- in which special case this does not work and what would be the 
purcentage.
I think that this is area where smalltalk would gain to be improved.

Stef

On 9 mars 04, at 21:04, Andreas Raab wrote:

>> Nu, so what was the trick?
>
> Q: Say you have an extension in some class which requires an extra 
> class
> variable. How would you get that class variable into a system, given 
> that MC
> doesn't really track such changes?
>
> A: You make a class side #initialize methods which looks like:
>
> Foo class>>initialize
>     "Make sure that the class variable is present"
>     (self classPool includesKey: #MyVariable) ifFalse:[
>         self addClassVar: #MyVariable.
>     ].
>     MyVariable := 42.
>
> Cheers,
>   - Andreas
>
>
>




More information about the Squeak-dev mailing list