[Pharo-dev] PharoMinimal ?

Thierry Goubier thierry.goubier at gmail.com
Sun Oct 8 10:34:40 EDT 2017


Hi Pavel,

I'd probably see some interest in building the GitFileTree-MergeDriver 
with it. It only requires Monticello.

Thierry

Le 08/10/2017 à 12:41, Pavel Krivanek a écrit :
> Hi Sven,
> 
> 2017-10-07 16:18 GMT+02:00 Sven Van Caekenberghe <sven at stfx.eu 
> <mailto:sven at stfx.eu>>:
> 
>     Hi,
> 
>     What is the story around PharoMinimal and related images ?
> 
>     Is there a writeup somewhere with instructions ?
> 
> 
> Right now the minimal (Metacello) image based on Pharo 7 is used only as 
> intermediate step in building of the full Pharo and the only real 
> (successful) attempt to use it for something else is PharoLambda 
> (https://gitlab.com/macta/PharoLambda).
> 
> In general it can be used for building of own (server) applications. 
> E.g. this way you can install and run Teapot on it:
> 
> ./pharo Pharo7.0-metacello-32bit-d13eed2.image config 
> http://smalltalkhub.com/mc/zeroflag/Teapot/main ConfigurationOfTeapot 
> --install=stable
> ./pharo Pharo7.0-metacello-32bit-d13eed2.image eval --no-quit "Teapot on 
> GET: '/welcome' -> 'Hello World'; start."
> 
> You can load baselines from the Git repositories too but we currently do 
> not have any command line handler for it so you need to do it using 
> "eval" command or *.st flile. Something like this:
> 
> Metacello new
> baseline: 'Seaside3';
> repository: 'github://SeasideSt/Seaside:master/repository';
> load
> 
> To make it more usable we probably should extend it with SUnit and Fuel. 
> If you want to extend it with some packages from vanilla Pharo, you 
> should load them using FileTree from your local Pharo repository clone.
> 
> Gofer it
> url: 'filetree:///path-to-my-pharo-repository-clone/pharo/src';
> package: 'Multilingual-OtherLanguages';
> package: 'Multilingual-TextConverterOtherLanguages';
> load.
> 
> It still needs some care. E.g. some classes from Zinc are not properly 
> initialized (I know about DigitalSignatureAlgorithm MD5NonPrimitive 
> RxMatcher RxParser RxsPredicate SHA1 ZnByteEncoder ZnConstants 
> ZnMimeType ZnNetworkingUtils ZnServer ZnSingleThreadedServer 
> TextConstants TextAction TextStyle).
> 
> I tried to load Seaside into it today (from the example above) and it 
> failed (some strange error probalby related to Unicode processing). But 
> we will fix it. If you will tell me what exactly you need we can make it 
> work together as in case of PharoLambda.
> 
> 
>     I see that we get **FANTASTIC** startup speed with it:
> 
>     $ cat /etc/issue
>     Ubuntu 16.04.3 LTS
> 
>     $ ./pharo --version
>     5.0-201708271955  Sun Aug 27 20:09:20 UTC 2017 gcc 4.6.3 [Production
>     Spur VM]
>     CoInterpreter VMMaker.oscog-eem.2265 uuid:
>     76b62109-629a-4c39-9641-67b53321df9a Aug 27 2017
>     StackToRegisterMappingCogit VMMaker.oscog-eem.2262 uuid:
>     8b531242-de02-48aa-b418-8d2dde0bec6c Aug 27 2017
>     VM: 201708271955
>     https://github.com/OpenSmalltalk/opensmalltalk-vm.git
>     <https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $ Date: Sun
>     Aug 27 21:55:26 2017 +0200 $
>     Plugins: 201708271955
>     https://github.com/OpenSmalltalk/opensmalltalk-vm.git
>     <https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $
>     Linux testing-gce-ebf45dd8-6a4c-43a5-abd0-e5d8673d05a4
>     3.13.0-115-generic #162~precise1-Ubuntu SMP Fri Mar 24 16:47:06 UTC
>     2017 i686 i686 i386 GNU/Linux
>     plugin path:
>     /home/audio359/pharo7/pharo-vm/lib/pharo/5.0-201708271955 [default:
>     /home/audio359/pharo7/pharo-vm/lib/pharo/5.0-201708271955/]
> 
>     $ curl get.pharo.org/70-minimal <http://get.pharo.org/70-minimal> | bash
>     ...
> 
>     $ ./pharo Pharo.image printVersion
>     [version] 'Pharo7.0'
>     'Pharo-7.0+alpha.build.172.sha.d13eed2f80fe19f29fd85ede8c4809d6a6986d4f
>     (32 Bit)'
> 
>     $ time ./pharo Pharo.image eval '5 factorial'
>     120
>     real    0m0.083s
>     user    0m0.034s
>     sys     0m0.042s
> 
>     That is less than 1/10 of a second on a simple server ! Wow.
> 
>     Loading new code in that image seem hard though.
> 
>     I see that in http://files.pharo.org/image/70/
>     <http://files.pharo.org/image/70/> there are Pharomonticello &
>     Pharometacello variants.
> 
>     Any pointers on usage/meaning ?
> 
> 
> Monticello is bootstrapped Pharo image with Monticello loaded. This 
> image then loads Metacello and the generated image is the image that we 
> call "minimal". It is minimal in sense minimal for common usage.
> 
> During Pharo building process we generate:
> - bootstrapped image
> - image with Opal that is loaded as binary packages using Hermes
> - Monticello with only local repositories support
> - Monticello with network and remote repositories support
> - Metacello
> - full Pharo IDE (which is loaded as sequence of several standalone 
> baselines)
> 
> Cheers,
> -- Pavel
> 
>     Thx,
> 
>     Sven
> 
> 





More information about the Pharo-dev mailing list