2026-08-14 –, Room 1
The first time you implement lowering, it takes parsed code, expands macros, and compiles it to linear, untyped IR. But then you get users. Users have questions like "can I figure out what code this compiled thing came from so I can make essential tools like Revise.jl?" and "can we write macros without so many esc calls?" and "why are errors after lowering so cryptic?" and "not a question, but Revise works now because I've written a program that correctly reverses lowering about 80% of the time."
This talk is about the second time you implement lowering.
JuliaLowering is an ongoing rewrite of macro expansion and lowering, the first few passes of the compiler that run immediately after parsing. Roughly, lowering analyzes and simplifies the symbolic structure of the code without referring to type information or global state.
The JuliaCon 2024 talk, "Dude, where's my code?", provided motivation and sketched a plan for rewriting the Julia compiler frontend, along with demonstrating some early progress. This talk follows by discussing the outcomes of that work. Covered topics will include technical details of the new lowering implementation, project status, lessons learned, and all the current or planned tooling improvements that make such a nontrivial rewrite worth doing.
Claire is a long time enthusiastic user of Julia and enjoys contributing to various
packages across the open source ecosystem, Julia standard libraries and
compiler. She love hearing about people's fascinating technical computing
adventures of all types! Find her at https://github.com/c42f
Compiler engineer at JuliaHub