A research programmer working at Julia Lab, MIT. Working on Julia's compiler technology stack, mainly around its abstract interpretation based type inference. Also a maintainer of Julia IDEs, julia-vscode and Juno.
Julia holds immense promise for a composable package ecosystem. Potential obstacles to achieving this promise include missing methods for unanticipated types, unwitting type-piracy, poor performance due to inference failures, method ambiguities, and latency due to long compilation times and/or invalidation of previously-compiled code.
This workshop will tutor developers on the use of some recently-developed tools for detecting, diagnosing, and fixing such problems.
Julia's extreme expressiveness and composability come from its dynamism – at the cost of that, a static type check of Julia code has been remained as a longstanding problem.
JET.jl is a fresh approach to static analysis of such a dynamic language; it can detect type-level errors given a pure Julia script within a practical speed.
In this talk we will first give an overview of its features and basic usages, and then move to a discussion of its internals, current limitations and future works.
This poster will introduce the abstract interpretation algorithm proposed by "Mohnen, M., 2002, April. A graph-free approach to data-flow analysis", that Julia's type inference routine is based on, along with a sample Julia implementation of it.
We will also explain how the original algorithm is partially wrong as well as how it can be fixed, and also hopefully present the corrected proofs of the algorithm's termination and correctness.