Skip to content

Move Sims' numbering out of the entries - #72

Merged
fingolfin merged 4 commits into
masterfrom
mh/PRIMGRP_SIMSNO
Aug 26, 2026
Merged

Move Sims' numbering out of the entries#72
fingolfin merged 4 commits into
masterfrom
mh/PRIMGRP_SIMSNO

Conversation

@fingolfin

@fingolfin fingolfin commented Aug 25, 2026

Copy link
Copy Markdown
Member

This was done by a script (that an AI wrote). To make this PR auditable, this PR consists of three commits, which ideally will be squashed into one at the end:

  1. The first commit adds a Python script for extracting the data, and some scaffolding.
  2. The second commit contains the results of running the script, which removes the data from data/gps1.g, and puts it into a new global variable PRIMGRP_SIMSNO.
  3. The third commit removes the script and some now superfluous scaffolding.

For reviewing, one may wish to inspect the commits separately.

This is the first part of a campaign to systematically restructure the data, to make more compact, more consistent, and faster; and ultimately we'll also be able to import the data up to degree < 8192 (spoiler: instead of 2 GB or 1 GB, it fits into maybe 20 MB, and the final package should not take up more disk space than the current release.)

Prepared with AI assistance (Claude Opus 5).

CC @olexandr-konovalov @jesselansdown @hulpke


Should be squash merged!

fingolfin and others added 3 commits August 24, 2026 23:24
Every entry of degree at most 50 carries a tenth field, Sims' number for that
group.  It is real data -- most of those numbers are not the entry's own -- but
406 values do not justify a column on the main table, and while an entry ends
in ",1" it cannot be written as a call, because PGAlt(14,1) and [...,"Alt",1]
are not the same text.  So this has to happen before any generic constructor
can be used, and it comes first for that reason rather than for the space.

This commit adds only the tool and the two things that let it run between one
commit and the next: a marker in lib/primitiv.grp for it to write between, and
a reader that prefers PRIMGRP_SIMSNO when it exists and falls back to the tenth
field while any data file still carries one.  The suite passes here, before the
move, and has to pass again after it.

The tool refuses to run twice: an entry of degree at most 50 with nine fields
already stops it, rather than being silently mangled.  It also refuses if the
degrees carrying the field are not contiguous, since PRIMGRP_SIMSNO[deg-1] is
positional and a gap would index the wrong row instead of failing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Output of dev/move-simsno.py, nothing else: data/gps1.g loses the tenth field
from all 406 entries of degree at most 50, and lib/primitiv.grp gains
PRIMGRP_SIMSNO between its markers.

113 of the 406 numbers differ from the entry's own, so this is data being moved
rather than redundancy being dropped.  All 406 were dumped from master and from
here and compared: unchanged.

Nothing else moves.  The reader has taken the value from the table since the
previous commit, falling back to the tenth field while one existed, so the
suite passes on either side of this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.91%. Comparing base (a2f51fe) to head (269f251).

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #72   +/-   ##
=======================================
  Coverage   99.91%   99.91%           
=======================================
  Files          46       46           
  Lines      383081   383118   +37     
=======================================
+ Hits       382745   382782   +37     
  Misses        336      336           
Files with missing lines Coverage Δ
data/gps1.g 100.00% <ø> (ø)
lib/primitiv.gi 50.21% <100.00%> (ø)
lib/primitiv.grp 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread lib/primitiv.grp Outdated
@fingolfin
fingolfin merged commit 89db8e0 into master Aug 26, 2026
5 checks passed
@fingolfin
fingolfin deleted the mh/PRIMGRP_SIMSNO branch August 26, 2026 05:18
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.

1 participant