> < ^ From:

^ Subject:

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

suggestions.

GAP 4.B.1 is available via ftp from

ftp://ftp.math.rwth-aachen.de/pub/gap4b1

ftp://ftp-gap.dcs.st-and.ac.uk:/pub/gap/gap4b1

There you also find the installation guide in the file INSTALL.

This installation guide can also be found via the WWW pages of GAP

http://www.math.rwth-aachen.de/LDFM/GAP/Info4/distrib.html

http://www-groups.dcs.st-and.ac.uk/~gap/Info4/distrib.html

Please send bug reports to the address

gap-trouble@dcs.st-and.ac.uk

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

facilities.

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

transferred.

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

St. Andrews.

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

> < [top]