[ANN] [RFC] MorphicSplitters phase 1 completed

Juan Vuletich jmvsqueak at uolsinectis.com.ar
Sat Sep 10 17:22:55 UTC 2005


Hi Stef,

Thanks for trying it. My script had a bug when preparing package 
prerequisites. You can download it again, from 
http://webs.sinectis.com.ar/jmvuletich/MorphicSplitters01.st it's fixed. But 
please load it in a fresh 3.9a-6690, and repeat the whole process. This is 
the corrected script. Alternatively you can just evaluate it and save the 
packages again.

| packageNames requiredPackages p |
packageNames _ #('MorphicExtras' 'EToys' 'BalloonMMFlash' 'Nebraska' 
'FlexibleVocabularies' 'StarSqueak' 'Movies' 'Speech').
requiredPackages _ #('Morphic' 'MorphicExtras' 'MorphicExtras' 'EToys' 
'EToys' 'EToys' 'MorphicExtras' 'MorphicExtras').
packageNames with: requiredPackages do: [ :name :required |
     PackageInfo registerPackageName: name.
     p _ (MCPackage named: name) workingCopy.
     p requirePackage: (MCPackage named: required) ]


Now I see that the packages in the last published image should be the last 
ones published in source.squeakfoundation.org.
I see two ways of keeping that consistency.

a) If someone publishes stuff in a .cs. Then you file that in in the master 
image, and then save new versions of the modified packages, and publish the 
new master image.

b) Someone publishes stuff in a MC package in source.squeakfoundation.org. 
Then you load the new packages in the master image and publish it.

For this first MorphicSplitters work, option a) is the only choice. If we 
try option b), well have a problem we had several months ago in the 
MorphicSplitters group, when using Cees' repository.

Let's suppose I (Juan) file in the MorphicSplitters cs, and publish the 
resulting packages. Basically what we did is to move stuff out of the 
Morphic package and in the MorphicExtras and EToys package.

When you (Stef) try to load those packages in the master image, because of 
the prerequisites, you will load Morphic first, then MorphicExtras and then 
EToys. When you load Morphic, MC removes all the classes that were in 
Morphic before and now will be loaded in MorphicExtras or EToys. But when 
they are loaded back in the new package, all live instances and class 
variables are lost.

This problem only occurs when moving stuff, modifying package boundaries, 
not when updating a package.

So, when setting package boundaries, it's better to do it via change sets.

Cheers,
Juan
----- Original Message ----- 
From: "stéphane ducasse" <ducasse at iam.unibe.ch>
To: "The general-purpose Squeak developers list" 
<squeak-dev at lists.squeakfoundation.org>
Sent: Saturday, September 10, 2005 10:09 AM
Subject: Re: [ANN] [RFC] MorphicSplitters phase 1 completed


Juan what I did is that I cleared the dependencies and added it in
the comments of the packages for now.

Stef

On 10 sept. 05, at 14:53, stéphane ducasse wrote:

> Hi Juan
>
> I loaded MorphicSplitters.1.st into the latest (non public) image  of 39 
> and loading worked
> but when I wanted to publish BalloonMMFlash on 
> source.squeakfoundation.org
> I got an error:
>
> MCWorkingCopy>>needsSaving
>     ^ self modified or: [self requiredPackages anySatisfy: [:ea |  ea 
> workingCopy needsSaving]]
>
> ea = 'MorphicExtras'
>
> I got the same problems with all the new packages you introduce.  Can you 
> have a look at that?
> I will publish the other ones.
>
> Stef
>
>
> On 9 sept. 05, at 15:07, Juan Vuletich wrote:
>
>
>> Hi Folks,
>>
>> I'm resending this in the hope that the lack of response was not  because 
>> of lack of interest.
>>
>> This is the first MorphicSplitters change set. I prepared it for 
>> 3.9a-6690.
>> It creates a few packages and does a massive categorization of  classes 
>> and
>> methods, to fill them. It does not modify any method or class 
>> definition. I
>> believe this is a good moment to include it in the update stream.
>>
>> It is at http://webs.sinectis.com.ar/jmvuletich/MorphicSplitters01.st
>> (I didn't attach it to this message because there is a 100kb  limit, and 
>> it is 200kb).
>>
>> This work should be included in the update stream and the official  3.9a.
>> Works on ToolBuilder get easier because there is less to look at  in the 
>> Morphic package.
>>
>> Next steps in the MorphicSplitters project will involve real 
>> refactoring, to
>> allow unloading of the EToys and MorphicExtras packages. We're  using 
>> MudPie
>> and some removal scripts based on one by Dan for the analysis. I  believe
>> these will be useful for other refactoring efforts.
>>
>> I'd like to thank to Cees, Edgar, Daniel, Dan and anyone else who  helped 
>> in
>> some way.
>>
>> Comments welcome.
>>
>> Cheers,
>> Juan Vuletich
>>
>>
>>
>
>
>




-- 
Internal Virus Database is out-of-date.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.10.16/83 - Release Date: 8/26/2005





More information about the Squeak-dev mailing list