-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Why are all these attributes mutable (i.e. can be changed later on):
gap/base/recognition.gd:111:DeclareAttribute( "Grp", IsRecogNode, "mutable" );
gap/base/recognition.gd:125:DeclareAttribute( "Homom", IsRecogNode, "mutable" );
gap/base/recognition.gd:150:DeclareAttribute( "NiceGens", IsRecogNode, "mutable" );
gap/base/recognition.gd:166:DeclareAttribute( "ImageRecogNode", IsRecogNode, "mutable" );
gap/base/recognition.gd:186:DeclareAttribute( "KernelRecogNode", IsRecogNode, "mutable" );
gap/base/recognition.gd:200:DeclareAttribute( "ParentRecogNode", IsRecogNode, "mutable" );
gap/base/recognition.gd:212:DeclareAttribute( "StdPresentation", IsRecogNode, "mutable" ); # TODO: implement
gap/base/recognition.gd:231:DeclareAttribute( "pregensfac", IsRecogNode, "mutable" );
gap/base/recognition.gd:256:DeclareAttribute( "calcnicegens", IsRecogNode, "mutable" );
gap/base/recognition.gd:270:DeclareAttribute( "slptonice", IsRecogNode, "mutable" );
gap/base/recognition.gd:284:DeclareAttribute( "fhmethsel", IsRecogNode, "mutable" ); # TODO: rename?
gap/base/recognition.gd:304:DeclareAttribute( "methodsforimage", IsRecogNode, "mutable" ); # rename to MethodsDBForFactor
gap/base/recognition.gd:328:DeclareAttribute( "slpforelement", IsRecogNode, "mutable" );
gap/base/recognition.gd:330:DeclareAttribute( "gensN", IsRecogNode, "mutable" ); # TODO: rename?
gap/base/recognition.gd:333:DeclareAttribute( "findgensNmeth", IsRecogNode, "mutable" );
gap/base/recognition.gd:335:DeclareAttribute( "gensNslp", IsRecogNode, "mutable" );
gap/base/recognition.gd:337:DeclareAttribute( "immediateverification", IsRecogNode, "mutable" );
gap/base/recognition.gd:339:DeclareAttribute( "InitialDataForKernelRecogNode", IsRecogNode, "mutable" );
gap/base/recognition.gd:342:DeclareAttribute( "InitialDataForImageRecogNode", IsRecogNode, "mutable" );
gap/base/recognition.gd:345:DeclareAttribute( "isone", IsRecogNode, "mutable" );
gap/base/recognition.gd:347:DeclareAttribute( "isequal", IsRecogNode, "mutable" );
gap/base/recognition.gd:349:DeclareAttribute( "OrderFunc", IsRecogNode, "mutable" );
gap/base/recognition.gd:351:DeclareAttribute( "docommute", IsRecogNode, "mutable" );
Specifically: can the group (Grp) in a recognition node change later on?
I really hope not, else all kind of things can break.
About the only reason I can think of why a node might need to be changed is that kernels could get additional generators later on. But in that case, shouldn't we create a fresh node, which starts from scratch (OK a few things could probably be transferred, but that should be selective).
But I really hope now...
I'd like to change many (most? all?) of these to be immutable, buuuuut: in GAP, if you try to change an already set attribute, it just ignores your request. That's unfortunate: I'd much prefer if it gave an error, so that I can catch cases that actually modify existing code. Urgh.