arXiv:2109.01950cs.PL
Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version)
Early discovery. Linked by one identifiable commenter. This paper is outside the main ranking; a mention is not an endorsement.
Abstract
As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. Informally, a function is type stable if the type of the output depends only on the types of the inputs, not their values. This paper provides a formal definition of type stability as well as a stronger property of type groundedness, shows that groundedness enables compiler optimizations, and proves the compiler correct. We also perform a corpus analysis to uncover how these type-related properties manifest in practice.
Or more directly, the property of type groundedness + multiple dispatch allows for devirtualization of dispatches to get static-like performance in a dynamic language. That was the main design principle, which was a conjecture from Jeff's thesis later proven in a type-theoretic…
ChrisRackauckasView on HNParent context