Repository navigation
Conversation
…ing spikes The tla recipes move from TLC 1.7.4 on Java 8 to TLC 1.8.0 on Java 21 (nixpkgs#tlaplus18), run niced with a 4 GB heap, and write no trace spec beside the model. The verify skills run TLC through quest gate. Plans a spike of Rust TLA+ checkers and a spike of exhaustive search over route::tests::Sim. Co-Authored-By: Claude <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three TLC runs from one session's ad-hoc scripts took 10 to 13 of a 24-core desktop's cores for over an hour and held every other session's
quest gateshut. This PR makes a TLC run cheaper and polite, and plans two ways to check faster.tlarecipes (rs/justfile,js/justfile) run TLC 1.8.0 on Java 21 (nixpkgs#tlaplus18) instead of TLC 1.7.4 on Java 8 (nixpkgs#tlaplus).nice -n 19with a 4 GB heap. The JVM default is a quarter of RAM per run, which was 14 GB each here.-noGenerateSpecTE: TLC 1.8.0 otherwise writes a*_TTrace_*.tlaand.binbeside the spec on every broken rule.verify-*skills run their commands throughquest gate. Thersrecipe's comment says how to pass a spec outsiders/, so a generated config needs no runner of its own.quest/m1/tla-native-checker.md[M]: spike the Rust TLA+ checkers.quest/m1/route-exhaustive-sim.md[M]: spike an exhaustive search overroute::tests::Simon the realRouter.Measurements
RouteHandoff.cfg, 24 workers, on the 24-core desktop while other sessions were building (load average 25 to 43). Every run generated 17,671,735 states and found 3,674,389 distinct.OffHeapDiskFPSetOffHeapDiskFPSetandBAQueueWorker sweep on TLC 1.8.0 with a 4 GB heap, on a quieter host:
Decisions
Maintainer, /quest-plan, 2026-11-10:
Sim, in m1.Simsearch is hand-written (rejected:stateright; building both).Choices made without asking
-workers autostays. CPU-seconds were near flat from 2 to 24 workers, so a cap would slow a run without saving work.BAQueue: neither helped.js/*/verify/READMEs keep their plain commands; they are for people, and #8483 rewrites those lines.Checks
quest check: pass.just rs tla moq-net/verify/route/RouteHandoff.tla -config rs/moq-net/verify/route/CountToInfinity.cfgandjust js tla room/verify/Room.tla: both break their open finding's rule (exit 12) as before, on Java 21 with a 3.6 GB heap, and leave no file behind.just check: not finished. A justfile change selects the whole Rust and JS suites; the run was cancelled after 25 minutes withcheck rsstill waiting.RouteHandoff.cfgwas compared state for state between the two TLC versions.Public API: none. Wire: none.
Follow-ups
None beyond the two quests.
Models
Size: S
Implementer: Claude Code, claude-fable-5-2, high effort
(Written by Claude Fable 5 with high)
🤖 Generated with Claude Code