[GAP Forum] The next major release: GAP 4.10.0

Alexander Konovalov alexander.konovalov at st-andrews.ac.uk
Mon Nov 12 10:29:36 GMT 2018


Dear GAP Forum,

The next major release of GAP, version 4.10.0, is now available at

	http://www.gap-system.org/Releases/

A brief overview of major changes introduced in GAP 4.10.0 is given
below.

* Reduce impact of immediate methods

GAP allows declaring so-called "immediate methods". The idea is that 
these are very simple and fast methods which are immediately called if
information about an object becomes known, in order to perform some
quick deduction. For example, if the order of a group is set, there
might be immediate methods which update the filters IsFinite and 
IsTrivial of the group suitably. While this can be very elegant and
useful in interactive GAP sessions, the overhead for running these
immediate methods and applying their results can become a major factor
in the runtime of complex computations that create thousands or
millions of objects. A number of steps were taken to address this.

* Change definition of IsPGroup to not require finiteness

This is a small change in terms of amount of code changed, but we list
it here as it has a potential (albeit rather unlikely) impact on the
code written by GAP users: In the past, the GAP manual entry for 
IsPGroup defined p-groups as being finite groups, which differs from
the most commonly used definition for p-groups. Note however that
there was not actual implication installed from IsPGroup to IsFinite,
so it always was possible to actually created infinite groups in the
filter IsPGroup. In GAP 4.10, we adjusted the documentation for 
IsPGroup to the commonly accepted definition for p-groups. In 
addition, code in the GAP library and in packages using IsPGroup was
audited and (in a very few cases) adjusted to explicitly check 
IsFinite.

* Experimental support for using the Julia garbage collector

It is now possible to use the garbage collector of the Julia language
instead of GAP's traditional GASMAN garbage collector. This is partly
motivated by a desire to allow tight integration with GAP and Julia in
the future. Warning: right now, this is slower, and also requires a
patched version of Julia.

* libGAP (work in progress)

We now provide a experimental way to allow 3rd party code to link GAP as
a library; this is based on the libGAP code by SageMath, but different:
while we aim to provide the same functionality, we do not rename any
symbols, and we do not provide the same API. We hope that a future
version of SageMath can drop its custom modifications for GAP and use
this interface instead. Work is underway to achieve this goal. If you
are interested in this kind of interface, please get in touch with us to
help us improve it. 

In addition, GAP 4.10.0 includes a number of improvements and 
extensions of GAP functionality, changes in the GAP documentation,
removing or making obsolete some functionality that was already
deprecated for a long time, and a number of bugfixes. The complete
description of these changes, with links to the documentation and to
GitHub pull requests is available at 

    https://www.gap-system.org/Manuals/doc/changes/chap2.html

Additionally, GAP 4.10.0 distribution contains 140 packages, including
numerous updates of previously redistributed packages. 

Added to the distribution:

* The francy package by Manuel Martins, which provides an interface to
draw graphics using objects. This interface allows creation of directed
and undirected graphs, trees, line charts, bar charts and scatter
charts. These graphical objects are drawn inside a canvas that includes
a space for menus and to display informative messages. Within the canvas
it is possible to interact with the graphical objects by clicking,
selecting, dragging and zooming.

* The JupyterVis package by Nathan Carter, which is intended for use in
Jupyter Notebooks running GAP kernels and adds visualization tools for
use in such notebooks, such as charts and graphs.

No longer redistributed with GAP:

* The linboxing package has been unusable (it does not compile) for
several years now, and is unmaintained. It was therefore dropped from
the GAP package distribution. If anybody is willing to take over and 
fix the package, the latest sources are available at
https://github.com/gap-packages/linboxing.

* The recogbase package has been merged into the recog package, and
therefore is no longer distributed with GAP.

The full list of new and updated packages in the GAP 4.10.0 
distribution is:

