[squeak-dev] Re: talk on Newspeak online

Klaus D. Witzel klaus.witzel at cobss.com
Mon May 12 00:18:42 UTC 2008


On Mon, 12 May 2008 00:52:33 +0200, Vassili Bykov wrote:

> On Sun, May 11, 2008 at 11:26 AM, Igor Stasenko wrote:
[...]
>>  All you need (at least in Squeak) is to provide own implementation of
>>  #bindingOf: method which sent to a class by compiler to resolve names
>>  which not found in local scope, when method being compiled.
>
> As long as that's a facility for your own corner of the image, it
> won't accomplish what one would need it for. It won't allow an
> application written for Foobar 3.8 to coexist with one that wants
> Foobar 3.10. There can only be one Foobar in the SystemDictionary, and
> that's that.

Yes, no, and a question:

No: it's relatively easy to create a smallish set of subclasses of  
SharedPool, fix #bindingOf: such that SharedPools are inherited correctly,  
and then distribute (with #declare:) the globals over these SharedPools  
and attach the pools where they are needed. Compiles well and runs well  
[have as yet not tested all classes, see following issue].

Yes: it's almost impossible to now change all the existing tools so that  
they no longer use SystemDictionary's singleton. That is, even now that  
SystemDictionary's instance is empty and two versions of Foobar are  
possible without any conflict, one wouldn't do that because of lack of  
tool support (or unwillingness to really do such Sisyphus change to all  
the existing tools).

Question: say you change a Newspeak module and want that now to be  
effective, for example you now have FastOrderedCollection besides  
OrderedCollection. Since all is message based and the platform argument  
which was passed in at module creation time has gone long time ago, how's  
that done?

My guess: you browse all senders of OrderedCollection, judge and then  
Sisyphus changes the respective method(s), as ordered by Tartarus, right?  
And then?

> Who said DLL hell was a Windows-only problem?

Hhm, that wasn't you ? ;)

> Cheers,
>
> --Vassili
>




More information about the Squeak-dev mailing list