Discussion:
[GAP Forum] The next major release: GAP 4.10.0
Alexander Konovalov
2018-11-12 10:29:36 UTC
Permalink
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 ***@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

Loading...