Pharo 70 The key challenges S. Ducasse for the RMoD Team Points - - PowerPoint PPT Presentation

pharo 70 the key challenges
SMART_READER_LITE
LIVE PREVIEW

Pharo 70 The key challenges S. Ducasse for the RMoD Team Points - - PowerPoint PPT Presentation

Pharo 70 The key challenges S. Ducasse for the RMoD Team Points Cleaning and stabilising 64 bits windows/large images Iceberg in production Pharo managed on github Bootstrap in production Retirement of Nautilus ->


slide-1
SLIDE 1

Pharo 70 The key challenges

  • S. Ducasse for the RMoD Team
slide-2
SLIDE 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
slide-3
SLIDE 3

Nautilus

slide-4
SLIDE 4

Calypso

  • Thanks alain for giving us the name
slide-5
SLIDE 5

Calypso & its submarines

slide-6
SLIDE 6

Calypso

  • Basis for Remote Browsing
  • Fully extensible
  • No ifs
  • Developed by D. Kudriashov
  • Thanks alain for giving us the name
slide-7
SLIDE 7

Calypso

  • multiple panes
  • multiple method definitions
  • incomplete method definitions
  • scoping…
slide-8
SLIDE 8

Calypso

  • mulitple panes
  • multiple method definitions
  • incomplete method definitions
  • scoping…
slide-9
SLIDE 9

New Message Browser

slide-10
SLIDE 10

Iceberg

  • Paid by the consortium
  • libgit2
slide-11
SLIDE 11

Iceberg

  • Potentially for
  • Fossil
  • Mercurial
slide-12
SLIDE 12
slide-13
SLIDE 13

Pharo on github

slide-14
SLIDE 14

About classes

slide-15
SLIDE 15

Class definition explosion

  • subclass:, variableSubclass:, variableByte.. variableWord, weak:
  • uses:
  • layout:
  • tag:
  • immediate:, ephemeron
  • category:
  • package:
  • slot:
  • instanceVariableNames:, classVariableNames:
slide-16
SLIDE 16

Need a fluid API

  • Only specify what is used!
  • No empty classVariableNames: ‘’
  • Handling combinatorial explosion

Class <<< #Box vars: { #width . #height }; package: #MyPackage.

slide-17
SLIDE 17

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)

slide-18
SLIDE 18

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!
slide-19
SLIDE 19

Working on a “ClassParser” + Nodes

  • Can handle variations, backward compatibles….
  • Support for smart suggestion in class definition
  • Avoid ‘*subclass:*’ matches: str
slide-20
SLIDE 20

Opal

  • Warnings into real objects
  • Another pass on the API
slide-21
SLIDE 21

PharoPro

More services around the consortium

  • Long Term Support (LTS)
  • Platform Support: CentOS, NetBSD, FreeBSD
  • Pharo Hotline
  • Custom Development
slide-22
SLIDE 22

Pharo 70 is exciting

We are excited by the possibilities You can help, contribute and have fun with us