[ANN] Need testers for 3.9a

Bert Freudenberg bert at impara.de
Tue Oct 25 17:34:50 UTC 2005


Am 23.10.2005 um 13:30 schrieb stéphane ducasse:

> Hi
>
> I pushed two items in the update stream.
>     - the first one load some modified version of MC (including the  
> cacheFlushing)
>     - the second one will load the script loader and load the  
> latest scripts.
>     marcus and adrian told me that this is working on their  
> machines (= no conflict after loading).
>
> I need some people to let me know if the following work:
>     - take 6693  http://ftp.squeak.org/3.9/Squeak3.9a-6693.zip.
>     - do an update.
>     - report the size of the image/changes and mention if there are  
> conflicts after the load

In update 6694, why didn't you use a configuration to upgrade  
Monticello? The explicit load in there destroys any MC version one  
might have loaded in the image (even if it is newer than 267). This  
would have done the same:

(MCConfiguration fromArray: #(
     repository ('http://source.squeakfoundation.org/39a')
     dependency ('Monticello' 'Monticello-stephaneducasse.276'  
'd0330fd9-e2b4-403d-815b-cb03db7a7256')
)) upgrade

In update 6695, the "script loading" logic takes really long. I had a  
message tally running, the actual time spent in loading new method  
definitions is less than 5 percent. Of the  5600 sec total it spent  
1000 sec in GC (100 full, 100,000 incr.), and 2200 sec in  
loadVersionFromFileNamed: (of which 800 s are spent in  
MCCacheRepository>>storeVersion:). It uses #loadVersionFromFileNamed:  
on a new repository instance every time, this circumvents any caching.

I think a better approach would be to use the loadTogether strategy  
(which works around all optimizations done by MCConfigurations) only  
when necessary, that is, in this case only for the two packages that  
implement and send the #isRectangle method. For the rest, a config  
map should be a lot more efficient.

I've attached the message tally.

This code creates a config map from a collection of version file  
names such as in ScriptLoader:

configurationFrom: aCollection
     | spec |
     spec := Array streamContents: [:s |
         s nextPut: #repository; nextPut: {self repository description}.
         aCollection do: [:ea | | pkg ver id |
             pkg := ea copyUpToLast: $- .
             ver := ea copyUpToLast: $. .
             id := UUID nilUUID asString.
             s nextPut: #dependency; nextPut: {pkg . ver . id}]].
     ^MCConfiguration fromArray: spec.

this could be used, e.g., in

ScriptLoader>>loadOneAfterTheOther: aCollection merge: aBoolean
     ^(self configurationFrom: aCollection) upgrade


- Bert -

-------------- next part --------------
Skipped content of type multipart/mixed


More information about the Squeak-dev mailing list