May 13, 1-2 AM (2)
May 13, 2-3 AM (5)
May 13, 3-4 AM (2)
May 13, 4-5 AM (5)
May 13, 5-6 AM (29)
May 13, 6-7 AM (52)
May 13, 7-8 AM (43)
May 13, 8-9 AM (44)
May 13, 9-10 AM (21)
May 13, 10-11 AM (22)
May 13, 11-12 PM (47)
May 13, 12-1 PM (25)
May 13, 1-2 PM (44)
May 13, 2-3 PM (57)
May 13, 3-4 PM (42)
May 13, 4-5 PM (33)
May 13, 5-6 PM (30)
May 13, 6-7 PM (51)
May 13, 7-8 PM (33)
May 13, 8-9 PM (9)
May 13, 9-10 PM (24)
May 13, 10-11 PM (30)
May 13, 11-12 AM (11)
May 14, 12-1 AM (18)
May 14, 1-2 AM (3)
May 14, 2-3 AM (4)
May 14, 3-4 AM (21)
May 14, 4-5 AM (11)
May 14, 5-6 AM (18)
May 14, 6-7 AM (18)
May 14, 7-8 AM (47)
May 14, 8-9 AM (53)
May 14, 9-10 AM (35)
May 14, 10-11 AM (20)
May 14, 11-12 PM (114)
May 14, 12-1 PM (54)
May 14, 1-2 PM (151)
May 14, 2-3 PM (32)
May 14, 3-4 PM (17)
May 14, 4-5 PM (14)
May 14, 5-6 PM (38)
May 14, 6-7 PM (12)
May 14, 7-8 PM (22)
May 14, 8-9 PM (37)
May 14, 9-10 PM (35)
May 14, 10-11 PM (27)
May 14, 11-12 AM (14)
May 15, 12-1 AM (18)
May 15, 1-2 AM (15)
May 15, 2-3 AM (5)
May 15, 3-4 AM (3)
May 15, 4-5 AM (13)
May 15, 5-6 AM (14)
May 15, 6-7 AM (10)
May 15, 7-8 AM (31)
May 15, 8-9 AM (23)
May 15, 9-10 AM (52)
May 15, 10-11 AM (71)
May 15, 11-12 PM (70)
May 15, 12-1 PM (73)
May 15, 1-2 PM (73)
May 15, 2-3 PM (66)
May 15, 3-4 PM (26)
May 15, 4-5 PM (13)
May 15, 5-6 PM (30)
May 15, 6-7 PM (29)
May 15, 7-8 PM (25)
May 15, 8-9 PM (8)
May 15, 9-10 PM (34)
May 15, 10-11 PM (34)
May 15, 11-12 AM (25)
May 16, 12-1 AM (2)
May 16, 1-2 AM (2)
May 16, 2-3 AM (3)
May 16, 3-4 AM (3)
May 16, 4-5 AM (0)
May 16, 5-6 AM (6)
May 16, 6-7 AM (2)
May 16, 7-8 AM (10)
May 16, 8-9 AM (1)
May 16, 9-10 AM (2)
May 16, 10-11 AM (1)
May 16, 11-12 PM (13)
May 16, 12-1 PM (11)
May 16, 1-2 PM (8)
May 16, 2-3 PM (15)
May 16, 3-4 PM (10)
May 16, 4-5 PM (2)
May 16, 5-6 PM (2)
May 16, 6-7 PM (2)
May 16, 7-8 PM (10)
May 16, 8-9 PM (6)
May 16, 9-10 PM (9)
May 16, 10-11 PM (29)
May 16, 11-12 AM (42)
May 17, 12-1 AM (9)
May 17, 1-2 AM (1)
May 17, 2-3 AM (0)
May 17, 3-4 AM (1)
May 17, 4-5 AM (0)
May 17, 5-6 AM (3)
May 17, 6-7 AM (2)
May 17, 7-8 AM (1)
May 17, 8-9 AM (1)
May 17, 9-10 AM (1)
May 17, 10-11 AM (6)
May 17, 11-12 PM (6)
May 17, 12-1 PM (4)
May 17, 1-2 PM (5)
May 17, 2-3 PM (9)
May 17, 3-4 PM (4)
May 17, 4-5 PM (8)
May 17, 5-6 PM (14)
May 17, 6-7 PM (10)
May 17, 7-8 PM (2)
May 17, 8-9 PM (4)
May 17, 9-10 PM (2)
May 17, 10-11 PM (20)
May 17, 11-12 AM (13)
May 18, 12-1 AM (10)
May 18, 1-2 AM (4)
May 18, 2-3 AM (5)
May 18, 3-4 AM (9)
May 18, 4-5 AM (14)
May 18, 5-6 AM (2)
May 18, 6-7 AM (37)
May 18, 7-8 AM (28)
May 18, 8-9 AM (35)
May 18, 9-10 AM (41)
May 18, 10-11 AM (42)
May 18, 11-12 PM (27)
May 18, 12-1 PM (134)
May 18, 1-2 PM (33)
May 18, 2-3 PM (83)
May 18, 3-4 PM (33)
May 18, 4-5 PM (44)
May 18, 5-6 PM (21)
May 18, 6-7 PM (16)
May 18, 7-8 PM (10)
May 18, 8-9 PM (22)
May 18, 9-10 PM (4)
May 18, 10-11 PM (25)
May 18, 11-12 AM (12)
May 19, 12-1 AM (7)
May 19, 1-2 AM (2)
May 19, 2-3 AM (9)
May 19, 3-4 AM (5)
May 19, 4-5 AM (10)
May 19, 5-6 AM (3)
May 19, 6-7 AM (52)
May 19, 7-8 AM (22)
May 19, 8-9 AM (45)
May 19, 9-10 AM (66)
May 19, 10-11 AM (30)
May 19, 11-12 PM (47)
May 19, 12-1 PM (79)
May 19, 1-2 PM (70)
May 19, 2-3 PM (41)
May 19, 3-4 PM (50)
May 19, 4-5 PM (15)
May 19, 5-6 PM (17)
May 19, 6-7 PM (18)
May 19, 7-8 PM (7)
May 19, 8-9 PM (19)
May 19, 9-10 PM (10)
May 19, 10-11 PM (28)
May 19, 11-12 AM (13)
May 20, 12-1 AM (20)
May 20, 1-2 AM (0)
3,928 commits this week May 13, 2026 - May 20, 2026
Refactor Ledger PoV proof for new symmetric CERTS-pov (CIP-159)
After moving direct-deposit application from LEDGER-V into POST-CERT,
CERTS-pov now produces a symmetric "consumed = produced" equation:

  getCoin s₁ + getCoin (DirectDepositsOf Γ)
  ≡ getCoin sₙ + getCoin (WithdrawalsOf Γ)

