Pharo4: Plans and Dreams

2,459 views

Published on

Pharo4: Plans and Dreams.
Talk from Fosdem 2014

On Youtube: http://www.youtube.com/watch?v=mUV9E03u52g

More about Pharo at: http://pharo.org

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,459
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Pharo4: Plans and Dreams

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

×