[ANN] Self-bootstrapping environment for Squeak 3.9a

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] Self-bootstrapping environment for Squeak 3.9a

Pavel Krivanek
Hi all,

I've created the first tolerably usable version of self-bootstrapping
environment for Squeak 3.9a that can produce kernel image. It's
delivered from
http://lists.squeakfoundation.org/pipermail/squeak-dev/2005-October/096029.html 
but it's prepared completely from scratch. You can find it here:
http://www.comtalk.net/Squeak/uploads/20/kernel.tar.bz2

You need the fresh image 3.9a-6719. Then evaluate

Smalltalk condenseChanges

This step is necessary because of limitation of maximal changes file
size. Condensing of changes files doesn't work well because it corrupts
the methods that contains WideStrings. So you have to load file
UTF8Patch.1.cs.

This image detaches GUI and model of changes so it contains new class
named ChangesOrganizer. It has to be loaded before bootstrapping and
it's included in ChangesOrganizer.st.

Then load Bootstrap.st. This file contains bootstrapping tools.

The source codes of bootstrapped image are included in Mirrors.cs. The
loading of this file will take a while.

For opening of the console evaluate "Bootstrap start". In the console
evaluate command "Bootstrap revert". This commnad will merge mirrors of
classes, then it removes unnecessary classes including mirrors and
recompiles whole image.

The result can be saved using "Smalltalk snapshot: true andQuit: false"

This image is not absolutely clean. It contains some obsolete classes
(I've got one clean image without obsolete classes, it will no problem
to fix it).

Have lot of fun

-- Pavel


Some modifications:

If you look at mirror of UIManager, you will see some new messages like
onEventSensorStartup. The sender of this message is mirror of
EventSensor>>startUp. In the original method is line

Smalltalk isMorphic ifTrue:[self flushAllButDandDEvents].

so we need only write the content of the block to the MorphicUIManager
-- and so on... This is one set of modifications.

There is one correction of current sources -- class AsyncFile used class
variable named Error and this name collided with another class name.

Some methods contain comment " shrinked ". This is removed functionality
and we need to discuss next destiny of such stuff. For example the
SecurityManager is dependent on cryptography classes. It's possible to
remove it completely but it plays important role during Squeak startup.
But without cryptography this class is not complete, so it's good
candidate for next refactoring.

The last set of interventions are little modifications of souces like in
XxxMultiCharacterScanner>>scanMultiCharactersFrom:to:in:rightX:stopConditions:kern:.
This method uses class TTCFontSet that is removed. We need to suppose
that competent package (with true-type font support) will modify this
method or refactor it to enable more elegant way how to solve this.
Another example is sLanguageEnvironment class>>startUp etc. I try to
have the set of such modifications as small as possible.

AutoStart is currently removed from startUpList...



Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Andreas.Raab
Pavel Krivanek wrote:
> http://www.comtalk.net/Squeak/uploads/20/kernel.tar.bz2

Can you put up a .zip or .tar.gz version for us poor non-bz2 users?

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Dan Ingalls
In reply to this post by Pavel Krivanek
>I've created the first tolerably usable version of self-bootstrapping environment for Squeak 3.9a that can produce kernel image. It's delivered from http://lists.squeakfoundation.org/pipermail/squeak-dev/2005-October/096029.html but it's prepared completely from scratch. You can find it here: http://www.comtalk.net/Squeak/uploads/20/kernel.tar.bz2

Pavel, this is great work.  Congratulations on making it through all the little problems!

        - Dan

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Pavel Krivanek
In reply to this post by Andreas.Raab

> Pavel Krivanek wrote:
>> http://www.comtalk.net/Squeak/uploads/20/kernel.tar.bz2
>
> Can you put up a .zip or .tar.gz version for us poor non-bz2 users?
>
> Cheers,
>   - Andreas
Here: http://www.comtalk.net/Squeak/uploads/20/kernel.zip

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Edgar J. De Cleene
Pavel Krivanek puso en su mail :

>> Pavel Krivanek wrote:
>>> http://www.comtalk.net/Squeak/uploads/20/kernel.tar.bz2
>>
>> Can you put up a .zip or .tar.gz version for us poor non-bz2 users?
>>
>> Cheers,
>>   - Andreas
> Here: http://www.comtalk.net/Squeak/uploads/20/kernel.zip
>
> -- Pavel
Pavel:

I start to download, and do things.

