SlideShare a Scribd company logo
ESUG 2022
Pharo 10 and
beyond
S. Ducasse
consortium-adm@pharo.org
Remember Pharo 90!
• Full redesign of the Spec UI framework (new logic,
application, style, GTK back-end)

• NewTools: new playground, new inspector, new
debugger (new error infrastructure and emergency
debugger)

• New composable completion framework

• General speed up 

• Compiler optimisations
2
Remember Pharo 90!
• Better Refactorings

• Better parser for error recognition

• Comments in Microdown format (Markdown compatible)

• Fast universal FFI (Foreign Function Interface)

• Idle VM + SDL20 and back-end (extended event handling,
including trackpad support) 

• ARM 64 bits 

• Full block closures
3
4
Now
Pharo 10
Many Bugs Fixed & Improvements
• + 1560 Pull requests

• + 1100 Issues closed

• 85 Di
ff
erent contributors
5
Many Bugs Fixed & Improvements
6
• Improving the development process

• Shorter iteration to release

• Reduced set of objectives

• Better “Ready” de
fi
nition

• Cut the fat
7
(After a large introspection…)
We wanted a SMALLER Iteration
 Pharo 10 and beyond
A side joke
“it is better, it has less classes” 

said the lame OOP developer
9
Just smaller is trivial
• Removing code by removing functionalities is
easy

• But we want same behavior and less code!
10
The real challenges
Cleaning and consolidating existing
functionalities 

Supporting users (deprecation)

are more challenging and interesting!
11
•10% code reduction!

•Having one good instead of
three average versions

•- 48 K LOC
12
Pharo10 a.k.a. Cut the FAT
13
Removed old/duplicated code
• Old Tools

• V3 Compiler Support

• Old Blocks & Bytecode

• VM based event handling

• Glamour / GTTools

• Spec1
Spec 2: Main Elements
• Now core is stable!

• Core & Basic Layouts

• Basic Presenters

• Application Support

• Styles / Themes

• Code Presenter
14
• Di
ff
erent layouts and composition

• Extended support for dynamic layouts
• New dialog building

• Transmissions

• Direct support for Roassal & Cairo

• Multiple backends (GTK / Morphic)

• Spec Tests and Testing Support
15
Spec 2: Extended Features
• Migrating
fi
nal tools from Spec1 to Spec2

• Improving existing ones

• Fixing issues and glitches

• Improving Refactorings, Deprecator & Rewriting
tools.

• Improving Pro
fi
lers
16
Tooling
Fluid Class Syntax
• Was sketched and presented in 2017 at ESUG

• Took longer than we wanted but 

• Nice design

• Scale well with multiple and optional parameters

• Extensible 

• Clean and nice implementation

• Is the default Pharo syntax!
17
Fluid Class Syntax
18
Compiler Improvements
• Unifying objects variables into a single hierarchy

• Improved semantic analysis

• Use Class and the Environment to lookup the variables

• Use Variable hierarchy to model variables for name analysis

• Improved AST Visitor

• Pragma lookup speed-up

• Compiler speed improvements
19
Refactorings
• New Refactorings

• Extract setUp method 

• Remove senders of method refactoring

• Copy package as refactoring 

• Rename package (rename manifest)

• Merge instance var x in y

• Move to class side method

• Create accessors with lazy initialization
20
Improved Refactorings
• Deprecate method (simple version)

• Deprecate class

• Extract method refactoring

• Replace senders by another

• Rename vars in Traits, Convert temporary to instance variable

• Push up method refactoring

• Add access to pushUp and pushDown refactorings from source code

• Permute parameters when add an argument

• Abstract instance variable
21
Other Improvements
• Sista Bytecodes w/ Full Block
Closures

• Memory management con
fi
guration

• Integration with Windows

• Zinc
22
• 3 Operating Systems (OSX / Linux /
Windows)

• 3 Architectures (ARM64 / ARM 32 / x86_64)

• Full Linux Packages through OBS

• Better FFI
23
Pharo 10: VM Improvements (2)
• Sockets

• Clean up old code

• GC Improvements

• Logging

• Stability, Speed

• Updated Dependencies
24
Pharo 10: VM Improvements
• Questions?
25
Pharo 10
Pharo 11’s possible points
26
P11 possible points [Language]
• Ephemerons

• Using them in the image

• Replacing Weak / Finalization mechanisms

• Concurrency

• Cleaning up the concurrency mechanisms we have.

• Make the image to use higher level mechanisms.
27
P11 possible points [Compiler]
• Clean Blocks

• Sharing them

• Full tool support

• Compiler Improvements

• New Optimizations

• Better Plugin support

• ...
28
P11 possible points [UI]
• Multi Windows

• HDPI

• Bloc in preview

• Spec Backend

• Performance
29
P11 possible points [Modularity]
• Pakbot

• Dependency management

• Projects

• Modularization

• Minimal Images

• External Projects

