Year-1 circular laser vs chainsaw PERF-GATE + ratchet JSON feed - #129
Open
grootstebozewolf wants to merge 6 commits into
Open
Year-1 circular laser vs chainsaw PERF-GATE + ratchet JSON feed#129grootstebozewolf wants to merge 6 commits into
grootstebozewolf wants to merge 6 commits into
Conversation
Stdout-only timings were discarded; gates now write target/laser-ratchet/rows.jsonl via LaserRatchetSink so Proofs can vendor doc/laser-ratchet.json the same day. Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
Assemble doc/laser-ratchet.json from PerfGate rows (tip 29b5d16 / post-#128). Scoreboard this run: green 119, chainsaw-only 13. Previously ungauged WKB/DHD/ Hausdorff/Fréchet/LEC/MultiCurve now have now_*. ReverseDispatch has no red column. Zoo, 64-a, N-SS, and SHARED_SNAPPED_RAY walk stay HOLD. Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
grootstebozewolf
marked this pull request as ready for review
September 1, 2026 06:14
Add .github/workflows/laser-ratchet.yml (not overloaded onto build-and-test.yml). Path-filtered to circular laser files; JDK 1.8. Uploads the JSON always. On push to feature/sfa-curve-rgr, commits a retip when the feed changed ([skip ci] stops the loop). Proofs repository_dispatch is optional — GITHUB_TOKEN cannot cross-repo. Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
Check out a branch ref so the retip push is not a detached HEAD. Grant actions:write so the JSON artifact can upload (permissions replace the default token scopes). Path-filter the Year-1 primitive gates. The previous workflow commit body contained a skip-ci token and GitHub skipped every check on that SHA. Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
Surefire 3.x on build-tools treats -Dtest= as specified tests and exits when none match. failIfNoTests is the 2.x name; CI needs surefire.failIfNoSpecifiedTests=false so -am can walk the reactor. Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
Retip feed notes and Year-1 HOLD lists so the four unimplemented Exact* names and ClothoidHalley are not treated as leftover work on this fork. implemented:false / measured:false unchanged. Bible §2, §3, Year-2 period table, and A1 membership text are untouched. Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
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.
Year-1 circular laser vs chainsaw (post-#128)
Base:
feature/sfa-curve-rgr@316258a8149073a88341a2548f4a0af5aa4d4441(merge of PR #128).Measured SHA:
29b5d169(emitter only; no laser algorithm change). Feed:doc/laser-ratchet.json.Year-2 zoo is library work, not a leftover on JTS PR #7.
GitHub Action
New workflow:
.github/workflows/laser-ratchet.yml— not overloaded ontobuild-and-test.yml.workflow_dispatch;pushtofeature/sfa-curve-rgrandpull_request, path-filtered to Year-1 circular laser files (*PerfGate*,exactcurve/**,overlayng/curve/**,DistanceConstructionPerfGate*, P1-A / P1-B, ratchet docs, this workflow, the sink/scripts). Clothoid-only / N-SS / HotPixel / 64-a paths are not a reason to expand those.actions/setup-java@v1(same asbuild-and-test.yml). Java 8 language level unchanged.dev/run-year1-laser-ratchet.sh(Year-1 circular PerfGates + P1-A/P1-B; writesdoc/laser-ratchet.jsonfrom JSONL; stdout-only is the bug) → uploaddoc/laser-ratchet.json+rows.jsonlas artifact (if: always(), needsactions: writebecause apermissions:block replaces default token scopes).-amwalksbuild-tools. Surefire 3.x needs-Dsurefire.failIfNoSpecifiedTests=false(the 2.x namefailIfNoTestsis not enough). First Laser-ratchet CI on8c8bdce8died there in 26s.git log -- doc/laser-ratchet.json. On push tofeature/sfa-curve-rgr(notpull_request, not forks), if the JSON changed, the job commitschore(laser): retip doc/laser-ratchet.jsonwith a skip-ci token (contents: write). No diff → no commit. That token is only for the bot retip; putting it in a human commit body skips every check on that SHA (that is whyaf434eefhad no CI).repository_dispatchtypelaser-ratchettogrootstebozewolf/NetTopologySuite.Proofs(docs/laser-ratchet.jsonis their SoT; we usedoc/).GITHUB_TOKENcannot cross-repo. UnsetPROOFS_DISPATCH_TOKEN→ skip; the jts job does not fail. No secret is required for this PR.Local:
bash dev/run-year1-laser-ratchet.sh(a) Already locked (laser vs chainsaw)
6b1dbac1— Year-1 lock (ExactCircularArc, thinExactCurve,toLinearonly)36ed1dce—OrientableSegmentadapter81a16be9— bible A1 (Year-2 zoo membership only; §2/§3 untouched)316258a8— Year-1 ExactCurve surface + colinear chord pinsc956b50d(stale vs HEAD): user-board green 16 · chainsaw-only 3 · measured 11 hold. Sequence M.5→ML.2→HP.4→N-SS expand is STOPPED.(b) Year-1 circular scoreboard after this run
OpenJDK 8 · nanoTime p50 of 31 after 15 warmups. Numbers from
target/laser-ratchet/rows.jsonl.Max non-chord operation ratio: 0.674 (LEC CompoundCurve). Zero Year-1 circular lasers missed 1.15×.
Gates measured: OverlayNGCurve, CurveOpsDistCon, DistanceConstruction, ReverseDispatch (
now_*only — no invented red column), CurveWKB, DirectedHausdorff, DiscreteHausdorff, DiscreteFrechet, LargestEmptyCircle, MultiCurve, P1-A (0.122×), P1-B (0.309×).Previously ungauged on the Proofs observatory now have
now_*: WKB, DHD, Discrete Hausdorff/Fréchet, LEC, MultiCurve (was missing from Proofs JSON entirely).(c) Patches in this PR
test.jts.perf.LaserRatchetSink— JSONL emitter + Proofs-schema assembler*PerfGateTest+ P1-A/P1-B writetarget/laser-ratchet/rows.jsonldev/run-year1-laser-ratchet.sh+dev/assemble-laser-ratchet.sh.github/workflows/laser-ratchet.ymldoc/laser-ratchet.json(jts feed; Proofs vendors a copy)doc/LASER_RATCHET.md/doc/CHAINSAW_LASER_PROGRAM.mdretipped(d) HOLDs refused
ExactEllipticalArc,ExactCubicBezier,ExactClothoid,ExactNurbsSegment(page “1 of 5 types” is correct)ClothoidHalleyPerfGateTest(not in the workflow test list)fail()kept)SHARED_SNAPPED_RAYwalkExactCurve, non-linear coreSegmentString, OverlayNGCurve rename, reminting ADR-0004Tests run — BUILD SUCCESS
jts emits
doc/laser-ratchet.jsonfor Proofs to vendor. This agent is jts-only (no Proofs PR). Zoo / 64-a remain HOLD.