Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Pharo 7: The key challenges

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

  • Als Erste(r) kommentieren

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

×