Package name               | Version    | Date 
----------------------------------------------------
AClib                      | 1.3.1      | 11/10/2018  
AutoDoc                    | 2018.09.20 | 20/09/2018  
Automata                   | 1.14       | 26/09/2018  
AutomGrp                   | 1.3.1      | 30/09/2018  
CAP                        | 2018.08.31 | 31/08/2018  
cohomolo                   | 1.6.7      | 14/09/2018  
Convex                     | 2015.11.06 | 06/11/2015  
CRIME                      | 1.5        | 11/10/2018  
crypting                   | 0.9        | 22/09/2018  
Cryst                      | 4.1.18     | 23/10/2018  
curlInterface              | 2.1.1      | 26/10/2018  
DeepThought                | 1.0.2      | 13/09/2018  
Digraphs                   | 0.13.0     | 19/09/2018  
Forms                      | 1.2.5      | 27/09/2018  
Francy                     | 1.0.4      | 18/10/2018  
GAPDoc                     | 1.6.2      | 17/10/2018  
Gauss                      | 2018.09.08 | 08/09/2018  
GeneralizedMorphismsForCAP | 2018.06.15 | 15/06/2018  
GRAPE                      | 4.8.1      | 24/10/2018  
groupoids                  | 1.63       | 23/10/2018  
Guarana                    | 0.96.1     | 21/09/2018  
HAP                        | 1.15       | 19/09/2018  
hecke                      | 1.5        | 10/09/2018  
idrel                      | 2.42       | 13/09/2018  
IO                         | 4.5.4      | 19/09/2018  
JupyterKernel              | 1.0        | 05/10/2018  
JupyterViz                 | 1.2.0      | 28/10/2018  
kbmag                      | 1.5.6      | 14/09/2018  
LiePRing                   | 1.9.2      | 11/10/2018  
LinearAlgebraForCAP        | 2018.02.07 | 07/02/2018  
lpres                      | 1.0.0      | 19/09/2018  
MapClass                   | 1.4.3      | 15/09/2018  
matgrp                     | 0.51       | 17/09/2018  
MatricesForHomalg          | 2018.08.25 | 25/08/2018  
ModIsom                    | 2.4.0      | 16/09/2018  
ModulePresentationsForCAP  | 2018.02.02 | 02/02/2018  
orb                        | 4.8.1      | 10/09/2018  
PolymakeInterface          | 2018.09.25 | 25/09/2018  
PrimGrp                    | 3.3.2      | 27/10/2018  
QPA                        | 1.29       | 10/10/2018  
recog                      | 1.3.1      | 18/09/2018  
Semigroups                 | 3.0.20     | 01/10/2018  
SgpViz                     | 0.999.4    | 29/10/2018  
simpcomp                   | 2.1.9      | 20/10/2018  
singular                   | 2018.09.10 | 10/09/2018  
SONATA                     | 2.9.1      | 07/10/2018  
TomLib                     | 1.2.7      | 26/10/2018  
utils                      | 0.59       | 04/10/2018  
uuid                       | 0.6        | 22/09/2018  
Wedderga                   | 4.9.4      | 15/09/2018  
XGAP                       | 4.28       | 12/09/2018  
XMod                       | 2.72       | 16/09/2018  
----------------------------------------------------

We encourage all users to upgrade to GAP 4.10.0. You can download 
source archives for Linux and macOS, as well as the GAP installer
for Windows from http://www.gap-system.org/Releases/. In addition,
the following alternatives already provide GAP 4.10:

* GAP Docker container:

    https://hub.docker.com/r/gapsystem/gap-docker/

* GAP.app by Russ Woodroofe:

    https://cocoagap.sourceforge.io/

You can also try GAP 4.10.0 in a remote Jupyter notebook on Binder:

    https://github.com/gap-system/try-gap-in-jupyter

If you need any help or would like to report any problems, please do not
hesitate to contact us at support at gap-system.org, or submit new issues
on GitHub: 

	https://github.com/gap-system/gap/issues

There is also a 'gap' tag for questions about GAP at the Mathematics 
Q&A site:

   http://math.stackexchange.com/tags/gap/info

In addition, you may find some GAP related news on Twitter:

   http://twitter.com/gap_system 


Wishing you fun and success using GAP,

Alexander Konovalov
on behalf of the GAP Group



More information about the Forum mailing list