|
Kernel image
The KernelImage is a project that tries to radically improve modularization of Squeak Smalltalk images. Its goal is to create small independent kernel image that enables to load the rest of Squeak stuff from internet
News
- 2008-03-19
- 2007-04-28
- MinimalMorphic is the independent package so now the Kernel and the other primitive packages can be published from MinimalMorphic without damage
- Tests and some other code removed from EToys into the independent packages
- Order: SUnit, SUnitUtilities, EToysLoader (answer yes), Addons, LanguageEditor, SARInstaller, MailSending, SUnitGUI, ScrollableField,
- 2007-03-05
- KernelImage now includes simple ScriptLauncher for processing of command line scripts
- 2007-03-02
- there is very simple SeasideUIManager with a basic console on the SqueakSource repository.
- 2007-02-28
- we are able to load Magritte and Pier: pier.st. The final image size is about 7MB.
- and we are able to load Magma: magma.st. Image size is about 4.7MB
- the target image for this scripts is KernelImageMC
- 2007-02-26
- shrink script from KernelImageMC to KernelImage
- fixed some packaging problems
- 2007-02-25
- SeasideCompatibilityLayer - small package that enables to load the newest 2.8a versions of Seaside directly from the Seaside SqueakSource repository
- Number of overrides of MinimalMorphicPackage decreased
- Prepared image with with Seaside and Scriptaculous (admin/seaside)
End-user information
List of images
- KernelImageMC
- basic version of the KernelImage, it includes basic primitive packages Kernel, Compression, Network, PackageInfo and Monticello
- enables to load next packages via Monticello
- KernelImage
- the smallest version on the KernelImage, it includes only the package Kernel
- it's generated using this script from KernelImageMC: shrink.st
- basic primitive packages Compression, Network, PackageInfo and Monticello must be loaded using uncompressing of their Monticello packages and loding the source.st files manually.
- KernelImage-Seaside
- Includes packages SUnit, GraphicsFiles, DigitalSignatures, DynamicBindings, KomServices, KomHttpServer, SeasideCompatibilityLayer, Seaside and Scriptaculous
- default user name: admin
- default password: seaside
- if you want to use WABrowser, you must load this (ugly and unclean) code: http://comtalk.cz/public/pub/KernelImage/Browser.st
- MinimalMorphic
- includes basic primitive packages and MinimalMorphic package (+loader)
- small Morphic system without EToys
- loaded using MinimalMorphicLoader (see below)
- EToys
- includes basic primitive packages, MinimalMorphic and EToys (+loaders)
- full Squeak version with the source codes that are almost the same as in case of final Squeak 3.9
- loaded using EToysLoader (see the KernelImage SqueakSource repository)
Information for Developers
Some of this information may be obsolete
Shrinking Squeak 3.9 to the KernelImage
- download latest skrinkScript (zip)
- file in console.st
- in the console evaluate: (FileStream readOnlyFileNamed: 'shrink.st') fileIn
- save image: SmalltalkImage current snapshot: true andQuit: false
Minimal Morphic
- for the latest MinimalMorphic system instalation take latest KernelImage with preistalled Monticello and evaluate this code:
((MCHttpRepository location: 'http://squeaksource.com/KernelImage'user: '' password: '') loadVersionFromFileNamed:'MinimalMorphicLoader-pk.24.mcz') load.
MinimalMorphicLoader load.
- MinimalMorphicLoader-pk.xx.mcz is the name of the latest MinimalMorphicLoader version (check the SqueakSource repository)
- the code in the console MUST be in the single line so you have to have wide Squeak window!
EToys package
- load the latest EToysLoader into the MinimalMorphic system
Data files:
KernelImage Monticello repository
There's Monticello repository with pacakges for the KernelImage
Here you can find modified versions of standard packages.
You need to have KernelImage with Monticello support. That means that you should create basic KernelImage, then download latest versions of packages Compression, Network, PackageInfo and Monticello from the repository, unzip it end load source.st files of all this packages.
| use external files for long scripts, current console cannot process multiline commands |
You may then reload this packages from the repository again:
#('Compression-pk.10.mcz'
'Network-pk.41.mcz'
'PackageInfo-al.6.mcz'
'Monticello-pk.309.mcz')
do: [:packageName |
((MCHttpRepository location: 'http://www.squeaksource.com/KernelImage' user: '' password: '')
loadVersionFromFileNamed: packageName) load ].
MCFileBasedRepository flushAllCaches.
Then you can load next packages like Comanche and Seaside.
#('SUnit-pk.35.mcz'
'GraphicsFiles-pk.3.mcz'
'DigitalSignatures-pk.3.mcz'
'DynamicBindings-gk.3.mcz'
'KomServices-pk.4.mcz'
'KomHttpServer-pk.2.mcz'
'Seaside2-pk.7.mcz')
do: [:packageName |
((MCHttpRepository location: 'http://www.squeaksource.com/KernelImage' user: '' password: '')
loadVersionFromFileNamed: packageName) load ]
Some other packages like Scriptaculous can be loaded from standard repositories.
((MCHttpRepository location: 'http://www.squeaksource.com/Seaside' user: '' password: '') loadVersionFromFileNamed: 'Scriptaculous-lr.141.mcz') load
How to save package:
| repository pkg |
repository := (MCHttpRepository location:
'http://www.squeaksource.com/MyRepository' user: '' password: '').
pkg := MCPackage named: 'MyPackage'.
pkg workingCopy repositoryGroup addRepository: repository.
repository storeVersion: pkg workingCopy newVersion.
This Seaside package doesn't have Browser support but you may install Browser.st from http://www.comtalk.cz/Squeak/uploads/20/browser.zip and if you will evaluate
WABrowser class compile: 'canBeRoot ^ true'
you may create root Seaside application with WABrowser component.
You may want to use this code too: SystemOrganization removeEmptyCategories
The rest of this page contains mostly outdated information
Basic Morphic
Basic Morphic system without eToys:
KernelImage Monticello repository
There's Monticello repository with pacakges for the KernelImage
Here you can find modified versions of standard packages.
You need to have KernelImage with Monticello support. That means that you should create basic KernelImage, then download latest versions of packages Compression, Network, PackageInfo and Monticello from the repository, unzip it end load source.st files of all this packages.
| use external files for long scripts, current console cannot process multiline commands |
You may then reload this packages from the repository again:
#('Compression-pk.10.mcz'
'Network-pk.41.mcz'
'PackageInfo-al.6.mcz'
'Monticello-pk.309.mcz')
do: [:packageName |
((MCHttpRepository location: 'http://www.squeaksource.com/KernelImage' user: '' password: '')
loadVersionFromFileNamed: packageName) load ]
Then you can load next packages like Comanche and Seaside.
#('SUnit-pk.35.mcz'
'GraphicsFiles-pk.3.mcz'
'DigitalSignatures-pk.3.mcz'
'DynamicBindings-gk.3.mcz'
'KomServices-pk.4.mcz'
'KomHttpServer-pk.2.mcz'
'Seaside2-pk.7.mcz')
do: [:packageName |
((MCHttpRepository location: 'http://www.squeaksource.com/KernelImage' user: '' password: '')
loadVersionFromFileNamed: packageName) load ]
Some other packages like Scriptaculous can be loaded from standard repositories.
((MCHttpRepository location: 'http://www.squeaksource.com/Seaside' user: '' password: '') loadVersionFromFileNamed: 'Scriptaculous-lr.141.mcz') load
How to save package:
| repository pkg |
repository := (MCHttpRepository location:
'http://www.squeaksource.com/MyRepository' user: '' password: '').
pkg := MCPackage named: 'MyPackage'.
pkg workingCopy repositoryGroup addRepository: repository.
repository storeVersion: pkg workingCopy newVersion.
This Seaside package doesn't have Browser support but you may install Browser.st from http://www.comtalk.cz/Squeak/uploads/20/browser.zip and if you will evaluate
WABrowser class compile: 'canBeRoot ^ true'
you may create root Seaside application with WABrowser component.
You may want to use this code too: SystemOrganization removeEmptyCategories
Shrinking script for 7061
- shrink.zip
- load console.st
- in the console evaluate: (FileStream readOnlyFileNamed: 'shrink.st') fileIn
- save image: SmalltalkImage current snapshot: true andQuit: false
Version 7061c
Packages are in the Monticello compressed format but (of course) there's no Monticello present in the image during the first load. So you have to decompress the packages and file-in source.st file.
Order
compression, network, packageinfo, monticello
[(FileStream readOnlyFileNamed: 'compression.st') fileIn] ifError: [:e | { e. thisContext stack first: 20 }].
[(FileStream readOnlyFileNamed: 'network.st') fileIn] ifError: [:e | { e. thisContext stack first: 20 }].
[(FileStream readOnlyFileNamed: 'packageinfo.st') fileIn] ifError: [:e | { e. thisContext stack first: 20 }].
[(FileStream readOnlyFileNamed: 'monticello.st') fileIn] ifError: [:e | { e. thisContext stack first: 20 }]
Save image
SmalltalkImage current snapshot: true andQuit: false
Save package
(MCPackage named: 'Monticello' ) workingCopy newVersion
Load package from a repository
[((MCHttpRepository location: 'http://squeaksource.com/DynamicBindings' user: '' password: '') loadVersionFromFileNamed: 'DynamicBindings-sam.2.mcz') load]ifError:[:e | { e. thisContext stack first: 20 }]
Note:
The console can process only one line command so you can write it into a script or make the display wide enough.
Odkaz na tuto stránku
- Download, poslední úprava dne 8 Březen 2008 v 22:32:13 uživatelem localhost
|