Move Sims' numbering out of the entries - #72
Merged
Conversation
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 Report✅ All modified and coverable lines are covered by tests. 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
🚀 New features to boost your workflow:
|
This was referenced Aug 25, 2026
fingolfin
commented
Aug 25, 2026
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.
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:
data/gps1.g, and puts it into a new global variablePRIMGRP_SIMSNO.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!