SlideShare a Scribd company logo
Pharo4
Plans and Dreams
Marcus Denker
http://rmod.lille.inria.fr
A bit early…
• We are hard working to get Pharo3 out
• Not much yet happened with planning Pharo4
1 Year
9 Months
March 2014-December 2014
+Time for Bug fixing
This is not a lot!
So not too many dreams…
It needs to be doable
Ideas
• Slots
• Reflectivity
• One-File Pharo
• Tools
• GIT
• Athens
• Bootstrap
• Sista
Bootstrap
• Create an image from a git repository
• Control what the image contains
• Easier to make changes
• Enforces Modularity
Boostrap
• Working for Pharo3 as a prototype
!
• Can we even use this for Pharo4 on the build
server?
One File Pharo
• .sources, .changes. .image
!
• It is time to simplify that!
Epicea
• Replace .changes
• High level model:
• aggregate changes (refactoring)
• serialized to disk independent of source model
Pharo4: Plans and Dreams
Step2: Sources
• It is 2014: Memory is cheap.
• Complexity is expensive
• Why not just put the sources in the image?
• Just current version (compressed, of course)
• Code history is in Monticello (or Git)
Slots
• First class Instance Variables
• Already in Pharo3, but compatible (ivar Slot)
• For Pharo4: Provide different Slot kinds
Property Slots
Object
subclass: #PropertyObject
layout: PointerLayout
slots: {
field => Slot
property1 => PropertySlot.
property2 => PropertySlot.
...
propertyN => PropertySlot.
}
Others
• BitSlot
• BooleanSlot
• Alias
• Relationships (e.g. one-one, one-many)
• …. Your Domain level Slot!
More in Paper from OOPSLA
Reflectivity
• Partial Behavioral Reflection
• Associate MetaObject with structural object
• e.g. Slots
• AST nodes
Method
Can we modify the behaviour of code?
Meta
Link
> Annotate the AST with meta-links
Why?
• Change behaviour for selected AST Nodes
• “All assignments”
• “this message send”
But without changing the program code!
© Marcus Denker
Behavioral Reflection
source code
(AST)
meta-object
activation
condition
links
Uses…
• Debugger
• BreakPoints, WatchPoints
• Profilers
• Coverage Analysis
• AOP
… And Beyond
• Every year one Release
• Research happens in Parallel
• Lots of Interesting Stuff
• Sadly another talk
Questions ?

More Related Content

Pharo4: Plans and Dreams