Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version)
Autor: | Pelenitsyn, Artem, Belyakova, Julia, Chung, Benjamin, Tate, Ross, Vitek, Jan |
---|---|
Rok vydání: | 2021 |
Předmět: | |
Druh dokumentu: | Working Paper |
DOI: | 10.1145/3485527 |
Popis: | 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. Comment: OOPSLA '21, extended version |
Databáze: | arXiv |
Externí odkaz: |