| title | Watching now |
|---|---|
| layout | page |
| permalink | /watching/ |
Here are some projects that are occupying some brain space and that I am keeping an eye on, in no particular order (to demonstrate that, I shuffled before publishing). Some are because they do a lot with a small amount of code/people, some are because they feel like they are poking at something very new and cool, and some are excellent learning resources.
- Roc, a fast, friendly programming language
- YJIT, a JIT for Ruby based on Maxime's research on basic block versioning
- bril, an educational compiler IR
- AtomVM, a small BEAM (Erlang) VM for small devices
- onramp, a bootstrapping C compiler
- wild, an incremental linker
- Taskflow, a graph-based parallel task system
- Alan, an autoscalable programming language
- elfconv, an ELF to Wasm AOT compiler
- bifrost, a p2p library that supports multiple transports
- dulwich, a pure Python Git implementation
- HVM, a massively parallel interaction combinator VM for the GPU
- Pyret, a functional programming language with some excellent ideas and a great pedagogical focus
- ir, the JIT internals for PHP
- Iroh, a toolkit for building distributed applications
- simple-abstract-interpreter, just what it says on the tin
- ssa-optimizer, an educational SSA-based optimizer
- micrograd, ccml, and cccc, small, educational autodiff libraries
- Natalie, an AOT Ruby compiler
- plzoo, which has multiple different small PL implementations with different semantics
- tinygrad, a small autodiff library with big plans
- MaPLe compiper, a compiler for automatic fork/join parallelism in SML
- try, to inspect a command's effects before modifying your live system
- mold, a fast and parallel linker
- monoruby, a full Ruby VM and JIT by one person
- MicroHs, Haskell implemented with combinators in a small C++ core
- Cake, a C23 frontend and compiler to older C versions
- Toit, a VM from the Strongtalk lineage and management software for fleets of ESP32s
- Cosmopolitan, a C library that can build very portable self-contained binaries
- gf, a very usable GUI GDB frontend
- MatMul-free LLM, an implementation of transformer-based large language models without matrix multiplication
- Bun, a fast JS runtime based on JavaScriptCore
- Porffor, a from-scratch AOT JS engine
- weval, a WebAssembly partial evaluator
- Riker, correct and fast incremental builds using system call tracing
- arcan, a new display server and window system
- container2wasm, to run containers in WebAssembly
- LPython, a very early stages optimizing Python compiler
- Pydrofoil, a fast RISC-V emulator based on RPython, the PyPy internals
- Fil-C, a project where Fil Pizlo is making a memory-safe version of C
- Oil shell, a new Bash-compatible shell with fresh ideas and its own Python-esque compiler
- bigint, a small arbitrary precision integer library for C
- chibicc
- bcgen, which is kind of like Ertl's VMGen, and copyjit, which is like Copy and Patch
- joos, a KVM virtual machine manager in JavaScript
- pocketpy, a little Python implementation that can be bundled into one C file
- gate, content-addressable Wasm RPC/RCE
- cjit, a JIT for C
- wuffs, a safe and hermetic programming language for dealing with file formats
- this is one of the coolest projects I have seen in a while
Not quite code but presenting very cool ideas:
- Verifying your whole register allocator too hard? No problem, just write a verifier for a given allocation and abort if it fails. This also lends itself nicely to fuzzing for automatically exploring large program state spaces.
- Copy and Patch (PDF) compilation, which generates pretty fast code very quickly
- Related: Deegen, which gives you an interpreter and a JIT with caching and other goodies
- Egg, and more broadly egraphs, for program IRs
- Implementing a Toy Optimizer and union-find in general
- (To-be-written) Using Z3 to prove your static analyzer correct
- More Stupid Z3Py Tricks: Simple Proofs is a good jumping-off point, as is Compiling with Constraints
- (To-be-written) From union-find to egraphs; exploring the tradeoffs
- UPDATE: I wrote it!
- a simple semi-space collector explains how semi-space GCs work in ~100 lines of C
- Note: the zero-length array member
payloadis non-standard and probably not needed - Note:
is_forwardedshould actually check if if the masked tag is== 0
- Note: the zero-length array member
- just-in-time code generation within webassembly and its accompanying wasm-jit
- Regular Expression Matching: the Virtual Machine Approach
- Interaction nets and HVM
- Make Your Self
- Cheney list copying / GC
- Cheney on the MTA
- Escape analysis and dead code elimination as compile-time GC
- PGO for DCE: tweet one and tweet two
- Nostr, but without all the blockchain stuff
What I am working on:
- Scrapscript, an interpreter and compiler for a small functional language
- Dr Wenowdis (PDF), where CF Bolz-Tereick and I are working on making C extensions faster in PyPy
- A small rasterizer for my graphics class that uses fenster
- weval-ing CPython
- Introduction to Software Development Tooling