Pharo ARM 
Status 
Jean-Baptiste Arnaud 
jbaptiste.arnaud@gmail.com
Who I am 
• PhD in Language design and security 
• Member of the Pharo community since 5 years 
• Doing a post-doc in RMoD Team, working on static analysis on python 
• Maintainer of the ARM for Pharo
Roadmap 
• Raspberry Pi Status 
• Android Status 
• Small demo :-)
Raspberry Pi
Tasks done 
• Stack Interpreter 
• VM with FastBltBit (T. Rowledge, B. Avison) 
• Complete Building process 
• On http://files.pharo.org/ 
• FFI arm (Doug Mc Pherson), OSProcess 
• A StackInterpreter with NativeBoost
Issues 
• Raspberry Pi configuration 
• Raspberry Pi Toolchains 
• Raspberry Pi is not a desktop computer
Recommendations 
• Do not upgrade your platform every day 
• Develop on Unix and release on Raspberry pi 
• Remote tests / Automatic tests
How to Extend The VM 
• Fork the pharoVM github repository 
• Subclass of StackCrossRaspbianFastBltConfig 
• Go on Pharo Contribution: 
• Copy the jobs: 
• RaspberryPi-Cog-Git-Tracker, linked your pharoVM 
fork 
• RaspberryPi-Cross-Compilation-FastBltBit, here call 
your configuration subclass
Tasks to be done 
• Add a GPIO support (Wiring Pi lib via FFI) in 
progress 
• Jenkins tests / Specific automated Tests 
• Pharo for Embedded 
• VCPU Arm (Ask Igor) ==> NativeBoost ARM 
• JitCompiler for ARM (Ask Tim)
Useful links 
• LastVM 
• http://files.pharo.org/vm/pharoS/raspbian/ 
latest.zip 
• PharoVM 
• https://github.com/pharo-project/pharo-vm
Android
Android Status 
! 
• CogDroid project stopped since ~ 2 years 
• Based on a fork of unix sources 
• Not maintained anymore
• Goals 
Android Status 
• Revive the Stack VM 
Android 
• Keep the source 
closest possible to the 
Unix Sources
Tasks done 
• Tamed the Native Android process 
• Redirected the VM Debugging methods to 
logcat 
• Be able to load external libraries from VM 
• Managed Display plugin as external library 
• Run a Pharo40 image
Jobs to be done 
• Manage Events 
• Merge with PharoVM Repository master 
• Configuration generator 
• Jenkins Process 
• Android primitives 
• Job to package images into Pharo applications
DEMO
DEMO
DEMO 
SSID: RaspARMDemo 
Pass: ESUG2015 
http://192.168.42.1:8081/GPIOController
Before questions
Question

Pharo Arm Status

  • 1.
    Pharo ARM Status Jean-Baptiste Arnaud jbaptiste.arnaud@gmail.com
  • 2.
    Who I am • PhD in Language design and security • Member of the Pharo community since 5 years • Doing a post-doc in RMoD Team, working on static analysis on python • Maintainer of the ARM for Pharo
  • 3.
    Roadmap • RaspberryPi Status • Android Status • Small demo :-)
  • 4.
  • 5.
    Tasks done •Stack Interpreter • VM with FastBltBit (T. Rowledge, B. Avison) • Complete Building process • On http://files.pharo.org/ • FFI arm (Doug Mc Pherson), OSProcess • A StackInterpreter with NativeBoost
  • 6.
    Issues • RaspberryPi configuration • Raspberry Pi Toolchains • Raspberry Pi is not a desktop computer
  • 7.
    Recommendations • Donot upgrade your platform every day • Develop on Unix and release on Raspberry pi • Remote tests / Automatic tests
  • 8.
    How to ExtendThe VM • Fork the pharoVM github repository • Subclass of StackCrossRaspbianFastBltConfig • Go on Pharo Contribution: • Copy the jobs: • RaspberryPi-Cog-Git-Tracker, linked your pharoVM fork • RaspberryPi-Cross-Compilation-FastBltBit, here call your configuration subclass
  • 9.
    Tasks to bedone • Add a GPIO support (Wiring Pi lib via FFI) in progress • Jenkins tests / Specific automated Tests • Pharo for Embedded • VCPU Arm (Ask Igor) ==> NativeBoost ARM • JitCompiler for ARM (Ask Tim)
  • 10.
    Useful links •LastVM • http://files.pharo.org/vm/pharoS/raspbian/ latest.zip • PharoVM • https://github.com/pharo-project/pharo-vm
  • 11.
  • 12.
    Android Status ! • CogDroid project stopped since ~ 2 years • Based on a fork of unix sources • Not maintained anymore
  • 13.
    • Goals AndroidStatus • Revive the Stack VM Android • Keep the source closest possible to the Unix Sources
  • 14.
    Tasks done •Tamed the Native Android process • Redirected the VM Debugging methods to logcat • Be able to load external libraries from VM • Managed Display plugin as external library • Run a Pharo40 image
  • 15.
    Jobs to bedone • Manage Events • Merge with PharoVM Repository master • Configuration generator • Jenkins Process • Android primitives • Job to package images into Pharo applications
  • 16.
  • 17.
  • 18.
    DEMO SSID: RaspARMDemo Pass: ESUG2015 http://192.168.42.1:8081/GPIOController
  • 19.
  • 20.