• Better Baselines
30
Not optional P11 VM points :)
• VM
• Memory Management
• PermSpace
• New Image format
• Meta-data
• RISC-V
31
32
pharo.org
consortium-
adm@pharo.org
pharo-project/pharo
discord.gg/QewZMZa
Thanks!!!

More Related Content

PDF
Bloc for Pharo: Current State and Future Perspective
PDF
Application Development with Pharo
PDF
Design Principles for a High-Performance Smalltalk
PDF
Functional Smalltalk
PDF
Pharo Virtual Machine: News from the Front
PDF
Microdown
PDF
GemStone Update
PDF
re:mobidyc the overview
Bloc for Pharo: Current State and Future Perspective
Application Development with Pharo
Design Principles for a High-Performance Smalltalk
Functional Smalltalk
Pharo Virtual Machine: News from the Front
Microdown
GemStone Update
re:mobidyc the overview

What's hot (20)

PDF
Music With Pharo
PDF
How Fast is AI in Pharo? Benchmarking Linear Regression
PDF
PharoJS: Pharo-Based TDD for Javascript Applications
PPTX
PDF
Trusted firmware deep_dive_v1.0_
PDF
Pharo foreign function interface (FFI) by example by Esteban Lorenzano
PDF
GIT | Distributed Version Control System
PDF
Introducing GitLab (June 2018)
PPT
Verification Automation Using IPXACT
PDF
JavaOne 2015 Java Mixed-Mode Flame Graphs
PDF
git and github
PDF
Velocity 2017 Performance analysis superpowers with Linux eBPF
PDF
Applications in Pharo
PDF
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
PDF
Introduction to the Incremental Cooperative Protocol of Kafka
PDF
Git hub
PDF
Git basics
PPTX
C# Inheritance
PPTX
Git 101 for Beginners
Music With Pharo
How Fast is AI in Pharo? Benchmarking Linear Regression
PharoJS: Pharo-Based TDD for Javascript Applications
Trusted firmware deep_dive_v1.0_
Pharo foreign function interface (FFI) by example by Esteban Lorenzano
GIT | Distributed Version Control System
Introducing GitLab (June 2018)
Verification Automation Using IPXACT
JavaOne 2015 Java Mixed-Mode Flame Graphs
git and github
Velocity 2017 Performance analysis superpowers with Linux eBPF
Applications in Pharo
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Introduction to the Incremental Cooperative Protocol of Kafka
Git hub
Git basics
C# Inheritance
Git 101 for Beginners
Ad

Similar to Pharo 10 and beyond (20)

PDF
A Taste of Pharo 7.0
PDF
Pharo 11: A stabilization release
PDF
Introducción a Docker - LibreCon 2016
PPTX
Symfony2 for legacy app rejuvenation: the eZ Publish case study
PDF
OSGi Community Event 2010 - OSGi Technical Update
PDF
Cincom Roadmap ESUG2014
PPTX
Mixing d ps building architecture on the cross cutting example
PDF
Enter Cookbook: refactoring under a microscope
PPTX
C#: Past, Present and Future
PDF
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
PPTX
Cloud Foundry Roadmap Update - OSCON - May 2017
PDF
Resume2015
PDF
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
PDF
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
PPTX
TechTalk: Connext DDS 5.2.
PDF
Flexible Indexing in Lucene 4.0
PDF
Making Wallstreet talk with GO (GO India Conference 2015)
PPTX
Monitoring federation open stack infrastructure
PDF
Improved Search with Lucene 4.0 - Robert Muir
PDF
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
A Taste of Pharo 7.0
Pharo 11: A stabilization release
Introducción a Docker - LibreCon 2016
Symfony2 for legacy app rejuvenation: the eZ Publish case study
OSGi Community Event 2010 - OSGi Technical Update
Cincom Roadmap ESUG2014
Mixing d ps building architecture on the cross cutting example
Enter Cookbook: refactoring under a microscope
C#: Past, Present and Future
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
Cloud Foundry Roadmap Update - OSCON - May 2017
Resume2015
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
TechTalk: Connext DDS 5.2.
Flexible Indexing in Lucene 4.0
Making Wallstreet talk with GO (GO India Conference 2015)
Monitoring federation open stack infrastructure
Improved Search with Lucene 4.0 - Robert Muir
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)

Recently uploaded (20)

PPTX
assetexplorer- product-overview - presentation
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
AutoCAD Professional Crack 2025 With License Key
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Website Design Services for Small Businesses.pdf
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Download FL Studio Crack Latest version 2025 ?
assetexplorer- product-overview - presentation
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
iTop VPN Crack Latest Version Full Key 2025
AutoCAD Professional Crack 2025 With License Key
Reimagine Home Health with the Power of Agentic AI​
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Why Generative AI is the Future of Content, Code & Creativity?
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Weekly report ppt - harsh dattuprasad patel.pptx
Computer Software and OS of computer science of grade 11.pptx
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Website Design Services for Small Businesses.pdf
Monitoring Stack: Grafana, Loki & Promtail
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
CHAPTER 2 - PM Management and IT Context
Design an Analysis of Algorithms II-SECS-1021-03
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Download FL Studio Crack Latest version 2025 ?

