Name the functions shared between layers - #71
Merged
Conversation
fingolfin
force-pushed
the
name-shared-layer-functions
branch
from
August 6, 2026 22:28
3889864 to
13203bb
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #71 +/- ##
==========================================
+ Coverage 99.87% 99.88% +0.01%
==========================================
Files 502 507 +5
Lines 338190 370982 +32792
==========================================
+ Hits 337758 370557 +32799
+ Misses 432 425 -7
🚀 New features to boost your workflow:
|
Extending the library means filling six arrays by number, ending with
SELECT_SMALL_GROUPS_FUNCS[ SOTGRPS_POS ] := SELECT_SMALL_GROUPS_FUNCS[ 11 ];
as sglppow and SOTGrps both do. Nothing says what 11 is: the generic
selection, sitting in layer 3 because that is where it was first needed.
Three functions are used across layers; give them names.
SELECT_SMALL_GROUPS_FUNCS[ 11 ] SMALL_GROUPS_SELECT_GENERIC
ID_GROUP_FUNCS[ 8 ] ID_GROUP_BY_TREE
CODE_SMALL_GROUP_FUNCS[ 8 ] CODE_SMALL_GROUP_FROM_LIB
Only the generic selection moves file, from small3 to gap/small.gi, which
belongs to no layer and is read first. Every array entry stays, so
extensions written against the numbers keep working; sglppow and SOTGrps
pass untouched.
SMALL_GROUP_FUNCS also held three helpers taking arguments other than
( size, i, inforec ), which no inforec ever dispatched to:
SMALL_GROUP_FUNCS[ 13 ] SMALL_GROUP_1152_1920_FROM_CODE
SMALL_GROUP_FUNCS[ 22 ] SMALL_GROUP_P6_NUMBER
SMALL_GROUP_FUNCS[ 23 ] SMALL_GROUP_P6_EXPONENT
They are used above their definition, so they get a DeclareGlobalName
rather than moving. This frees 13, 22 and 23, and ends the collision
between SMALL_GROUP_FUNCS[ 13 ] and the unrelated ID_GROUP_FUNCS[ 13 ].
Towards #67.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fingolfin
force-pushed
the
name-shared-layer-functions
branch
from
August 6, 2026 23:47
13203bb to
30c48fb
Compare
The 4912 groups of order 768 without a normal Sylow subgroup are read from four separate files, and no test built one. Of the orders p^7 only 5^7 was built, by tst/ordering.tst. 72 ms for the lot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.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.
First step towards #67. No behaviour change; every array entry stays, so
sglppow and SOTGrps keep working untouched.
Extending the library currently means filling six arrays by number, ending
with the line both extension packages contain:
Nothing says what
11is. A survey found the tangle is smaller than the filelayout suggests — exactly three functions are used across layers, and
everything else is within one layer:
SELECT_SMALL_GROUPS_FUNCS[11]SMALL_GROUPS_SELECT_GENERICID_GROUP_FUNCS[8]ID_GROUP_BY_TREECODE_SMALL_GROUP_FUNCS[8]CODE_SMALL_GROUP_FROM_LIBOnly the generic selection moves file, from
small3togap/small.gi, sinceit belongs to no layer and that file is read first.
SMALL_GROUP_FUNCSalso held three helpers taking arguments other than( size, i, inforec ), which noinforecever dispatched to — they wereparked in the dispatch table. They become
SMALL_GROUP_1152_1920_FROM_CODE,SMALL_GROUP_P6_NUMBERandSMALL_GROUP_P6_EXPONENT, freeing slots 13, 22and 23 and ending the collision between
SMALL_GROUP_FUNCS[13]and theunrelated
ID_GROUP_FUNCS[13]. Each gets aDeclareGlobalNamewhere it isfirst used rather than moving, to keep the diff reviewable.
tst/small.tstasserts which slots are occupied, so its expectation changesaccordingly.
Verified
tst/verify-indices.g, 0 failuresThe last two are the point: both reference
SELECT_SMALL_GROUPS_FUNCS[11]bynumber, and exercise the compatibility aliases against released code.