Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission...
Transcript of Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission...
![Page 1: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/1.jpg)
Mission Pharo KernelESUG 2016, Prague
Pavel Krivanek and Christophe Demarey
![Page 2: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/2.jpg)
New librariesNew toolsNew testsMore documentation
Pharo is growing
![Page 3: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/3.jpg)
Pharo evolution
Squeak 3.9 Pharo 1.0 Pharo 1.1 Pharo 1.2 Pharo 1.3 Pharo 1.4 Pharo 2.0 Pharo 3.0 Pharo 4.0 Pharo 5.0
Classes
Packages
LOC
![Page 4: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/4.jpg)
Code for future useDuplicitiesObsolete codeDO-NOT-TOUCH code
![Page 5: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/5.jpg)
![Page 6: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/6.jpg)
Pharo ZEN● Easy to understand, easy to learn from, easy to change.● Objects all the way down.● Examples to learn from.
● Fully dynamic and malleable.● Beauty in the code, beauty in the comments.
● Simplicity is the ultimate elegance.● Better a set of small polymorphic classes than a large ugly one.● Classes structure our vocabulary.
● Messages are our vocabulary.● Polymorphism is our esperanto.
● Abstraction and composition are our friends.● Tests are important but can be changed.
● Explicit is better than implicit.● Magic only at the right place.● One step at a time.● There is no unimportant fix.● Learning from mistakes.● Perfection can kill movement.● Quality is a emerging property.
● Simple processes to support progress.● Communication is key.
● A system with robust abstractions that a single person can understand.
![Page 7: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/7.jpg)
Modularity
![Page 8: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/8.jpg)
Pharo Kernel
![Page 9: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/9.jpg)
From top
- cleaning- shrinking- reloading
From bottom
bootstrapping from zero - reloading -
![Page 10: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/10.jpg)
From top shrinking and modularization
- started before Pharo- removing of code is easy- clean removing is not easy- reloading is even harder
Morphic reloaded [22.07.2006]
![Page 11: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/11.jpg)
Kernel image evolution in shortcut
BROKEN!works again
BROKEN!works again
BROKEN!works again
BROKEN!works again
BROKEN!works again
BROKEN!works again
BROKEN!works again
Broken again... [18.8.2016]
![Page 12: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/12.jpg)
Why so hard and long?
Everyone needs to
take of care of modularity
integrated inintegrated indevelopment processdevelopment process(tests, rules, CI jobs) (tests, rules, CI jobs)
![Page 13: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/13.jpg)
CI jobs for Pharo modularization
- since Pharo 2.0
- shrink image- increase granularity of reloaded modules- tests- coverage testing- experiments (Tanker)
https://ci.inria.fr/pharo/view/6.0-SysConf/
![Page 14: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/14.jpg)
CI jobs for Pharo modularization
Kernel image (shrinked / bootstrapped)+ Monticello + Network support+ Remote repositories support+ Metacello= minimal Pharo+ SUnit, Display support, UFFI+ Morphic core, Morphic+ UI, Basic tools, IDE= Pharo
![Page 15: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/15.jpg)
Bootstrapped & reloaded from GIT
![Page 16: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/16.jpg)
Let's talk about BOOTSTRAP
![Page 17: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/17.jpg)
« The process that builds the minimalinfrastructure of a langage reusable to define the
langage itself »
Bootstrap
![Page 18: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/18.jpg)
Why do we need a bootstrap ?
● Have a known initial state
● Be able to reproduce the state of a system
● Ensure we can reinitialize the system at any time
● Ease Kernel evolution
● Identify a small subset of the language allowingthe definition of the language itself
![Page 19: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/19.jpg)
Why bootstraping is difficult?
![Page 20: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/20.jpg)
Archaelogy
![Page 21: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/21.jpg)
![Page 22: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/22.jpg)
Dead code!
![Page 23: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/23.jpg)
Strange things
![Page 24: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/24.jpg)
cleanups
![Page 25: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/25.jpg)
Missing code
![Page 26: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/26.jpg)
The dependency hell
![Page 27: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/27.jpg)
Cut dependencies
![Page 28: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/28.jpg)
Code refactoring
![Page 29: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/29.jpg)
How to fix bad dependencies?
Create a new package to isolate functionnalities
Move some methods as extensions to anotherpackage
Re-design completely a functionalitye.g. startup list
...
![Page 30: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/30.jpg)
Tools support
![Page 31: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/31.jpg)
Dependency Analyser
![Page 32: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/32.jpg)
Dependency dashboard
X 2
![Page 33: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/33.jpg)
Dependency visualization
https://ci.inria.fr/pharo/job/Pharo-6.0-DependencyAnalysis/ws/bootstrap-dependency-report-graph.html
![Page 34: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/34.jpg)
The bootstrap process
![Page 35: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/35.jpg)
![Page 36: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/36.jpg)
1Day
![Page 37: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/37.jpg)
![Page 38: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/38.jpg)
2Day
![Page 39: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/39.jpg)
3Day
![Page 40: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/40.jpg)
4Day
![Page 41: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/41.jpg)
5Day
process
![Page 42: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/42.jpg)
6Day
![Page 43: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/43.jpg)
7Day
![Page 44: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/44.jpg)
More details
cf phd Guillermo Polito: https://hal.inria.fr/tel-01251173
![Page 45: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/45.jpg)
Story #2
![Page 46: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/46.jpg)
Road to a working bootstrap
![Page 47: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/47.jpg)
Bootstrap challenge> language side bootstrap
Language initialization generally done VM side
We want to do it language side (image side):need to run code on top of a language under
construction
![Page 48: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/48.jpg)
Bootstrap challenge> language side bootstrap
![Page 49: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/49.jpg)
Road to a working bootstrap
First bootstrapped image!
![Page 50: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/50.jpg)
Road to a working bootstrap
![Page 51: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/51.jpg)
Road to a working bootstrap
We run the image …
… VM crash
![Page 52: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/52.jpg)
Road to a working bootstrap> some debugging examples
Missing class in the boostrape.g. Float
Super class not set
Super class set to a wrong value
![Page 53: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/53.jpg)
Road to a working bootstrap
Compile VM in debug mode
Run bootstrapped image through Xcode / LLDB
![Page 54: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/54.jpg)
Road to a working bootstrap> verifying the bootstrap
Rely on Pharo tests (>8 000 tests)● Load SUnit● Load test packages● Run tests
![Page 55: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/55.jpg)
Wants to know more?
Bootstrap process hosted on Pharo CI server
https://ci.inria.fr/pharo/view/Pharo%20bootstrap/
GitHub repository
https://github.com/guillep/PharoBootstrap
![Page 56: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/56.jpg)
Conclusion
Having a modular system requires a lot of energy• Easy to break• Concern of everyone
We now have a working Pharo bootstrappedimage.We are able to load packages on top to build a fullPharo-image (UI, IDE, etc.)
![Page 57: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/57.jpg)
Roadmap
Make the boostrap process more robust
Up-to-date package dependencies for the Pharoimage + use of Cargo package manager
Build the official Pharo image on top of thebootstrap
Make the kernel smaller (e.g. kick out Unicode)
![Page 58: Mission Pharo Kernel - esug.org › data › ESUG2016 › 04-Thursday › 1000-1030... · Mission Pharo Kernel ESUG 2016, Prague Pavel Krivanek and Christophe Demarey. New libraries](https://reader034.fdocuments.net/reader034/viewer/2022042315/5f03567f7e708231d408b7fd/html5/thumbnails/58.jpg)
« Always leave the campgroundcleaner than you found it. »
-Boy Scout rule, Uncle Bob