Loading SqueakMap packages question

goran at krampe.se goran at krampe.se
Wed Jan 11 06:15:00 UTC 2006


Hi!

tim Rowledge <tim at rowledge.org> wrote:
> On 10-Jan-06, at 3:48 PM, Avi Bryant wrote:
> > Well, what Timothy may be asking about is the delay when SqueakMap  
> > refreshes the map of available packages.  IIRC, this is done by  
> > loading an image segment, which is a primitive, and so *does* block  
> > the whole VM.
> Fair point and one I didn't think of. The image segment loading  
> primitive is very fast though and is only a small part of the job of  
> loading and integrating a segment. I was thinking of the generic  
> process of loading source packages and compiling them. Should have  
> remembered binary loading.

My guess is still that Tim answered the "right" question. And btw, we
could improve this a bit because it goes like this:

Update the map:

1. Download the latest imagesegment.
2. Load it.

#1 above could be done in a background process (or using the mechanism
Tim mentioned), #2 can not - but it is typically a small part of it.

Load a package:

3. Download it into the cache if not there.
4. Install it using the appropriate mechanism depending on format.

#3 above could be done in a background process, #4 is actually not
SqueakMap code, so for example Monticello could (if it knew how to make
it safely) perform it in a background process.

Now... regarding 1: it wouldn't be much of a job to fix those, but since
I actually want to move away from the ImageSegment model it is probably
not wisely spent dev time. Number 3 on the other hand should be fixed,
and in fact - I want to add more functions for maintaining the local
cache on disk - like for preloading it in the background etc.

So let me give that a shot in the next version, ok? :) And for number 1
- if anyone feel like attacking it and send me code - go right ahead, it
shouldn't be too hard, just fork off the download and then when it is
ready - perform #2 as today.

regards, Göran



More information about the Squeak-dev mailing list