[squeak-dev] SqueakNim - an FFI glue code tool
goran at krampe.se
Tue Aug 18 08:35:33 UTC 2015
Hi fellow Smalltalkers!
At 3DICC we are using Nim (http://nim-lang.org) to write our performance
critical code that typically otherwise would have been written in C/C++.
But now we have Nim :)
Nim can generate dlls/so libraries following C conventions so they can
easily be called via FFI.
Andreas Rumpf (author of Nim who works with us) wrote a small utility
called SqueakNim - its a set of Nim macros that generates the .st
primitive calls based on the Nim code, so it takes out some grunt work
and matches up types as far as it can. Simple, but very nice.
The docs etc are a bit unpolished, but the trivial example in "tests"
has comments in it and it works in Squeak 5, Pharo 3, Pharo 4 and I
guess in most versions of Squeak/Pharo.
Why would you be interested?
- Nim is great fun! C/C++ is torture. Same performance, nuff said.
- Nim has a tool called c2nim that wraps C *and* C++ libraries.
That last part is a killer. We use c2nim to wrap Urho3D - a huge C++
game engine, works great, and that wrapper is also open source btw,
How do I use it? See README at:
For some more information my article (predating this tool) might have
...and if you want to ask questions, hop onto freenode on either
#squeak, #pharo or #nim. Me and Andreas are around.
More information about the Squeak-dev