Dear GAP Forum,
Finally we are able to announce the first share packages for GAP 4, they are
not only conversions of existing GAP 3 code but comprise substantial new
functionality.
They are:
GRAPE: constructing and analysing graphs related to groups and finite
geometries;
by Leonard SoicherLAG: Lie algebras obtained from associative algebras (in particular group
algebras) by using the "bracket" operation ab-ba;
by Richard Rossmanith
(Due to popular demand: This release does not yet contain XGAP, a version of
it however is nearing completion and we hope to have it available within the
next two months.)
The GAP4 share packages web page
http://www-gap.dcs.st-and.ac.uk/~gap/Info4/share.html
will give you further information and links where you can download the
packages.
As has been mentioned earlier, share packages will undergo a formal
refereeing process with the GAP Council. A few further packages have already
been submitted but not yet undergone this process. As they provide useful
functionality their authors decided to make even the current versions
publicly available as ``preprints''.
These are collections that technically use the same mechanisms
as share packages do, which however have *not* been refereed and thus do
*not yet* carry the ``Share package'' seal of approval. You can find these
collections on the web page for deposited GAP 4 code:
http://www-gap.dcs.st-and.ac.uk/~gap/Info4/deposit.html
These preprints are:
FACTINT: Better integer factorization routines;by Stefan Kohl.
ACE: An interface to the stand-alone ACE coset enumerator by George Havas
and Colin Ramsay, interface code by A.H.
GAPMPI: Process communication routines to run a `master' GAP and several
`slaves'; by Gene Cooperman.
(the latter two will only work under UNIX)
Please note that all share packages and deposited contributions are the work
of their respective authors as indicated on the web pages. They are not part
of the main GAP distribution. If you publish work that uses a share package
please reference this share package in the same way as you would reference
GAP itself.
We also have a GAP 4 version of the coding theory package GUAVA. While
conforming to GAP 4 on a technical level, this conversion has not been
thoroughly tested and is likely to contain errors. On the other hand we
don't have a coding theory expert available locally who could help here.
Because of this we also make the existing code available to interested
parties. This is not to be considered as code to be used but solely to get
help debugging. If you are willing to help, please contact the GAP group
(gap@dcs.st-and.ac.uk).
INSTALLING PACKAGES ===================
To use all these packages you will need GAP 4B5 with bugfixes 1-3 installed.
The standard way to install a share package is to download its `zoo' archive
file and to extract it in the `pkg' subdirectory of your GAP distribution,
using `unzoo' (replace (`packagename' by the appropriate name):
cd my-gap-4-path
cd pkg
unzoo -x packagename.zoo
If you are using a Macintosh or Windows PC it might be necessary to move the
`unzoo' binary temporarily in the `pkg' directory to extract the files in
the proper place.
If the package contains external code which has to be compiled then go to
the packages home directory
cd packagename
and call
./configure ../..
make
to compile the external code. (The path `../..' may be more complicated if
you use private pkg directories.)
This compilation step will only work under UNIX. Depending on the share
package it might also run with its GAP-part on Windows or Macintosh (and you
will only lose the additional functionality of the external binary),
packages which only provide an interface to an external binary are unlikely
to run on non-UNIX platforms.
For details see the chapter on "Share Packages" in the GAP reference manual.
An installed package can be loaded from GAP using the `RequirePackage' command.
RequirePackage("packagename");
GAP 4 also provides the possibility to load either the package or only its
documentation automatically once GAP is started if the package author wants
it this way.
For technical reasons (there is no POSIX compliant way to get the names of
the subdirectories of a directory) this feature requires a little bit of
help by the person who installs the share packages. (If you don't do this it
is still possible to load the packages with `RequirePackage', solely the
automatic loading feature will not be available):
GAP fetches the names of packages to try for potential loading from a file
`ALLPKG' in the `pkg' directory. This file simply lists the packages one
line each without commas or other separators.
The easiest way to create such a file is to go to
the pkg directory and call
ls > ALLPKG
to create the file (Lines in this file that are not proper share packages
will be ignored automatically by GAP).
Note that some share packages load only their documentation automatically.
In this situation the manual pages for this package are displayed by the
online help marked ``(not loaded)''. You still must require the appropriate
package to get the functionality.
Many thanks to all authors for their efforts to convert existing code to GAP
4 and to make their programs publicly available.
Alexander Hulpke