Hi Pavel,
I looked into Mirrors.1.cs and Bootstrap.st, how did you manage "mirrors are modified so they contain whole class hierarchy for new system. There are original classes used in code of methods."
Being aware that the answer most likely is "manually", could you post an "abstract" so that other people (especially me) can learn from your experience.
Thank you very much in advance.
/Klaus
On Sun, 16 Oct 2005 18:32:16 +0200, Pavel Krivanek squeak1@continentalbrno.cz wrote:
Hi all,
I have prepared an experimental kernel image based on Squeak 3.7.
Properties:
- size: 1.3 MB
- no Morphic
- no MVC
- no Sound
- no Network
- no Browser, Debugger etc.
- no SUnit
- no Projects support (there’s only one default project)
- only necessary processes
- no ObsoleteClasses (consistent references in sources)
- single font
- simple console with clipboard support
- transcript output (with file log)
- transparent creation mechanism
Download:
- image with changes: ftp://comtalk.net/pub/bootstrap/kernel.zip
- bootstrapping environment:
ftp://comtalk.net/pub/bootstrap/Bootstrap.zip
- please, can somebody place it to a new location with better
connectivity?
How to prepare it:
- use QuiteSmall image
(http://www.swerlingphoto.com/squeak/QuiteSmall-3.7.zip)
- load Mirrors.1.cs
- load Bootstrap.st
- evaluate "Bootstrap start"
- in console type "Bootstrap revert"
- wait a while
- condense changes, clear transcript, save image
How it works:
- for all classes in system "mirrors" are created. Mirrors are classes
with prefix "Xxx" that contain only class definition and methods. They contain no valid references to class variables.
- mirrors are modified so they contain whole class hierarchy for new
system. There are original classes used in code of methods.
- initial cleanup is executed and system processes are recreated
- for all original classes, methods of mirrors are assigned. Methods
that aren’t in mirrors are removed. Then the new definition of class is used.
- unnecessary original classes are removed
- mirrors are removed
- whole sources are recompiled
- additional cleanup is executed
The console is very simple. Now it cannot simulate FillInTheBlank, confirmations, user interrupt etc.
Feel free to clean, improve and fix this image. I have to say that I’m VERY tired of creation of this image now and I need a pause :-)
-- Pavel