This is the log file for the demonstration of the SCSCP protocol. Please see the SCIEnce project website (symbolic-computing.org) for further details. $ gap rundemo.g ┌───────┐ GAP, Version 4.7.8 of 09-Jun-2015 (free software, GPL) │ GAP │ http://www.gap-system.org └───────┘ Architecture: x86_64-apple-darwin14.5.0-gcc-5-default64 Libs used: gmp, readline Loading the library and packages ... ───────────────────────────────────────────────────────────────────────────── Loading OpenMath 11.2.0 (OpenMath functionality in GAP) by Marco Costantini, Alexander Konovalov (http://www.cs.st-andrews.ac.uk/~alexk/), Max Nicosia (ln73@st-andrews.ac.uk), and Andrew Solomon (http://www.illywhacker.net/). Homepage: http://www.cs.st-andrews.ac.uk/~alexk/openmath/ ───────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────────────────────────────────────── Loading SCSCP 2.1.4 (Symbolic Computation Software Composability Protocol) by Alexander Konovalov (http://www.cs.st-andrews.ac.uk/~alexk/) and Steve Linton (http://www.cs.st-and.ac.uk/~sal/). Homepage: http://www.cs.st-andrews.ac.uk/~alexk/scscp/ ───────────────────────────────────────────────────────────────────────────── Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, Browse 1.8.6, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, GUAVA 3.12, IO 4.4.4, IRREDSOL 1.2.4, LAGUNA 3.7.0, OpenMath 11.2.0, Polenta 1.3.2, Polycyclic 2.11, RadiRoot 2.7, ResClasses 3.4.0, SCSCP 2.1.4, SONATA 2.6, Sophus 1.23, SpinSym 1.5, TomLib 1.2.5, Wedderga 4.7.2 Try '?help' for help. See also '?copyright' and '?authors' Start of demonstration. demo> LoadPackage("scscp"); true demo> server := "localhost"; "localhost" demo> port := 26133; 26133 demo> SetInfoLevel( InfoSCSCP, 0 ); demo> G := Group( (1,2,3), (2,3) ); Group([ (1,2,3), (2,3) ]) demo> IdGroup( G ); [ 6, 1 ] demo> EvaluateBySCSCP( "WS_IdGroup", [ G ], server, port ).object; [ 6, 1 ] demo> EvaluateBySCSCP( "GroupIdentificationService", [ [ (1,2,3), (2,3) ] ], server, port ).object; [ 6, 1 ] demo> SetInfoLevel( InfoSCSCP, 3 ); demo> EvaluateBySCSCP( "GroupIdentificationService", [ [ (1,2,3), (2,3) ] ], server, port ).object; #I Creating a socket ... #I Connecting to a remote socket via TCP/IP ... #I Got connection initiation message #I #I Requesting version 1.3 from the server ... #I Server confirmed version 1.3 to the client ... #I Composing procedure_call message: localhost:26133:6020:kZEL6GsA 2 3 1 1 3 2 #I Total length 699 characters #I Request sent ... #I Waiting for reply ... #I #I Received message: localhost:26133:6020:kZEL6GsA 6 1 #I #I Got back: object [ 6, 1 ] with attributes [ [ "call_id", "localhost:26133:6020:kZEL6GsA" ] ] [ 6, 1 ] demo> ReadPackage("scscp/example/id512.g"); true demo> G := DihedralGroup( IsPermGroup, 512 ); demo> IdGroup512( G ); #I Creating a socket ... #I Connecting to a remote socket via TCP/IP ... #I Got connection initiation message #I #I Requesting version 1.3 from the server ... #I Server confirmed version 1.3 to the client ... #I Composing procedure_call message: localhost:26133:6020:di9g6FTq 2940208627577393070560341803949986912431725641726 #I Total length 448 characters #I Request sent ... #I Waiting for reply ... #I #I Received message: localhost:26133:6020:di9g6FTq 512 2042 #I #I Got back: object [ 512, 2042 ] with attributes [ [ "call_id", "localhost:26133:6020:di9g6FTq" ] ] [ 512, 2042 ] demo> SetInfoLevel( InfoSCSCP, 0 ); demo> IdGroup512( G ); [ 512, 2042 ] demo> ReadPackage("scscp/example/overload.g"); true demo> a := StoreAsRemoteObject( 6, server, port ); < remote object scscp://localhost:26133/TEMPVarSCSCPZLZDZOx5 > demo> b := StoreAsRemoteObject( 7, server, port ); < remote object scscp://localhost:26133/TEMPVarSCSCPVUHMdfVj > demo> c := a*b; < remote object scscp://localhost:26133/TEMPVarSCSCPUjl0cwuE > demo> RetrieveRemoteObject( c ); 42 demo> M24 := EvaluateBySCSCP( "MathieuGroup", [ 24 ], server, port : output:="cookie" ).object; < remote object scscp://localhost:26133/TEMPVarSCSCPJu8BMijY > demo> EvaluateBySCSCP( "NrConjugacyClasses", [ M24 ], server, port ); rec( attributes := [ [ "call_id", "localhost:26133:6020:LvJ2Gd0p" ] ], object := 26 ) demo> SetInfoLevel( InfoSCSCP, 3 ); demo> P2 := EvaluateBySCSCP( "SylowSubgroup", [ M24, 2 ], server, port : output:="cookie" ).object; #I Creating a socket ... #I Connecting to a remote socket via TCP/IP ... #I Got connection initiation message #I #I Requesting version 1.3 from the server ... #I Server confirmed version 1.3 to the client ... #I Composing procedure_call message: localhost:26133:6020:JNDhiwmO 2 #I Total length 461 characters #I Request sent ... #I Waiting for reply ... #I #I Received message: localhost:26133:6020:JNDhiwmO #I #I Got back: object RemoteObject("TEMPVarSCSCPOq8Tczxi","localhost",26133) with attributes [ [ "call_id", "localhost:26133:6020:JNDhiwmO" ] ] < remote object scscp://localhost:26133/TEMPVarSCSCPOq8Tczxi > demo> SetInfoLevel( InfoSCSCP, 0 ); demo> RetrieveRemoteObject( P2 ); demo> UnbindRemoteObject( M24 ); true demo> x:=SL(2,2); SL(2,2) demo> l:=OMString(x); " 2 0 2 0 2 0\ 2 0 2 0 \ 2 0 2 \ 0 2 0 " demo> Length(l); 1417 demo> SetInfoLevel( InfoSCSCP, 4 ); demo> IN_SCSCP_BINARY_MODE:=true; true demo> x = EvaluateBySCSCP("Identity",[x],"localhost",port).object; #I Creating a socket ... #I Connecting to a remote socket via TCP/IP ... #I Got connection initiation message #I #I Requesting version 1.3 from the server ... #I Server confirmed version 1.3 to the client ... #I Composing procedure_call message: 3C3F7363736370207374617274203F3E0A18121408060773637363703163616C6C5F6964061D6C\ 6F63616C686F73743A32363133333A363032303A544776345A4E31710806147363736370316F70\ 74696F6E5F72657475726E5F6F626A6563740600151008060E73637363703170726F6365647572\ 655F63616C6C1008110873637363705F7472616E7369656E745F314964656E7469747910080613\ 67726F75703167726F75705F62795F67656E657261746F7273100807066C696E616C67326D6174\ 726978100807096C696E616C67326D6174726978726F7710080605617269746831706F77657210\ 08091166696E6669656C64317072696D69746976655F656C656D656E7401021101001110080605\ 617269746831706F7765721008091166696E6669656C64317072696D69746976655F656C656D65\ 6E7401021101001111100807096C696E616C67326D6174726978726F7710080605617269746831\ 74696D65731008091166696E6669656C64317072696D69746976655F656C656D656E7401021101\ 001110080605617269746831706F7765721008091166696E6669656C64317072696D6974697665\ 5F656C656D656E740102110100111111100807066C696E616C67326D6174726978100807096C69\ 6E616C67326D6174726978726F771008060561726974683174696D65731008091166696E666965\ 6C64317072696D69746976655F656C656D656E7401021101001110080605617269746831706F77\ 65721008091166696E6669656C64317072696D69746976655F656C656D656E7401021101001111\ 100807096C696E616C67326D6174726978726F7710080605617269746831706F77657210080911\ 66696E6669656C64317072696D69746976655F656C656D656E7401021101001110080605617269\ 74683174696D65731008091166696E6669656C64317072696D69746976655F656C656D656E7401\ 0211010011111111111113193C3F736373637020656E64203F3E0A #I Total length 729 bytes #I Request sent ... #I Waiting for reply ... #I #I Got back: object Group([ [ [ Z(2)^0, Z(2)^0 ], [ 0*Z(2), Z(2)^0 ] ], [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ] ]) with attributes [ [ "call_id", "localhost:26133:6020:TGv4ZN1q" ] ] true demo> IN_SCSCP_BINARY_MODE:=false; false demo> SetInfoLevel( InfoSCSCP, 0 ); demo> s:=IO_PickleToString(x); "MATGILIS\>2IF2M\>2IF2V\>2FFEL\>6Z(2)^0FFEL\>6Z(2)^0MF2V\>2FFEL\>60*Z(2)FF\ EL\>6Z(2)^0IF2M\>2IF2V\>2FFEL\>60*Z(2)FFEL\>6Z(2)^0IF2V\>2FFEL\>6Z(2)^0FFEL\>6\ 0*Z(2)TRUEISTR\>7SL(2,2)TRUEINTG\>16TRUEINTG\>12TRUEFFIEINTG\>12INTG\>11FAILFA\ IL" demo> x = IO_UnpickleFromString( EvaluateBySCSCP( "IO_UnpickleStringAndPickleItBack", [ s ], server, port ).object ); true demo> x := [ Z(3)^0, Z(3), 0*Z(3) ]; [ Z(3)^0, Z(3), 0*Z(3) ] demo> OMString(x); " 3 0 \ 3 <\ OMI>1 3 0 " demo> for i in [ 4 .. 5000 ] do x[i] := i*Z(3)^0; od; demo> Length(x); 5000 demo> IN_SCSCP_BINARY_MODE:=false; false demo> x = EvaluateBySCSCP("Identity",[x],"localhost",port).object; true demo> time; 2297 demo> IN_SCSCP_BINARY_MODE:=true; true demo> x = EvaluateBySCSCP("Identity",[x],"localhost",port).object; true demo> time; 872 demo> IN_SCSCP_BINARY_MODE:=false; false demo> x = IO_UnpickleFromString( EvaluateBySCSCP( "IO_UnpickleStringAndPickleItBack", [ IO_PickleToString(x) ], "localhost", port ).object ); true demo> time; 189 demo> IN_SCSCP_BINARY_MODE:=true; true demo> x = IO_UnpickleFromString( EvaluateBySCSCP( "IO_UnpickleStringAndPickleItBack", [ IO_PickleToString(x) ], "localhost", port ).object ); true demo> time; 177