serialization of more group attributes #4193
Draft
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.
The idea is to implement serializations directly for the underlying GAP objects, instead of implementing them for the Oscar objects.
For boolean and numeric attributes, the two alternatives do not really differ, but for attributes whose values are themselves groups, for example
center(g)
, we can simply serializeGAP.Globals.Center(GapObj(g))
, together with its attributes, instead of first creatingcenter(g)
anew and then serializing its first component.Another advantage is that this way, it will be easier to deal with "Oscar attributes" of groups that do not rely on GAP's attribute mechanism.
(The serialization of permutation groups gets changed with this approach; if we proceed like this then a fallback must be provided, in order to deal with the deserialization of files containing permutation groups that were serialized with the old method.)
Currently there is a problem with cyclic references, and the handling of attribute values that are GAP lists is not yet supported.
Here is an example for the cyclic reference problem: