Loose threads
Projects
- Blog
- Engine
- Hosting
- Inspiration
- Forge
- Contributing to jq
- Contributing to egglog
- Finish Bitwuzla bindings
Topics
Resources I want to explore further, grouped by topic. This functions
additionally as a reading list.
- Compiler and language design
- Language server
- Front-end
- IR
- Runtime
- Hardware
- From Nand to Tetris
- Nandgame (and r/nandgame_u)
- MHRD: game to design CPU in
hardware description language
- Bitwise: series to build a hardware
and software stack from scratch
- Languages
- WebAssembly
- Rust
- Tree Borrows
by Neven Villani (2023)
- Prusti [src]:
automated static program verifier for Rust, built at ETHZ
- Haskell
- Idris
- Structured concurrency
- In “References are like jumps”
(2024), without.boats briefly discusses how Rust formerly had structured
concurrency and its benefits, namely that it eliminates dynamic locking.
This article (but not structured concurrency) was followed up on
by Grayden Hoare.
- Is structured concurrency as powerful as structured control flow? What
patterns are not possible with it (cf. generators with structured control
flow).
- Formal methods
- Programming Z3
(Nikolaj Bjørner, Leonardo de Moura, Lev Nachmanson, and Christoph
Wintersteiger, 2018) [git]
- “Bitwuzla”
(Aina Niemetz and Mathias Preiner, 2023)
- What I’ve Learned About Formal Methods In Half a Year
by Jakob Kreuze (2023) [HN
describes what the author learned from CSCI 1710: Logic for Systems
(model checking with Alloy) and CSCI 1951x Formal Proof and Verification
(formal verification with Lean) at Brown. In the latter, they implemented
Scheme in Lean. Resources mentioned:
- General purpose programming in Lean
(and briefly other proof assistants)
- “Pancake: Verified Systems Programming Made Sweeter”
(Johannes Åman Pohjola, Hira Taqdees Syeda, Miki Tanaka, Krishnan Winter,
Gordon Sau, Ben Nott, Tiana Tsang Ung, Craig McLaughlin, Remy Seassau,
Magnus Myreen, Michael Norrish, and Gernot Heiser, PLOS 2023)
- Computing history
- Bootstrapping
- Performance
- Systems
- Rust
- cross: cross-compilation and
cross-testing of crates
- cxx: safe interop between Rust and C++
- Gxhash: fast non-cryptograph hashing
algorithm
- insta: snapshot testing
- self_cell: self-referential
structs
- Ryu: IEEE-754 fast and accurate string
formatting
- Dash: offline API documentation browser for macOS
- VSCode LLVM Compiler Explorer:
exploring LLVM IR and machine IR after each pass
Developments to follow
- ipnsort
is a sorting algorithm by Lukas Bergdoll, which performs at the top of
benchmarks for unstable sorts, passes all safety and correctness criteria,
and is designed as the new Rust
slice::sort_unstable
(as mentioned on HN)
Other