Shuhei Kadowaki

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.


Sessions

07-24
14:00
180min
Package development: improving engineering quality & latency
Tim Holy, Shuhei Kadowaki

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.

Red
07-30
12:30
30min
JET.jl: The next generation of code checker for Julia
Shuhei Kadowaki

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.

Blue
3min
A quick dive into Julia's type inference algorithm
Shuhei Kadowaki

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.