Congratulations for your job !!!

Edgar


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Edgar J. De Cleene
In reply to this post by Pavel Krivanek
Pavel Krivanek puso en su mail :

>
> Smalltalk condenseChanges
>
> This step is necessary because of limitation of maximal changes file
> size. Condensing of changes files doesn't work well because it corrupts
> the methods that contains WideStrings. So you have to load file
> UTF8Patch.1.cs.
The UTF8Patch works fine.
Squeak3.9a-6719.changes.old is 20.3 mb  and Squeak3.9a-6719.changes 16.5

> This image detaches GUI and model of changes so it contains new class
> named ChangesOrganizer. It has to be loaded before bootstrapping and
> it's included in ChangesOrganizer.st.
>
> Then load Bootstrap.st. This file contains bootstrapping tools.
>
> The source codes of bootstrapped image are included in Mirrors.cs. The
> loading of this file will take a while.
>
> For opening of the console evaluate "Bootstrap start". In the console
> evaluate command "Bootstrap revert". This commnad will merge mirrors of
> classes, then it removes unnecessary classes including mirrors and
> recompiles whole image.
Follow this step by step, I do a save a new version for having
Squeak3.9a-6719.1.image, just in case

But when I do Bootstrap revert I have again the same as while ago.
I attach the pict.

No SqueakDebug.log in my default folder what I could send also.

Any ideas ?


Edgar




Picture 1.png (30K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Pavel Krivanek

> Pavel Krivanek puso en su mail :
>
>  
>> Smalltalk condenseChanges
>>
>> This step is necessary because of limitation of maximal changes file
>> size. Condensing of changes files doesn't work well because it corrupts
>> the methods that contains WideStrings. So you have to load file
>> UTF8Patch.1.cs.
>>    
> The UTF8Patch works fine.
> Squeak3.9a-6719.changes.old is 20.3 mb  and Squeak3.9a-6719.changes 16.5
>
>  
>> This image detaches GUI and model of changes so it contains new class
>> named ChangesOrganizer. It has to be loaded before bootstrapping and
>> it's included in ChangesOrganizer.st.
>>
>> Then load Bootstrap.st. This file contains bootstrapping tools.
>>
>> The source codes of bootstrapped image are included in Mirrors.cs. The
>> loading of this file will take a while.
>>
>> For opening of the console evaluate "Bootstrap start". In the console
>> evaluate command "Bootstrap revert". This commnad will merge mirrors of
>> classes, then it removes unnecessary classes including mirrors and
>> recompiles whole image.
>>    
>
> Follow this step by step, I do a save a new version for having
> Squeak3.9a-6719.1.image, just in case
>
> But when I do Bootstrap revert I have again the same as while ago.
> I attach the pict.
>
> No SqueakDebug.log in my default folder what I could send also.
>
> Any ideas ?
>
> Edgar
It looks like continuing problem with changes... Please try this image:
http://www.comtalk.net/Squeak/uploads/20/bootstrap-env.zip

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Edgar J. De Cleene
Pavel Krivanek puso en su mail :

> It looks like continuing problem with changes... Please try this image:
> http://www.comtalk.net/Squeak/uploads/20/bootstrap-env.zip
>
> -- Pavel
Ok, Very thanks !!


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Edgar J. De Cleene
In reply to this post by Pavel Krivanek
Pavel:

With your provided image I can produce a 3.3 mb image with Smalltalk size =
502.

It's bigger what I think .. (two more mb what previous kernel)

You plan shrink more ? It's fine to you if I try to do experiments ?

Edgar


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Pavel Krivanek

> Pavel:
>
> With your provided image I can produce a 3.3 mb image with Smalltalk size =
> 502.
>
> It's bigger what I think .. (two more mb what previous kernel)
>  
Yes, the final image is huge. But I'm afraid that we will not be able to
reduce the size markedly.
> You plan shrink more ? It's fine to you if I try to do experiments ?
>  
I don't expect that we can remove more than several next classes. But
there are many unnecessary messages.
Of course do everything you want...

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 3.9a

Edgar J. De Cleene
Pavel Krivanek puso en su mail :

> I don't expect that we can remove more than several next classes. But
> there are many unnecessary messages.
> Of course do everything you want...
>
> -- Pavel
It's a remarkable work what I try to understand well.

Again Pavel, you lead the shrinking business.

BRAVO !!

Edgar


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar