A case for why Wasm is neither Web nor Assembly| Thunderseethe's Devlog
Turning our Base IR into executable WebAssembly| Thunderseethe's Devlog
Converting our lambda functions into closures for the Base IR.| Thunderseethe's Devlog
Making a Language This post is part of the making a language series . A series that teaches you how to implement a programming language using Rust. Today’s post is preceded by the base simplify pass . That pass, however, is not a prerequisite to understanding monomorphization. Monomorphization relies only on the IR introduced in lowering . We’ll review IR before the action starts. As we press deeper into the compiler, we strip away high level features that stand between us and machine cod...| Thunderseethe's Devlog
Optimizing our base IR via inlining| Thunderseethe's Devlog
Typechecking multiple applications at a time opens new opportunities for inferring types| Thunderseethe's Devlog
Last time saw us endeavoring upon a trilogy to bring rows crashing down from their high-flying AST nodes into the realities of our lowly IR. Our goals this time are less highfalutin. We’re going to be lowering items. I can’t tell you how relieved I am to see this titled “Part 7”, not “Part 7a”. Items represent top level functions in our language. In our previous work , which type checked items, we learned items differ from local variables in the types they’re allowed to have. Ou...| Thunderseethe's Devlog
Lowering row asts by generating evidence terms| Thunderseethe's Devlog
Lowering row evidence from our type scheme| Thunderseethe's Devlog
Explaining how we'll lower row types into our IR| Thunderseethe's Devlog
Implementation of our lowering function| thunderseethe's devlog
Lowering our typed base AST into a System-F based IR| thunderseethe's devlog
Row, row, row your types| thunderseethe's devlog