Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version).

2021 
Performance is serious business for a scientific programming language. Success in that niche hinges on fostering a rich ecosystem of highly optimized mathematical libraries. The Julia language is predicated on the bet that its users can write efficient numerical code in the language itself, without having to resort to C or Fortran. To avoid performance pathologies, Julia programmers strive to write code that is type stable. 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.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    23
    References
    1
    Citations
    NaN
    KQI
    []