Skip to content

Qualify local frames and add GeographicLib benchmark baselines - #302

Merged
ibgreen merged 6 commits into
masterfrom
codex/c8-g7-baselines
Oct 25, 2026
Merged

ibgreen merged 6 commits into
masterfrom
codex/c8-g7-baselines

Conversation

@ibgreen

@ibgreen ibgreen commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Problem and behavior

C8 had no shared independent qualification matrix, and the G7 API/performance roadmap lacked reproducible equal-accuracy baselines. Qualification exposed three boundary failures: rigid transforms could overflow intermediate arithmetic despite finite outputs; radial tangent lifts could reject representable points on tiny ellipsoids; and spherical normal lifts could accept a one-ulp miss or lose accuracy near grazing contact.

This PR fixes those cases, adds 560 shared qualification rows, and establishes informational G7/C8 benchmark baselines without adding dependencies. The bounded qualification domain and intentional native convention differences are documented; this does not claim arbitrary finite-input certification or universal GeographicLib parity.

Evidence

  • Independent 180-digit Decimal exact-input frame/pose/tangent controls, analytic boundary regressions, and pinned GeographicLib C++ 2.7 output controls.
  • The three analytic regression rows fail on the old implementation and pass with these fixes. Ordinary overlapping controls pass on both revisions before benchmarking.
  • Same qualification entry in Node, Chromium, Firefox and WebKit CI. Offline reference regeneration/provenance checks; CI does not build or download GeographicLib/PROJ.
  • G7 separates setup/direct/reused lines, frame outputs, poses, velocity and tangent operations. Raw timings, spread, allocation estimates, runtime/compiler/source fingerprints and optional same-host native comparison are retained. No new speed gate or speculative API.
  • Historical benchmark bundling preserves explicit package sideEffects metadata; selective retained-source graphs are checked against the pinned baseline.
  • Existing accuracy, coverage, allocation and bundle gates remain unchanged. A separate C8 guard gives only the two numerical-fix classes a 2,000-byte minified / 1,000-byte gzip allowance; unrelated imports keep their limits.
  • Existing Cesium and GeographicLib SPDX acknowledgements and package licenses retained; new helpers, oracle and native API caller are original MIT code. No new dependency, vendored source or lockfile change.

Validation

Full Node suite: 13,202 passed, 124 skipped. Lint, build, attribution/source-header checks, strict ESM/CJS consumer types, C8 package graphs/budgets and existing geodesic/seam/projection/allocation boundaries passed locally. Shared 560-row qualification passed Node, Chromium and WebKit locally and Firefox in CI. Review fixes cover pinned-baseline fetching in shallow CI, conservative historical package metadata, strict ESM/CommonJS consumer types, and validation of every actual optional-native answer before timing. A deliberately wrong finite native executable is rejected before measurement/report creation. The refreshed benchmark artifact includes all 72 actual-native qualification results. Latest-head CI is the final gate.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9b0c4c79a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/test.yml
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T22:33:50.146917Z e9b0c4c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ibgreen
ibgreen force-pushed the codex/c8-g7-baselines branch from 326b418 to 8fde2cd Compare October 24, 2026 22:37
@greptile-apps

greptile-apps Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The reviewed changes appear safe to merge; both previous findings are addressed.

Summary

This PR adds shared local-frame qualification and informational GeographicLib benchmark baselines.

  • Local frames and tangent lifts keep more representable results.
  • Local-frame checks now cover a shared, bounded qualification profile.
  • G7 workloads now compare math.gl with historical and native baselines.

This review checked the code and stored results; it did not rerun the tests.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Independent and stored native controls] --> B[Check candidate accuracy]
  A --> C[Check overlapping historical accuracy]
  D[Optional native executable] --> E[Check every stored output field]
  B --> F[Run rotated benchmark samples]
  C --> F
  E --> F
  F --> G[Record timings, spread, and optional heap estimates]
Loading

Reviews (2) · Last reviewed commit: "Refresh baselines after validating nativ..." · Reviewed by Greptile

Comment thread modules/geospatial/scripts/benchmark-g7.mjs Outdated
Comment thread modules/geospatial/scripts/check-c8-package.mjs
@coveralls

coveralls commented Oct 24, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 40140281525

Coverage decreased (-0.03%) to 94.226%

Details

  • Coverage decreased (-0.03%) from the base build.
  • Patch coverage: 75 of 75 lines across 3 files are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 25893
Covered Lines: 24976
Line Coverage: 96.46%
Relevant Branches: 16002
Covered Branches: 14500
Branch Coverage: 90.61%
Branches in Coverage %: Yes
Coverage Strength: 37559.4 hits per line

💛 - Coveralls

@ibgreen
ibgreen merged commit 00dd3e4 into master Oct 25, 2026
12 checks passed
@ibgreen
ibgreen deleted the codex/c8-g7-baselines branch October 25, 2026 02:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants