[V3dot10] Re: loading scripts via package universes

Keith Hodges keith_hodges at yahoo.co.uk
Tue Aug 7 17:43:54 UTC 2007


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

cheers

Keith












> Anyway, you are welcome to help out with the 3.10 development
> universe, if that fits in with your goals, but with all due respect
> you have to work with the existing team in that case.
>
>
> Lex
>
> _______________________________________________
> V3dot10 mailing list
> V3dot10 at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/v3dot10
>
>   



More information about the V3dot10 mailing list