[ANN] StaticTools.jl: Enabling StaticCompiler.jl-based compilation of Julia code to standalone native binaries by avoiding GC allocations and `llvmcall`-ing all the things

Technically this one has been registered for a couple months already, but we never made an announcement, so here goes! GitHub - brenhinkeller/StaticTools.jl: Enabling StaticCompiler.jl-based compilation of Julia code to standalone native binaries by avoiding GC allocations and llvmcall-ing all the things!

I’ve just released version 0.3, which brings a lot of major changes. While it’s still a somewhat experimental package, I think it’s at least to some extent ready for other folks to use, or just to explore and see if the techniques herein could be useful in other contexts.

While the examples in the README currently focus on command-line executables, all the techniques here for making things standalone-StaticCompiler-able will also work for making .so/.dylib shared libraries that could be called from other languages (as in Successful Static Compilation of Julia Code for use in Production) – just switch from StaticCompiler.compile_executable to StaticCompiler.compile_shlib.

PRs welcome!

59 Likes

One fun example: Mandelbrot Set in the terminal with compiled Julia - YouTube

9 Likes

Nice demo! It is cool to see the static compilation effort progressing.

5 Likes