Thanks matthew
for all the explanation. You know we are careful because all our infrastructure
depends on MC. :)

Now about the two steps process this is important to have it because
it is important to be able in the future to have an image without MC.
Or at least to keep that in mind. I will look at Kernel-Extensions and the fixes
you mention. Could you add them in the bug tracking system?
This way we increase the chance that we really check them.

Stef


On Fri, Oct 10, 2008 at 02:31:49PM +0200, St?phane Ducasse wrote:
I would like to be able to get rid of PLF for loading MC1.6 or friend.

There is a good reason that LPF exists. Monticello is by far
the flakiest package to load with Monticello. Unless you are
using an atomic loader, you are changing the code of Monticello
while running Monticello, and it can and does fail in
unpredictable ways. LPF uses a two-phase process, where
Monticello is loaded _twice_, first from file-outs, then from
.mcz's to make it work reliably. You can see the script
responsible for this bit of hackery at:

http://installer.pbwiki.org/LevelPlayingField-Monticello15

On top of that, Monticello, as of 3.9, depends on Traits, and so
Monticello does not work correctly in images outside the 3.9
tree. So LPF, in order to load MC into anything other than 3.9
and above, has a backport package whereby enough of Traits and
Pragma are stubbed out for Monticello to work in all other
images. There are two backports, one for Croquet, and one for
everything else:

http://installer.pbwiki.org/LevelPlayingField-Croquet1:0beta
http://installer.pbwiki.org/LevelPlayingField-Squeak3:8

Furthermore, LPF applies several bug fixes to things outside
Monticello and PackageInfo to make it work more reliably. You
can see which bugs are fixed by browsing the script:

http://installer.pbwiki.org/LevelPlayingField

If you look at that page, you can see that Monticello 1.5 is
supported on 15 different versions of Squeak, which, I think, is
quite a feat

Once you have bootstrapped MC1.6, LPF becomes unnecessary, since
you can now upgrade Monticello anytime, since the loader is
atomic.  MC1.5 has a non-atomic loader, so still requires LPF
for reliable upgrades.  so, once MC1.6 is in Pharo, you won't
need LPF anymore.

MC1.6 has made pretty good progress. It is very reliable, but I
still haven't made it work with Traits. I use MC1.6 exclusively.

MC1.6 is just MC1.5 with the non-atomic loader replaced with an
atomic loader dependent on SystemEditor. The atomic loader is
included with MC1.5, but is disabled. To load it, load
SystemEditor, then enable the preference
#useMonticelloAtomicLoader :

http://installer.pbwiki.org/Monticello16-Beta


Hopefully, that explains what LPF is all about. I realize you
may not like the way it is implemented, as scripts on a wiki
page. I'm working on that. I'm working on a build script that
could build Monticello-1.5.x.sar that includes most everything
in LPF, but with no dependency on Installer.

In the meantime, here are the precise steps in order to load
MC1.5 into Pharo, derived from LPF:

Recommended fix:
1. Install the fix for bug 7131

Required fix:
1. Install the fix for bug 7205

To install or upgrade MC1.5:
1. Load the latest PackageInfo-Base using either a file-out, or
  using MczInstaller, but *NOT* using Monticello
2. Load the latest Monticello.impl using a file-out, or using
  MczInstaller, but *NOT* using Monticello
3. Load the latest PackageInfo-Base again, this time using
  Monticello
4. Load the latest Monticello.impl again, this time using
  Monticello

After installing MC1.5 for the first time, clear all MC caches
of MC 1.0 leftovers:

(MCPackage named: 'Monticello') workingCopy unregister!
(MCPackage named: 'PackageInfo') workingCopy unregister!
MCMethodDefinition freeSomeSpace!
MCFileBasedRepository freeSomeSpace!
DataStream initialize!

To switch from MC1.5 to MC1.6:
1. Install the latest SystemEditor
2. Enable the preference #useMonticelloAtomicLoader

To upgrade MC1.6:
1. Install the latest SystemEditor
2. Install the latest PackageInfo-Base
3. Install the latest Monticello.impl

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to