Thread the direct-deposit term through the LEDGER-pov proof:

* SUBLEDGERS-certs-pov gains "+ sum (map ddwl stxs)" on the LHS,
  where ddwl = getCoin ∘ DirectDepositsOf is the per-sub-tx
  direct-deposit total (analogous to wdrwl).

* combined-certs gains "+ allDirectDeps" on the LHS, composing the
  per-sub CERTS-pov chain with the top-level call.

* The main LEDGER-V chain wraps the result in +-cancelʳ-≡ to
  discharge the asymmetric "+ allDirectDeps" combined-certs introduces.

Removed:

* The certStateFinal local definition (LEDGER-V no longer applies
  applyDirectDeposits).
* step-ii and the applyDirectDeposits-rewardsBalance module parameter
  (subsumed by indexedSumᵛ'-∪⁺ inside POST-CERT-pov).
* The DD-split module parameter (subsumed by per-tx CERTS-pov chain).
* Stale "Key Lemma" subsection and stale commented-out lines in bat'.
* Unused imports +-identityʳ and +-0-monoid.
* Redundant local aliases in bat's where-block.

Documentation: rewrote "Key Differences from Conway" point 2 and the
LEDGER-V Proof Outline to reflect the new architecture; clarified the
LEDGER-I outline.
v2 builder: fix musl iserv-dyn libgcc lookup; restrict rpath rewrite walk
Two changes that unblock musl64 TH builds:

1. Set `LD_LIBRARY_PATH=<musl-gcc-libs>/lib` on `stdenv.hostPlatform.isMusl`
   so iserv-dyn can resolve `libgcc_s.so.1` from `libstdc++.so` at TH-eval
   time.  Same workaround `comp-builder.nix` has carried for v1; without
   it, `musl64.tests.th-dlls.build` fails with `Error loading shared
   library libgcc_s.so.1` because musl's `libstdc++.so` only carries
   `RUNPATH=<musl libc dir>` (not the gcc lib dir) and musl's dyld only
   consults the immediate library's RUNPATH when resolving its deps.

   That same `LD_LIBRARY_PATH` leaks into every subprocess we spawn,
   including patchelf — a glibc binary built against glibc's
   `libgcc_s.so.1`.  Letting patchelf dlopen the musl libgcc segfaults
   it (which was also the source of the `shrink-rpath` segfaults in
   fixupPhase we'd see on musl).  Prepend `unset LD_LIBRARY_PATH` to the
   rpath rewrite block on musl; nothing in the rest of installPhase or
   fixupPhase needs the iserv search path.

2. Restrict the rpath-walk's `find` to ELF / Mach-O candidates — `.so*`,
   `.dylib*`, and any file under `bin/` — so the rewrite functions
   don't have to defend against `.hi`, `.a`, `cabal-hash.txt`, etc.

The only remaining defence on the elf side is `|| return 0` on
`patchelf --print-rpath`, which the filter doesn't help with: musl exe
slices link statically (`executable-static: True`) and patchelf bails
with `cannot find section '.dynamic'` on those — comment notes it.

Confirmed:
  * x86_64-linux musl64 th-dlls.build (previously failing with both
    `libgcc_s.so.1` and the dep-resolution dyld error)
  * x86_64-linux native with-packages.run
  * x86_64-darwin native exe-lib-dlls.build-profiled