What is (not) Pharo 8?
A programming Language, an environment, a set of
tools, a community.
Pablo Tesone
Pharo Consortium Engineer
Who I am!
!2
Pablo Tesone
Pharo Consortium
Engineer
• 20 years trying to code

• 10 years of experience in industrial applications

• PhD in Dynamic Software Update

• Interested in improving development tools and the daily
development process. 

• Enthusiast of the object oriented programming and their tools.
Pharo 7.0
https://pharo.org/news/pharo7.0-
released
2142 issues!
Latest update 7.0.4 : August’19
!3
Pharo 7 in a Nutshell
• 64-bit version in Linux, OSX and Windows (preview) 

• PharoLauncher

• Totally new build process with full bootstrap from sources

• All source on http://github.com/pharo-project/pharo

• Iceberg: git client significantly improved

• Calypso, the angular stone of PharoThings, new system
Pharo browser
!4
Pharo 7 main points…
• Stateful traits

• Streams refactor

• Working directory now is a real working directory

• UFFI has been adapted to Windows 64bit

• “Plugin replacement program”: FreeType done

• Windows 64bit VM closer and closer

• VM has continued improving in several ways. 

• Specific plugins like FilePlugin for Windows
!5
Pharo 8
!6
Coming Soon!!!
Summer 2020
(Yes… because January is Summer)
Pharo 8 - Addressed
• Analysis of File primitives performance on Windows

• Support for multiple windows (SDL / GTK)

• Headless VM (alpha)

• Non-blocking FFI back-end

• Degradation in performance

• Tons of new tests
!7
Under way for Pharo8
• Memory management and command line 

• Better Testing: Dr Test / Parametrized Tests / Parallel Execution

• Better refactorings/eCompletion

• Latency (Spotter and completion) large images

• Quality rules on big classes/images

• Spec 2.0 (new layout/widgets/transmission/backends)

• Infrastructure for assembly generation (customization / shipping)
!8
Plan for Pharo 9
• Better GC GC stops 2-3min for fullGC (in large images)

• cmd+dot not working in all cases

• Bloc

• Parallel processing (not just parallel testing, which can be
resolved at image side)

• More more and more tests for the VM

• Cleaner VM
!9
Pharo Consortium
• Handle the releases

• Handle the infrastructure

• Organize / guide / integrate the community

• Financing Engineering / Documentation / Teaching efforts

• 27 Industrial Partners 

• 19 Academic Partners
!10
A Win-Win solution!
• The engineers are paid by the contribution of the industrial
partners.

• Lifeware supports one year engineer 

• Schmidt supports one year engineer 

• …to improve Pharo infrastructure
!11
!12
ClassBuilder
NewTraits
Iceberg
C - FFI
Windows
VM
Iceberg
ClassDef
TaskIt
Spec
Tests
Windows
UI
Tools
Spec
Web
Fixing
Cleaning
Iceberg
C
FFI
Spec
VM
Esteban Pablo Cyril Guille
For Pharo 8.0: 4 engineers
Objective 1: Business
• Supporting your Business

• Growing Together

• Supporting Heavily: 

• And the other 25 industrial partners.
!13
Supporting business
• Better 64 bits Windows 

• Support for multiple graphical backends

• Better tools and custom points

• Much better UFFI (non-blocking back-end) See Pablo’s
talk

• Continuously improving (cleans, refactoring, tests)
!14
Something else?
• Do you have a special need for your business? 

• Come and talk with me!!

• Different ways of handling it with and without community
interest.

• Different schemes of contribution to help you and help us.
!15
Objective 2: Community
• A live community for a live system!
!16
Objective 2: Community
• Discord
!17
Mailing List
Github Presence
Objective 2: Community
• Open Clear Process

• Public and transparent

• Code review / discussion

• Not a single commit without a PR

• Systematic automated validation
!18
Better process: Github @ Work
!19
Muchmore tests
Muchmore tests
Objective 3: In Tests we
trust
• Automatic Tests / CI on each build / PR

• Compiler tests (optimised, unoptimised, fullblock,…)

• UI tests on multiple back-ends

• More virtual machine tests

• FFI marshalling tests!! (yes with libs in C to test)
!20
Objective 3: In Tests we
trust
• Dr. Tests - Executing more and better your tests.

• Parametrized Tests - Generate lots of test.

• Verified Executable Examples - Documentation is tested
to keep examples up to date.
!21
Objective 3: In Tests we
trust
Objective 4: Teaching /
Learning
!22
• A Full Mooc in different languages (including French / English /
Spanish / more to come)

• Updated to Pharo 8 (Including Iceberg and all the new Tools)

• Books: open-source http://books.pharo.org

• Updated versions of TinyBlog, Pharo with Style, Spec & Iceberg

• TechTalks

• Open Documentation - github.com/pharo-open-documentation

• Lectures / Exercises / Programs / Support to Teachers
Objective 5: Job
Opportunities
• Smalltalk is great, and it is more than alive!

• We need to promote all uses of Smalltalk

• Pharo is a great opportunity to learn.

• A great opportunity to show you off: contributing to any
open-source project.

• Companies looking for smalltalkers in USA / Canada /
Europe / Latin America / Asia / Africa … all over the world.
!23
You can have an impact
• With one hour per week…

• Enhance tests

• Discord… 

• Add tests

• Review fixes

• Open ***clear*** issue

• Fix simple points

• Make us focus on difficult points
!24
Show you off!!!
Objective 6: Research
• Pharo is fully open.

• Easy to modify and to test

• Bootstrapping Tools - Create and Debug your languages
and kernels. 

• Easier process to modify the VM
!25
Let’s Collaborate!!!
!26
It’s yours!
Try it!
Hack it! Improve it!
Report
Issues!
Break it!
Learn!
pharo-project/pharo
https://ci.inria.fr/pharo-ci-jenkins2/
Thanks!!!
https://discord.gg/QewZMZa

What is (not) Pharo 8?

  • 1.
    What is (not)Pharo 8? A programming Language, an environment, a set of tools, a community. Pablo Tesone Pharo Consortium Engineer
  • 2.
    Who I am! !2 PabloTesone Pharo Consortium Engineer • 20 years trying to code • 10 years of experience in industrial applications • PhD in Dynamic Software Update • Interested in improving development tools and the daily development process. • Enthusiast of the object oriented programming and their tools.
  • 3.
  • 4.
    Pharo 7 ina Nutshell • 64-bit version in Linux, OSX and Windows (preview) • PharoLauncher • Totally new build process with full bootstrap from sources • All source on http://github.com/pharo-project/pharo • Iceberg: git client significantly improved • Calypso, the angular stone of PharoThings, new system Pharo browser !4
  • 5.
    Pharo 7 mainpoints… • Stateful traits • Streams refactor • Working directory now is a real working directory • UFFI has been adapted to Windows 64bit • “Plugin replacement program”: FreeType done • Windows 64bit VM closer and closer • VM has continued improving in several ways. • Specific plugins like FilePlugin for Windows !5
  • 6.
    Pharo 8 !6 Coming Soon!!! Summer2020 (Yes… because January is Summer)
  • 7.
    Pharo 8 -Addressed • Analysis of File primitives performance on Windows • Support for multiple windows (SDL / GTK) • Headless VM (alpha) • Non-blocking FFI back-end • Degradation in performance • Tons of new tests !7
  • 8.
    Under way forPharo8 • Memory management and command line • Better Testing: Dr Test / Parametrized Tests / Parallel Execution • Better refactorings/eCompletion • Latency (Spotter and completion) large images • Quality rules on big classes/images • Spec 2.0 (new layout/widgets/transmission/backends) • Infrastructure for assembly generation (customization / shipping) !8
  • 9.
    Plan for Pharo9 • Better GC GC stops 2-3min for fullGC (in large images) • cmd+dot not working in all cases • Bloc • Parallel processing (not just parallel testing, which can be resolved at image side) • More more and more tests for the VM • Cleaner VM !9
  • 10.
    Pharo Consortium • Handlethe releases • Handle the infrastructure • Organize / guide / integrate the community • Financing Engineering / Documentation / Teaching efforts • 27 Industrial Partners • 19 Academic Partners !10
  • 11.
    A Win-Win solution! •The engineers are paid by the contribution of the industrial partners. • Lifeware supports one year engineer • Schmidt supports one year engineer • …to improve Pharo infrastructure !11
  • 12.
  • 13.
    Objective 1: Business •Supporting your Business • Growing Together • Supporting Heavily: • And the other 25 industrial partners. !13
  • 14.
    Supporting business • Better64 bits Windows • Support for multiple graphical backends • Better tools and custom points • Much better UFFI (non-blocking back-end) See Pablo’s talk • Continuously improving (cleans, refactoring, tests) !14
  • 15.
    Something else? • Doyou have a special need for your business? • Come and talk with me!! • Different ways of handling it with and without community interest. • Different schemes of contribution to help you and help us. !15
  • 16.
    Objective 2: Community •A live community for a live system! !16
  • 17.
    Objective 2: Community •Discord !17 Mailing List Github Presence
  • 18.
    Objective 2: Community •Open Clear Process • Public and transparent • Code review / discussion • Not a single commit without a PR • Systematic automated validation !18 Better process: Github @ Work
  • 19.
  • 20.
    • Automatic Tests/ CI on each build / PR • Compiler tests (optimised, unoptimised, fullblock,…) • UI tests on multiple back-ends • More virtual machine tests • FFI marshalling tests!! (yes with libs in C to test) !20 Objective 3: In Tests we trust
  • 21.
    • Dr. Tests- Executing more and better your tests. • Parametrized Tests - Generate lots of test. • Verified Executable Examples - Documentation is tested to keep examples up to date. !21 Objective 3: In Tests we trust
  • 22.
    Objective 4: Teaching/ Learning !22 • A Full Mooc in different languages (including French / English / Spanish / more to come) • Updated to Pharo 8 (Including Iceberg and all the new Tools) • Books: open-source http://books.pharo.org • Updated versions of TinyBlog, Pharo with Style, Spec & Iceberg • TechTalks • Open Documentation - github.com/pharo-open-documentation • Lectures / Exercises / Programs / Support to Teachers
  • 23.
    Objective 5: Job Opportunities •Smalltalk is great, and it is more than alive! • We need to promote all uses of Smalltalk • Pharo is a great opportunity to learn. • A great opportunity to show you off: contributing to any open-source project. • Companies looking for smalltalkers in USA / Canada / Europe / Latin America / Asia / Africa … all over the world. !23
  • 24.
    You can havean impact • With one hour per week… • Enhance tests • Discord… • Add tests • Review fixes • Open ***clear*** issue • Fix simple points • Make us focus on difficult points !24 Show you off!!!
  • 25.
    Objective 6: Research •Pharo is fully open. • Easy to modify and to test • Bootstrapping Tools - Create and Debug your languages and kernels. • Easier process to modify the VM !25 Let’s Collaborate!!!
  • 26.
    !26 It’s yours! Try it! Hackit! Improve it! Report Issues! Break it! Learn! pharo-project/pharo https://ci.inria.fr/pharo-ci-jenkins2/ Thanks!!! https://discord.gg/QewZMZa