2024-07-11 –, REPL (2, main stage)
Effect analysis, exception types, escape analysis, effect preconditions, non-standard specialization, optimized generics - the compiler team has been busy. What is this all about?
The foundational capability of the Julia compiler from its earliest versions has been a very sophisticated inter-procedural type inference. To a large extent, the capabilities and limitations of this analysis (including such concepts as "type stability") determine which API designs are possible in Julia, and which are prohibitive from a performance standpoint.
Over the past few releases and ongoing in current work, the static analysis capabilities of the Julia compiler have been expanded significantly and are no longer restricted solely to type inference. Julia 1.8 introduced the effect system to track additional properties, such as nothrow-ness, effectfulness and other properties. In Julia 1.11, the compiler started making use of escape analysis information for optimization and gained the capability to track and optimize exception types in addition to ordinary return types. Further enhancements are under consideration, including safer replacements of the @inbounds
and --check-bounds
macros.
In this talk we will look at the current and near future static analysis capabilities of the Julia compiler and explain how the Julia compiler uses these to make your code faster. In addition, we will discuss how these capabilities can be re-used for improving code correctness and how the general infrastructure in Core.Compiler
can be extended to custom analyses.
SRE at JuliaHub, Inc. Working on the Julia compiler. Creator of JET.jl.
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.