-
Notifications
You must be signed in to change notification settings - Fork 161
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Immutable entries of mutable attributes of char. tables
Character tables use several mutable attributes whose values are extendible lists: `ComputedClassFusions`, `ComputedIndicators`, `ComputedPowerMaps`, `ComputedPrimeBlockss`. Up to now, the entries of these lists were mutable. @fluebeck suggested to make these entries immutable. This change makes sense. *Note*: The change may have side-effects w.r.t. users' GAP code. For example, the object returned by ``` 0 * ComputedPowerMaps( CharacterTable( "A5" ) )[2]` ``` had been a *mutable* list before the changes, and will be an *immutable* list after the changes. In order to achieve the immutability, the following changes were necessary. - Extended `SupportedCharacterTableInfo` and `DeclareAttributeSuppCT` such that the mutability of the attribute in question is recorded; there seems to be no way (and no need) to access this information from the attribute itself, - changed `DeclarePropertySuppCT`, here mutability makes no sense, - let `ConvertToCharacterTableNC` make the entries of mutable attributes immutable. Other changes in the context of mutability of attributes for character tables: - Removed the `DeclareAttributeSuppCT` call for `InfoText`; meanwhile this attribute is declared for arbitrary GAP objects, redeclaring it for special objects is logically wrong, - call `MakeImmutable` for (entries of) attribute values before the conversion of a record to a character table object, in order to avoid the creation of a copy in the standard process of setting attribute values, - documented some optional components of an argument for `ContainedPossibleCharacters`. - added a few tests of the (im)mutability
- Loading branch information
1 parent
47d1baf
commit 3cf3758
Showing
8 changed files
with
216 additions
and
152 deletions.
There are no files selected for viewing
This file contains 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
Oops, something went wrong.