PackageDescription | This GAP package provides a link to the standard UNIX I/O functionality
that is available through the C library. This part basically consists
of functions on the GAP level that allow functions in the C library to
be called.
Built on top of this is a layer for buffered input/output which is
implemented completely in the GAP language. It is intended to be used
by programs for which it is not necessary to have full direct access to
the operating system.
On this level, quite a few convenience functions are implemented for
interprocess communication like starting up pipelines of processes to
filter data through them and to start up processes and then communicate
with them. There is also support for creating network connections over
TCP/IP and UDP.
Building on this, the package contains an implementation of the client
side of the HTTP protocol making it possible among other things to
access web pages from within GAP.
Another part of the package is a framework for object serialization.
That is, GAP objects can be converted into a platform-independent byte
sequence which can be stored to a file or sent over the network. The
code takes complete care of arbitrarily self-referential data structures
like lists containing themselves as an entry. The resulting byte
strings can be read back into GAP and the original objects are rebuilt
with exactly the same self-references. This works for most of the
standard builtin types of GAP like numbers, permutations, polynomials,
lists, and records and can be extended to nearly arbitrary GAP objects. |