Bootstrapping a Compiler with Yul
summary
Claim: Yul lets Fe bootstrap a working compiler quickly by generating a Yul AST runtime that the Solidity compiler emits to bytecode. Implementation uses the yulzer crate and Rust declarative macros to emit hundreds of boilerplate runtime functions (ABI encode/decode, storage access, event emits) and a generated dispatcher switch that maps public functions; the backend then applies optimizations that drop unused helpers. It works and is reasonably gas‑efficient, but embedding the Solidity toolchain adds build time and system dependencies.
AI-written summary · about
chapters (6)
related talks
38mDemystifying compilers by writing your own
41mBattle of the Languages
30mHow to solve stack too deep errors: a Yul to EVM pipeline
25msolx: an LLVM-based Solidity toolchain
20mSlang Building Solidity Compiler APIs from a Declarative Language Specification
11mFormally Verifying YUL Level Static Analyses and Optimization with Coq
31mThe AST Galaxy to the Virtual Machine Blues
09mRustc: How I Learned to Respect the Compiler
