JuliaCon 2025

Gabriel Baraldi


Sessions

07-23
11:30
30min
State of --trim
Cody Tapscott, Jeff Bezanson, Gabriel Baraldi

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.

Developer tools
David Lawrence Hall Room 120 (Main stage)
07-24
11:20
10min
Static Compilation and I/O Vignettes: Using --trim with HDF5
Gabriel Baraldi

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.

The State and Future of Julia I/O
Cathedral of Learning Room 324
07-24
11:30
30min
Improving Julia's scheduler, one Task at a time
Gabriel Baraldi

Task based parallelism brings many advantages to Julia, the main one being that Tasks are lighter abstractions than OS threads. That is possible because we do the scheduling in user space, avoiding expensive context switches. None of this matters if the scheduler itself has poor performance. This year many improvements were made around an in it, so let's take a deep dive into what makes our scheduler work, how to write code that cooperates with it and how we've made it better.

Multithreading in Julia
Cathedral of Learning Room 332 (Thursday only)