2025-07-25 –, Main Room 1 (Main stage)
Julia 1.12 introduced significant changes to the semantics of global bindings and world ages. In particular, constant redefinition is now permitted in all cases (and the cases previously allowed are no longer considered undefined behavior). As an immediate consequence, struct redefinition is now possible, resolving the biggest remaining case in which Revise.jl was unable to hot-reload changed code. This talk will provide an overview of the new semantics, including common pitfalls.
This is a user-facing talk to put together in one place the entire story of the 1.12 era world-age and binding semantics changes (of which there are multiple related, but independent ones). The hope is to demystify the world-age mechanism for the average Julia user, and serve as useful reference as users upgrade to 1.12 and may start seeing additional world age errors not present on prior Julia versions.
Keno Fischer is one of the core developers of the Julia programming language and co-founder and CTO at JuliaHub. His earliest involvement with the Julia project was the port of Julia to Windows, the creation of (the current iteration of) the Julia REPL, the Julia optimizer, Julia’s --bug-report
feature as well as numerous other language features and packages. Within the Julia community, he is known for creating packages that push the boundary of possibilities of the language and ability to debug even the thorniest of issues. He holds an A.M. degree in Physics from Harvard University.