Pharo 10 and beyond

  • 1. ESUG 2022 Pharo 10 and beyond S. Ducasse consortium-adm@pharo.org
  • 2. Remember Pharo 90! • Full redesign of the Spec UI framework (new logic, application, style, GTK back-end) • NewTools: new playground, new inspector, new debugger (new error infrastructure and emergency debugger) • New composable completion framework • General speed up • Compiler optimisations 2
  • 3. Remember Pharo 90! • Better Refactorings • Better parser for error recognition • Comments in Microdown format (Markdown compatible) • Fast universal FFI (Foreign Function Interface) • Idle VM + SDL20 and back-end (extended event handling, including trackpad support) • ARM 64 bits • Full block closures 3
  • 5. Many Bugs Fixed & Improvements • + 1560 Pull requests • + 1100 Issues closed • 85 Di ff erent contributors 5
  • 6. Many Bugs Fixed & Improvements 6
  • 7. • Improving the development process • Shorter iteration to release • Reduced set of objectives • Better “Ready” de fi nition • Cut the fat 7 (After a large introspection…) We wanted a SMALLER Iteration
  • 9. A side joke “it is better, it has less classes” said the lame OOP developer 9
  • 10. Just smaller is trivial • Removing code by removing functionalities is easy • But we want same behavior and less code! 10
  • 11. The real challenges Cleaning and consolidating existing functionalities Supporting users (deprecation) are more challenging and interesting! 11
  • 12. •10% code reduction! •Having one good instead of three average versions •- 48 K LOC 12 Pharo10 a.k.a. Cut the FAT
  • 13. 13 Removed old/duplicated code • Old Tools • V3 Compiler Support • Old Blocks & Bytecode • VM based event handling • Glamour / GTTools • Spec1
  • 14. Spec 2: Main Elements • Now core is stable! • Core & Basic Layouts • Basic Presenters • Application Support • Styles / Themes • Code Presenter 14
  • 15. • Di ff erent layouts and composition • Extended support for dynamic layouts • New dialog building • Transmissions • Direct support for Roassal & Cairo • Multiple backends (GTK / Morphic) • Spec Tests and Testing Support 15 Spec 2: Extended Features
  • 16. • Migrating fi nal tools from Spec1 to Spec2 • Improving existing ones • Fixing issues and glitches • Improving Refactorings, Deprecator & Rewriting tools. • Improving Pro fi lers 16 Tooling
  • 17. Fluid Class Syntax • Was sketched and presented in 2017 at ESUG • Took longer than we wanted but • Nice design • Scale well with multiple and optional parameters • Extensible • Clean and nice implementation • Is the default Pharo syntax! 17
  • 19. Compiler Improvements • Unifying objects variables into a single hierarchy • Improved semantic analysis • Use Class and the Environment to lookup the variables • Use Variable hierarchy to model variables for name analysis • Improved AST Visitor • Pragma lookup speed-up • Compiler speed improvements 19
  • 20. Refactorings • New Refactorings • Extract setUp method • Remove senders of method refactoring • Copy package as refactoring • Rename package (rename manifest) • Merge instance var x in y • Move to class side method • Create accessors with lazy initialization 20
  • 21. Improved Refactorings • Deprecate method (simple version) • Deprecate class • Extract method refactoring • Replace senders by another • Rename vars in Traits, Convert temporary to instance variable • Push up method refactoring • Add access to pushUp and pushDown refactorings from source code • Permute parameters when add an argument • Abstract instance variable 21
  • 22. Other Improvements • Sista Bytecodes w/ Full Block Closures • Memory management con fi guration • Integration with Windows • Zinc 22
  • 23. • 3 Operating Systems (OSX / Linux / Windows) • 3 Architectures (ARM64 / ARM 32 / x86_64) • Full Linux Packages through OBS • Better FFI 23 Pharo 10: VM Improvements (2)
  • 24. • Sockets • Clean up old code • GC Improvements • Logging • Stability, Speed • Updated Dependencies 24 Pharo 10: VM Improvements
  • 27. P11 possible points [Language] • Ephemerons • Using them in the image • Replacing Weak / Finalization mechanisms • Concurrency • Cleaning up the concurrency mechanisms we have. • Make the image to use higher level mechanisms. 27
  • 28. P11 possible points [Compiler] • Clean Blocks • Sharing them • Full tool support • Compiler Improvements • New Optimizations • Better Plugin support • ... 28
  • 29. P11 possible points [UI] • Multi Windows • HDPI • Bloc in preview • Spec Backend • Performance 29
  • 30. P11 possible points [Modularity] • Pakbot • Dependency management • Projects • Modularization • Minimal Images • External Projects • Better Baselines 30
  • 31. Not optional P11 VM points :) • VM • Memory Management • PermSpace • New Image format • Meta-data • RISC-V 31