[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