Julia Belyakova

Jules: Type stability in the Julia language (2020–2021)

A formal definition of type stability and its impact on JIT compilation in the Julia language, with an analysis of the prevalence of type-stable code in popular Julia packages. Type stability of methods is important for performance of Julia programs, because it enables several key compiler optimizations such as specialization and devirtualization of dynamically dispatched method calls.

The formal definition is given with respect to Jules, a miniature language with multiple dynamic dispatch and an optimizing JIT compiler which performs type-based method specialization and devirtualization.