JuliaCon 2025

Stefan Karpinski

Julia co-creator and JuliaHub co-founder.


Sessions

07-24
10:00
100min
The State and Future of Julia I/O
Mark Kittisopikul, Ph.D., Stefan Karpinski

The Julia I/O minisymposium will discuss the low-level details of Julia's input and output ecosystem and its interactions with the Julia Data ecosystem. The ability for Julia to read in and then write out data efficiently is critical to doing data science and scientific computing. Julia is unique in terms of input and output in that the language combines both dynamism and a parametric type system. In order for high-level data storage to succeed, a strong I/O foundation is required.

General
Main Room 5
07-24
10:00
30min
Why are float ranges so hard, and can we do better?
Stefan Karpinski

When you write a float range like 0.1:0.2:0.7 it seems obvious that you want the elements to be 1/10, 3/10, 5/10, 7/10. But the floating-point numbers 0.1, 0.2 and 0.7 are not exactly 1/10, 2/10 and 7/10—they are approximations of the form m/2^p. Guessing what any given float range was intended to mean turns out to be shockingly hard. Julia currently uses a heuristic that mostly works but still has some rather unfortunate failures. This talk explores how to solve this problem once and for all.

General
Main Room 1 (Main stage)
07-25
14:00
30min
Fixing Julia's task-local RNG: a bother, a bug, a breakthrough
Stefan Karpinski

Each task in Julia has its own PRNG. When a task is forked it needs to seed the child task's RNG. This talk is about the evolution of how we've done this and the novel technique we now use that solves the annoyances and bugs that plagued our previous approaches. We've generalized the DotMix algorithm designed by Leiserson et al. for the Cilk parallel runtime system, simplifying and strengthening it while retaining provable collision resistance.

General
Main Room 1 (Main stage)
07-25
15:00
30min
Pkg's new SAT-based version resolver
Stefan Karpinski

This talk introduces Julia’s new SAT-based version resolver, which overcomes various issues with the old resolver while being faster, more scalable, more flexible, and guaranteeing optimal solutions. Since it constructs a SAT instance encoding all dependencies and conflicts between versions, it also provides a powerful tool for solving related resolution-like problems. We'll cover how this approach works and explore additional use cases beyond version resolution.

General
Main Room 1 (Main stage)