[GAP Forum] Serialisation

Christopher Jefferson caj21 at st-andrews.ac.uk
Wed Feb 11 14:17:51 GMT 2015


IO_PickleToString comes from the IO package, rather than the SCSCP package.

IO's Pickle provides a different set of methods to serialise GAP objects,
which tend to be smaller and faster to parse/unparse than openmath, but as
you saw do not implement all types.

If you want to use open math, then use the 'OM' methods:

gap> OMPrint(SymmetricGroup(3));
<OMOBJ>
	<OMA>
		<OMS cd="permgp1" name="group"/>
		<OMS cd="permutation1" name="right_compose"/>
		<OMA>
			<OMS cd="permut1" name="permutation"/>
			<OMI>2</OMI>
			<OMI>3</OMI>
			<OMI>1</OMI>
		</OMA>
		<OMA>
			<OMS cd="permut1" name="permutation"/>
			<OMI>2</OMI>
			<OMI>1</OMI>
		</OMA>
	</OMA>
</OMOBJ>
gap> OMPrint(DihedralGroup(6));
<OMOBJ>
	<OMA>
		<OMS cd="pcgroup1" name="pcgroup_by_pcgscode"/>
		<OMI>25</OMI>
		<OMI>6</OMI>
	</OMA>
</OMOBJ>




On 11/02/2015 14:05, "Sandeep Murthy" <s.murthy at mykolab.com> wrote:

>Hi
>
>I am trying to use the IO_PickleToString() method from the SCSCP package
>to test out how GAP serialises group objects.  This does not appear to be
>working as expected on the isomorphic groups Sym(3) and D_6 (dihedral
>group).
>
>gap> IO_PickleToString( SymmetricGroup( 3 ) );
>"PRMGILIS\>2PERM\>7(1,2,3)PERM\>5(1,2)INTG\>16FAIL²
>
>This looks OK but for D_6 it fails:
>
>gap> IO_PickleToString( DihedralGroup( 6 ) );
>Error, no method found! For debugging hints type ?Recovery from
>NoMethodFound
>Error, no 1st choice method found for `IO_Pickle' on 2 arguments called
>from
>IO_Pickle( s, obj ); called from
><function "IO_PickleToString">( <arguments> )
> called from read-eval loop at line 20 of *stdin*
>you can 'quit;' to quit to outer loop, or
>you can 'return;' to continue
>brk>
>
>Why is this?  Both should return OpenMath strings.
>
>Sandeep




More information about the Forum mailing list