Fil-C on Nix

Filnix wiki

mbrock/filnix

tests/determinate-nix/race3.nix

Force one failing thunk from many threads (builtins.parallel + tryEval), then report it once more. The final error's trace shows every frame that any thread ever prepended to the one shared exception object.

λn?
ndefault 2000
let
8bad=
builtins.throw"shared failure"
used by xs
9xs=
builtins.genListi: builtins.tryEvalbuiltins.addbad i n
uses bad used by failures
10failures=
builtins.lengthbuiltins.filterr: ¬r.success xs
uses xs
in
builtins.parallelxs builtins.seqfailures builtins.sub0 bad