Daily Shaarli
August 21, 2026
Using DEBUG compilation slows down the compilation by nearly ~40 times.
Why ?
LLVM represents variable locations through DBG_VALUE records. Heavy function inlining can create hundreds of thousands of these records in a single function.
WebAssembly’s Register Stackify pass moves values from virtual registers onto the operand stack to produce compact, efficient wasm. While moving instructions, it repeatedly scans basic blocks to find and update debug records. Those linear scans are repeated for many definitions, while the pass also leaves invalidated records behind and creates new records for duplicated cheap computations. The result is quadratic work on increasingly large instruction lists.
As example:
Module: repro total codegen
Current Rust: 52.58s
LLM fix:7.12s
Author fix: 1.99s
SQLite can be used for many many applications.
Full-Text Search, JSON, high volume time serie data, Queue, Vector database, Cache (redis), file system (file under 100kB), graph database.
and again: the DB can fits in RAM or doesn't need a server. It's a simple file and avoid network requests for everything!
About some comparison:
For blobs under roughly 100KB, SQLite reads and writes faster than individual files on disk, and uses about 20% less space on top of it. The reason is that the file system charges you an open() and a close() and a directory traversal per item, while SQLite charges you one already-open file handle and a B-tree seek.
And here’s the kicker: a Redis GET over localhost is on the order of 100 microseconds. A SQLite point lookup against a warm page cache is on the order of 1 microsecond.