Dear Forum members,
In several previous Forum messages I have mentioned that a rather
radically new version of GAP was under construction, and I have made
predictions about likely release dates that all have proved to be too
optimistic. In fact what we release today is not yet a system that
under the name GAP 4.1 could be considered as the successor of GAP
3.4.4 but rather is a Beta Test version (that hence is called GAP
4.B.1), i.e. a version that we want to present to the community of GAP
users for experimenting and testing. We very much hope and ask for a
lively feedback of bug reports, constructive criticism and
GAP 4.B.1 is available via ftp from
There you also find the installation guide in the file INSTALL.
This installation guide can also be found via the WWW pages of GAP
Please send bug reports to the address
For discussion about GAP 4 the St. Andrews team will next week
establish and announce a new GAP4-Forum. This will operate in the same
way as the old GAP-Forum, which of course will remain in function. If
you want to participate in the discussion about GAP 4 you should next
week subscribe to the new GAP4-Forum in addition to remaining
subscribed in GAP-Forum.
We think that this new version of GAP opens up a lot of new
possibilities, in fact in our own team it has already been used for
calculations in research projects that could not have been done in GAP
3. Also quite a few of the available functions have an improved
efficiency partly because of an improvement of the efficiency of very
basic kernel functions and partly because of improved mathematical
methods. However we are also well aware of the fact that the
efficiency of some functions may have suffered from changes made for
the improvement of others. And of course the new system has not
undergone the years of testing by many uses that GAP 3 meanwhile
has. Therefore while we hope that you will acquaint yourself soon with
GAP 4, we still recommend, for the time being, to use GAP 3.4.4 if you
have to do computations for your research that do not need the new
There have already been (weekly changing) alpha test versions of GAP 4
since December 1996, and a number of specially experienced GAP users
in addition to the GAP teams at Aachen and St. Andrews have used
these and provided helpful criticism and suggestions. However, since
it is next to impossible to follow up all implications of changes in a
system of the size of GAP with a small team, we particularly encourage
and ask you to inform us about deficiencies that you encounter.
The transition from GAP 3.4 which got its presumably last update 3.4.4
in April this year to this present first beta release GAP 4.B.1 of GAP
4 marks a major step in the system design of GAP, similar in
importance to the step from GAP 2.4 to GAP 3.1 in April 1992 on which
I comment in my preface to GAP 3.4 of June 1994. However in contrast
to the situation in 1992 we hope that the changes will be much less
bothering to the majority of the GAP users this time. Let me first
talk about some reasons and background for developing GAP 4 and then
briefly sketch what remains and what changes.
The planning of GAP 4 started already at the time of the release of
GAP 3.4 (Summer 1994) and its development has been a major reason for
the fact that since then only updates (up to GAP 3.4.4) but no new
releases of GAP 3 have come out. Also a number of new algorithms have
been implemented in Aachen anticipating GAP 4 and hence have not
become generally available yet.
There were three major reasons for the development of GAP 4:
- There has been a growing demand to implement new mathematical
structures in GAP (Lie algebras are just one example). However GAP 3
was not really designed for such tasks.
- The number and diversity of (sometimes competing) algorithmic
methods is growing rapidly. We definitely want to maintain the
principle that the user should be able to control what methods are
used. However, the growing complexity of the interrelation of
algorithms makes it mandatory to have also a 'method selection'
mechanism which controls the choice between different possibilities to
proceed within a GAP function, that is at least partially guided by
already computed knowledge about the objects under investigation.
- While the two points mentioned above have caused 'visible' changes
from GAP 3 to GAP 4, in this transition also important changes have
taken place 'behind the scene'. There are e.g. improvements of the
storage management and function calls, and last not least a compiler
from GAP 4 to C is part of this beta release.
So regarding system aspects let's briefly sketch:
What is left unchanged?
- The syntax of that part of the GAP language that most users need
investigating mathematical problems.
- The great majority of function names.
- Data libraries and the access to them.
What has changed?
- Some function names that need finer specifications now that there
are more structures available in GAP.
- The access to information already obtained about a mathematical
structure. E.g. in GAP 3 such information about a group could be
looked up by directly inspecting the group record, whereas in GAP 4
functions must be used to access such information.
What is new?
- A whole machinery for the definition of new structures.
- A hopefully clearer separation of aspects of knowledge about the
mathematical objects that GAP handles by the introduction of the
concepts of attributes, families, categories, and representations.
- A number of new structures, such as Lie algebras.
Then to the mathematical functionality provided by GAP 4 in comparison
to GAP 3:
- Almost all of the program library of GAP 3 has been transferred to
GAP 4. Some of this had just to be adapted to the new features (which
in itself has been a huge job in view of the size of the program
library), but for quite a few tasks the opportunity has been used to
implement new and more efficient algorithms - notably so e.g. for
permutation groups and polycyclic groups.
- A number of new algorithms have been implemented for which the
features of GAP 4 proved more adequate or even necessary and which are
now made public in GAP for the first time.
- One main deficiency of the present beta release is that the
meanwhile large library of share packages of GAP 3 has not yet been
The other main deficiency is that there is not yet a complete
manual for GAP 4.
It is intended to provide eventually at least four books as parts of
the manual. The first and second are intended for people who want to
use GAP 'as is'. Books 3 and 4 on the other hand are meant for people
who want to extend GAP 4 by introducing new structures. Books 1 and 3
are tutorials for the respective purpose while Books 2 and 4 are the
corresponding reference manuals.
Of these four books a good deal of Books 1 and 3, i.e. the tutorial
parts, are provided with this release, while there are only
rudimentary parts of books 2 and 4 available. For people already
familiar with GAP 3 the chapter 'Migrating to GAP 4' in the first book
may be particularly helpful.
It is envisaged that there will be new beta releases from now on about
every couple of months until an official version GAP 4.1 can be
released next year. It is hoped that these further beta releases will
gradually provide the missing parts mentioned above as well as further
enhancements. However, since the date of the official handover of GAP
from Aachen to St. Andrews has now been fixed to be July 21, 1997,
this further development will happen under the responsibility of
It remains to me to thank all those who have done the huge amount of
work that was needed to bring GAP 4 on its way. Many basic ideas for
the new concepts as well as most of the new kernel implementation are
still due to Martin Schoenert before and even in parts after he left
Lehrstuhl D fuer Mathematik. However together with him while he was
still working here and continuing after he left, Thomas Breuer and
Frank Celler have in long discussions found the way to the concepts
and done crucial parts of the new implementations. Many others have
worked adapting and rewriting the library, of whom I want to mention
in particular Bettina Eick, Alexander Hulpke and Heiko Theissen from
the Aachen team but also acknowledge the help lended already for some
time from St. Andrews, in particular by Steve Linton.
To these and all others, whom I did not mention explicitly, I want to
express my thanks for a yearlong cooperation in a spirit of enthusiasm,
dedication and perseverance. I wish the team at St. Andrews a
successful continuation of the development and maintenance of GAP 4 in
that same spirit and all users fun and success in using GAP 4.
Aachen, July 18, 1997 Joachim Neubueser