0.9.1: within-tier mining progress - #41
Merged
Merged
Conversation
A length tier was an opaque wait: `mine_one_length` is one blocking, rayon-parallel call, and `find_rules` only printed a summary AFTER it returned -- so a mine sitting for days on the length-5+ combinatorial wall gave no sign of life or ETA. Now the Rust miner increments a process-global `(sources_done, sources_total)` counter per source (`stats::mine_tick`), exposed as `Engine.mining_progress()`, and `find_rules(verbose=True)` runs a daemon thread that polls it and prints `Length L: X/N sources (P%) | R src/s | ETA T | elapsed E | RSS M` at 20/60/180s then every SIMPLIPY_MINE_PROGRESS_INTERVAL seconds (default 600). Zero effect when verbose=False; the mine result is byte-identical (the counter is a relaxed atomic with no control-flow effect). Smoke-verified on a length-4 tier (73,854 sources): mid-tier report at 20s showed 93.6% done, 3,455 src/s, ETA. 71 Rust + 284 Python tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhLKRZHNh5nNjLZhZqym9w
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.
Adds within-tier progress reporting to the offline miner so a length tier is no longer an opaque wait.
mine_one_lengthis one blocking, rayon-parallel call;find_rulespreviously printed only an end-of-tier summary, so a mine sitting for days on the length-5+ combinatorial wall gave no sign of life or ETA. Now:(sources_done, sources_total)counter per source, exposed asEngine.mining_progress().find_rules(verbose=True)runs a daemon monitor that polls it and printsLength L: X/N sources (P%) | R src/s | ETA T | elapsed E | RSS Mat 20 / 60 / 180 s, then everySIMPLIPY_MINE_PROGRESS_INTERVALseconds (default 600).verbose=False; the mine result is byte-identical (relaxed atomic, no control-flow effect).Smoke-verified on a length-4 tier (73,854 sources): the 20 s report showed 93.6% done, 3,455 src/s, ETA. 71 Rust + 284 Python tests pass.
🤖 Generated with Claude Code
https://claude.ai/code/session_01EhLKRZHNh5nNjLZhZqym9w