Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pharo 7: The key challenges

1,106 views

Published on

Talk from Pharodays 2017.
Video: https://www.youtube.com/watch?v=_EWJN5ab2bo

Published in: Software
  • Video: https://www.youtube.com/watch?v=_EWJN5ab2bo
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Pharo 7: The key challenges

  1. 1. Pharo 70 The key challenges S. Ducasse for the RMoD Team
  2. 2. Points • Cleaning and stabilising • 64 bits windows/large images • Iceberg in production • Pharo managed on github • Bootstrap in production • Retirement of Nautilus -> Calypso + Commander • New class definition • Cargo
  3. 3. Nautilus
  4. 4. Calypso • Thanks alain for giving us the name
  5. 5. Calypso & its submarines
  6. 6. Calypso • Basis for Remote Browsing • Fully extensible • No ifs • Developed by D. Kudriashov • Thanks alain for giving us the name
  7. 7. Calypso • multiple panes • multiple method definitions • incomplete method definitions • scoping…
  8. 8. Calypso • mulitple panes • multiple method definitions • incomplete method definitions • scoping…
  9. 9. New Message Browser
  10. 10. Iceberg • Paid by the consortium • libgit2
  11. 11. Iceberg • Potentially for • Fossil • Mercurial
  12. 12. Pharo on github
  13. 13. About classes
  14. 14. Class definition explosion • subclass:, variableSubclass:, variableByte.. variableWord, weak: • uses: • layout: • tag: • immediate:, ephemeron • category: • package: • slot: • instanceVariableNames:, classVariableNames:
  15. 15. Need a fluid API • Only specify what is used! • No empty classVariableNames: ‘’ • Handling combinatorial explosion Class <<< #Box vars: { #width . #height }; package: #MyPackage.
  16. 16. Possible Designs Class { superclass: #MySuperclass; uses: #MyTrait; vars: { #a. #b }; classVars: { #A. #B }; package: #MyPackage; tags: #(Core). } Class <<< #MyClass superclass: #MySuperclas; uses: #MyTrait; vars: { #a. #b }; classVars: { #A. #B }; package: #MyPackage; tags: #(Core)
  17. 17. Need a class **definition** • a.k.a. AST • traits, slots, kinds…. • Can be manipulated • Support for Smart Suggestions • Need to be able to have **undefined** classes • Important for modules!
  18. 18. Working on a “ClassParser” + Nodes • Can handle variations, backward compatibles…. • Support for smart suggestion in class definition • Avoid ‘*subclass:*’ matches: str
  19. 19. Opal • Warnings into real objects • Another pass on the API
  20. 20. PharoPro More services around the consortium • Long Term Support (LTS) • Platform Support: CentOS, NetBSD, FreeBSD • Pharo Hotline • Custom Development
  21. 21. Pharo 70 is exciting We are excited by the possibilities You can help, contribute and have fun with us

×