SlideShare a Scribd company logo
Lowcode 
Redoing NativeBoost Portably 
Ronie Salgado
The Current FFI Problem 
● SqueakFFI/ThreadedFFI, Alien, NativeBoost. 
● The callbacks 
● Performance 
● Raw memory manipulation?
Ways of interfacing with C 
● Extend the Interpreter. Done in Java(JNI), Lua, 
Python 
● Just call. Done in .Net, D
Extending the Interpreter 
Python Example. Source: https://docs.python.org/2/extending/extending.html
Just Calling
Why I do not like NativeBoost
More Portable
What I would like to do 
ffiFloat32AtOffsetPut: zeroBasedOffset put: value 
(float*)self atOffset: zeroBasedOffset put: value 
The actual syntax has to be discussed.
What I also want to do 
ffiFloat32AtOffsetPut: zeroBasedOffset put: value { 
((float*)self)[0] = value; 
}
How it is done 
● Extend the Sista Extended Bytecode set. 
● Expose basic CPU primitive type. 
● Implemented in the VM. 
● Implemented in plugins.
Many Backends 
● C Interpreter plugin. (Done) 
● C++ LLVM plugin. (Done) 
● VirtualCPU. (Incomplete) 
● StackInterpreter. (ToDo) 
● Cogit. (ToDo)

More Related Content

ODP
Handling multibyte CSV files in PHP
PDF
A Python Tutorial
PDF
Introduction to python
PDF
COSCUP: Foreign Function Call in Julia
PDF
Go Lang Tutorial
PPTX
Rusty Python
PPTX
Performance Enhancement Tips
PPTX
C++ scalable network_io
Handling multibyte CSV files in PHP
A Python Tutorial
Introduction to python
COSCUP: Foreign Function Call in Julia
Go Lang Tutorial
Rusty Python
Performance Enhancement Tips
C++ scalable network_io

What's hot (20)

PDF
Violent python
PPTX
All things py
PDF
Happy hacking with Plone
PPTX
Introduction to Python
PPTX
GDB: A Lot More Than You Knew
PDF
Introduction to Clime
PPT
Introduction to Go programming
PDF
PHP & MySQL: PDO x MySQLi
PDF
Writing Fast Code - PyCon HK 2015
PDF
Undo tech overview_201410
PDF
Garbage collector и управление памятью в Go
PDF
Parallel Computing Example with Raspberry Pi Cluster
PPTX
Type script新鮮貨報你知
PDF
Programming with Python - Adv.
PPTX
Padding oracle [opkoko2011]
PDF
Symfony live 2017_php7_performances
PPTX
Python with a SWIG of c++
PDF
Debugging Drupal with Xdebug
PPTX
Ruby Loves Dot Net
PPTX
Golang iran - tutorial go programming language - Preliminary
Violent python
All things py
Happy hacking with Plone
Introduction to Python
GDB: A Lot More Than You Knew
Introduction to Clime
Introduction to Go programming
PHP & MySQL: PDO x MySQLi
Writing Fast Code - PyCon HK 2015
Undo tech overview_201410
Garbage collector и управление памятью в Go
Parallel Computing Example with Raspberry Pi Cluster
Type script新鮮貨報你知
Programming with Python - Adv.
Padding oracle [opkoko2011]
Symfony live 2017_php7_performances
Python with a SWIG of c++
Debugging Drupal with Xdebug
Ruby Loves Dot Net
Golang iran - tutorial go programming language - Preliminary
Ad

Similar to Lowcode: Redoing NativeBoost Portably (12)

PDF
NativeBoost
PDF
NativeBoost
PDF
PharoDAYS 2015: FFI - The good, the bad and the ugly by Esteban Lorenzano
PDF
Share the Experience of Using Embedded Development Board
PDF
NYU hacknight, april 6, 2016
ODP
PDF
RISC-V Zce Extension
PDF
learning STM -32
PDF
PDF
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
PDF
Music player case study using C++ and others
PDF
Music player case study using C++ and others 2
NativeBoost
NativeBoost
PharoDAYS 2015: FFI - The good, the bad and the ugly by Esteban Lorenzano
Share the Experience of Using Embedded Development Board
NYU hacknight, april 6, 2016
RISC-V Zce Extension
learning STM -32
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
Music player case study using C++ and others
Music player case study using C++ and others 2
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
L1 - Introduction to python Backend.pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
assetexplorer- product-overview - presentation
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Navsoft: AI-Powered Business Solutions & Custom Software Development
L1 - Introduction to python Backend.pptx
Softaken Excel to vCard Converter Software.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Designing Intelligence for the Shop Floor.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
Reimagine Home Health with the Power of Agentic AI​
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Nekopoi APK 2025 free lastest update
Digital Systems & Binary Numbers (comprehensive )
Which alternative to Crystal Reports is best for small or large businesses.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
assetexplorer- product-overview - presentation
Operating system designcfffgfgggggggvggggggggg
Wondershare Filmora 15 Crack With Activation Key [2025
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus

Lowcode: Redoing NativeBoost Portably

  • 1. Lowcode Redoing NativeBoost Portably Ronie Salgado
  • 2. The Current FFI Problem ● SqueakFFI/ThreadedFFI, Alien, NativeBoost. ● The callbacks ● Performance ● Raw memory manipulation?
  • 3. Ways of interfacing with C ● Extend the Interpreter. Done in Java(JNI), Lua, Python ● Just call. Done in .Net, D
  • 4. Extending the Interpreter Python Example. Source: https://docs.python.org/2/extending/extending.html
  • 6. Why I do not like NativeBoost
  • 8. What I would like to do ffiFloat32AtOffsetPut: zeroBasedOffset put: value (float*)self atOffset: zeroBasedOffset put: value The actual syntax has to be discussed.
  • 9. What I also want to do ffiFloat32AtOffsetPut: zeroBasedOffset put: value { ((float*)self)[0] = value; }
  • 10. How it is done ● Extend the Sista Extended Bytecode set. ● Expose basic CPU primitive type. ● Implemented in the VM. ● Implemented in plugins.
  • 11. Many Backends ● C Interpreter plugin. (Done) ● C++ LLVM plugin. (Done) ● VirtualCPU. (Incomplete) ● StackInterpreter. (ToDo) ● Cogit. (ToDo)