[V3dot10] Re: loading scripts via package universes

Damien Cassou damien.cassou at gmail.com
Tue Aug 7 18:12:31 UTC 2007


2007/8/7, Keith Hodges <keith_hodges at yahoo.co.uk>:
>
> > I will be interested in seeing how you address mutual compatibility of
> > packages.  If package A wants Monticello 1, and package B wants
> > Monticello 2, and we assume these Monticello's are incompatible, then
> > A and B are also incompatible.  How do you think to address this
> > issue?
> >
> >
> If you are talking about Monticello1 and Monticello2 they are completely
> independent entities. So there should be no problem.
>
> If you are talking about the 5 flavours of monticello 1.0 being A, and
> monticello 1.5 ;-) being B.
>
> A: any of
>
> 1. avi 231 (squeakmap latest I think)
> 2. wiresource latest
> 3. impara's version
> 4. 3.9 version md.308
> 5. ralphs 3.10 version
>
> B: Monticello 1.5
>
> Monticello 1.5 is the superset of all of the above combining all of the
> fixes/improvements I could find from all of these sources. 1.5 also has
> thought about the backwards compatibility and future expandability of
> the binary file format whereas non of the above did and so they become
> incompatible with each other as soon as their authors added an inst var
> to any subclass of MCDefinition.
>
> MC 1.5 (optionally) ties the binary file format down to the original 1.0
> format no matter what extensions are added. The exception being that if
> traits are used then MC 1.5 goes along with the extra instvars needed to
> support them. Non-trait aware MC's cant handle packages containing
> traits. MC1.5 can and in theory can load and save definitions from MC's
> which have instvars and class defn's that it doesn't even know about yet.
>
> MC1.5 leaves MCPackageLoader in place so as to enable it to be loaded on
> top of as many of the A's as possible. New loaders are implemented as
> MCPackageLoader1b and MCPackageLoader2 respectively. The later supports
> atomic loading via SystemEditor, and some other nice features as well,
> but this is not enabled yet.
>
> MC in 3.10 changes MCPackageLoader in such a way as to ensure that you
> cant use monticello to load any of the other monticello implementations
> over the top. I do not think that loading MC3.10 over the top of any
> other MC using monticello itself will work. This was a mistake I too
> made in the earlier versions and it is a nightmare waiting to happen, it
> makes future changes to monticello via monticello very difficult.
>
> Packages saved in MC in 3.10 do load into 3.9, but I wouldnt expect them
> to load into a non-trait aware monticello, i.e. 3.8/3.7 etc. e.g.
> avi.231 However packages saved in MC1.5 should load with all, unless
> traits are used in which case a trait aware MC is needed. (I am
> repeating myself)
>
> so in summary... to make A and B compatible, B makes an effort to be a
> superset of all and as friendly to all as possible.

Thank you for your work Keith. As soon as the Squeak DVD is done, I
start putting your MC1.5 into squeak-dev images.

-- 
Damien Cassou


More information about the V3dot10 mailing list