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
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/v3dot10


_______________________________________________
V3dot10 mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/v3dot10

Reply via email to