Gabriel Baraldi
Sessions
With Julia 1.12, experimental support for statically compiled executables is here, but for many the --trim
feature is still a mystery. How does it work? What are its limitations? What might it look like in the future?
To answer those questions, we'll dive deep into specialized inference support, challenging language semantics, and sharp corners in workflows today. Looking to the future, we'll talk about the tooling we might need to make --trim
accessible for everyday Julia programmers.
Performing I/O in Julia under static compilation requires new considerations. In particular, juliac's --trim feature requires that the types returned from I/O calls be known statically at compile time or at least be enumerated. While this allows for small binaries, it does limit how dynamic statically compiled Julia I/O programs can be. This has required modifications to existing I/O packages as well as a new versions of I/O packages to implement these static features.