Our great sponsors
-
compiler
an incomplete toy barebones compiler backend for amd64 x86_64 in Python and an incomplete JIT compiler written in C (by samsquire)
-
AECforWebAssembly
A port of ArithmeticExpressionCompiler from x86 to WebAssembly, so that the programs written in the language can run in a browser. The compiler has been rewritten from JavaScript into C++.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
PicoBlaze_Simulator_in_JS
Simulator (more accurately: an assembler and an emulator) for Xilinx PicoBlaze, runnable in a browser.
400 lines of code? Wow! My first compiler had 2'000 lines of code. And my second compiler has 5'500 lines of code.
A huge part of it is working on a compiler that's written in a language that helps avoid mistakes. Even when I was doing C++ regularly I never even tried diving into Clang, because I "knew" I'd be in a mess of complicated manual stuff that I was sure I'd break somehow. But with Rust, I first did a trivial compiler change https://github.com/rust-lang/rust/pull/42275/files#diff-3675ead66a843fefc1a0ac141fac8adeac7899e87979e79d2b4cd2dddd11c2b2, and that was non-terrible enough that I tried a slightly bigger change https://github.com/rust-lang/rust/pull/46264/files#diff-265ef672b5d778c5debaca696bc903a604165df54c44ea4bff07a2369b92e90d, and while I'm far from an expert on the compiler, now I can just go add stuff https://github.com/rust-lang/rust/pull/96376 and it's no big deal.
My first assembler+simulator is 3'000 lines of code.