CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
2 Changes between GAP 4.7 and GAP 4.8
3
4
This chapter contains an overview of the most important changes introduced
5
in GAP 4.8.2 release (the 1st public release of GAP 4.8). Later it will also
6
contain information about subsequent update releases for GAP 4.8. First of
7
all, the GAP development repository is now hosted on GitHub at
8
https://github.com/gap-system/gap, and GAP 4.8 is the first major GAP
9
release made from this repository. The public issue tracker for the core GAP
10
system is located at https://github.com/gap-system/gap/issues, and you may
11
use appropriate milestones from https://github.com/gap-system/gap/milestones
12
to see all changes that were introduced in corresponding GAP releases. An
13
overview of the most significant ones is provided below.
14
15
16
2.1 GAP 4.8.2 (February 2016)
17
18
19
2.1-1 Changes in the core GAP system introduced in GAP 4.8
20
21
New features:
22
23
 Added support for profiling which tracks how much time in spent on
24
each line of GAP code. This can be used to show where code is spending
25
a long time and also check which lines of code are even executed. See
26
the documentation for ProfileLineByLine (Reference: ProfileLineByLine)
27
and CoverageLineByLine (Reference: CoverageLineByLine) for details on
28
generating profiles, and the Profiling package for transforming these
29
profiles into a human-readable form.
30
31
 Added ability to install (in the library or packages) methods for
32
accessing lists using multiple indices and indexing into lists using
33
indices other than positive small integers. Such methods could allow,
34
for example, to support expressions like
35
36
  Example 
37
m[1,2];
38
m[1,2,3] := x;
39
IsBound(m["a","b",Z(7)]);
40
Unbind(m[1][2,3])
41

42
43
 Added support for partially variadic functions to allow function
44
expressions like
45
46
  Example 
47
function( a, b, c, x... ) ... end;
48

49
50
which would require at least three arguments and assign the first
51
three to a, b and c and then a list containing any remaining ones to
52
x.
53
54
The former special meaning of the argument arg is still supported and
55
is now equivalent to function( arg... ), so no changes in the existing
56
code are required.
57
58
 Introduced CallWithTimeout (Reference: CallWithTimeout) and
59
CallWithTimeoutList (Reference: CallWithTimeoutList) to call a
60
function with a limit on the CPU time it can consume. This
61
functionality may not be available on all systems and you should check
62
GAPInfo.TimeoutsSupported before using this functionality.
63
64
 GAP now displays the filename and line numbers of statements in
65
backtraces when entering the break loop.
66
67
 Introduced TestDirectory (Reference: TestDirectory) function to find
68
(recursively) all .tst files from a given directory or a list of
69
directories and run them using Test (Reference: Test).
70
71
Improved and extended functionality:
72
73
 Method tracing shows the filename and line of function during tracing.
74
75
 TraceAllMethods (Reference: TraceAllMethods) and UntraceAllMethods
76
(Reference: UntraceAllMethods) to turn on and off tracing all methods
77
in GAP. Also, for the uniform approach UntraceImmediateMethods
78
(Reference: UntraceImmediateMethods) has been added as an equivalent
79
of TraceImmediateMethods(false).
80
81
 The most common cases of AddDictionary (Reference: AddDictionary) on
82
three arguments now bypass method selection, avoiding the cost of
83
determining homogeneity for plain lists of mutable objects.
84
85
 Improved methods for symmetric and alternating groups in the "natural"
86
representations and removed some duplicated code.
87
88
 Package authors may optionally specify the source code repository,
89
issue tracker and support email address for their package using new
90
components in the PackageInfo.g file, which will be used to create
91
hyperlinks from the package overview page (see PackageInfo.g from the
92
Example package which you may use as a template).
93
94
Changed functionality:
95
96
 As a preparation for the future developments to support
97
multithreading, some language extensions from the HPC-GAP project were
98
backported to the GAP library to help to unify the codebase of both
99
GAP 4 and HPC-GAP. The only change which is not backwards compatible
100
is that atomic, readonly and readwrite are now keywords, and thus are
101
no longer valid identifiers. So if you have any variables or functions
102
using that name, you will have to change it in GAP 4.8.
103
104
 There was inconsistent use of the following properties of semigroups:
105
IsGroupAsSemigroup, IsMonoidAsSemigroup, and IsSemilatticeAsSemigroup.
106
IsGroupAsSemigroup was true for semigroups that mathematically defined
107
a group, and for semigroups in the category IsGroup (Reference:
108
IsGroup); IsMonoidAsSemigroup was only true for semigroups that
109
mathematically defined monoids, but did not belong to the category
110
IsMonoid (Reference: IsMonoid); and IsSemilatticeAsSemigroup was
111
simply a property of semigroups, as there is no category
112
IsSemilattice.
113
114
From version 4.8 onwards, IsSemilatticeAsSemigroup is renamed to
115
IsSemilattice, and IsMonoidAsSemigroup returns true for semigroups in
116
the category IsMonoid (Reference: IsMonoid).
117
118
This way all of the properties of the type IsXAsSemigroup are
119
consistent. It should be noted that the only methods installed for
120
IsMonoidAsSemigroup belong to the Semigroups and Smallsemi packages.
121
122
 ReadTest became obsolete and for backwards compatibility is replaced
123
by Test (Reference: Test) with the option to compare the output up to
124
whitespaces.
125
126
 The function `ErrorMayQuit`, which differs from Error (Reference:
127
Error) by not allowing execution to continue, has been renamed to
128
ErrorNoReturn (Reference: ErrorNoReturn).
129
130
Fixed bugs:
131
132
 A combination of two bugs could lead to a segfault. First off, NullMat
133
(Reference: NullMat) (and various other GAP functions), when asked to
134
produce matrix over a small field, called ConvertToMatrixRep
135
(Reference: ConvertToMatrixRep for a list (and a field)). After this,
136
if the user tried to change one of the entries to a value from a
137
larger extension field, this resulted in an error. (This is now
138
fixed).
139
140
Unfortunately, the C code catching this error had a bug and allowed
141
users to type return to continue while ignoring the conversion error.
142
This was a bad idea, as the C code would be in an inconsistent state
143
at this point, subsequently leading to a crash.
144
145
This, too, has been fixed, by not allowing the user to ignore the
146
error by entering return.
147
148
 The Fitting-free code and code inheriting PCGS is now using
149
IndicesEANormalSteps (Reference: IndicesEANormalSteps) instead of
150
IndicesNormalSteps (Reference: IndicesNormalSteps), as these indices
151
are neither guaranteed, nor required to be maximally refined when
152
restricting to subgroups.
153
154
 A bug that caused a break loop in the computation of the Hall subgroup
155
for groups having a trivial Fitting subgroup.
156
157
 Including a break or continue statement in a function body but not in
158
a loop now gives a syntax error instead of failing at run time.
159
160
 GroupGeneralMappingByImages (Reference: GroupGeneralMappingByImages)
161
now verifies that that image of a mapping is contained in its range.
162
163
 Fixed a bug in caching the degree of transformation that could lead to
164
a non-identity transformation accidentally changing its value to the
165
identity transformation.
166
167
 Fixed the problem with using Windows default browser as a help viewer
168
using SetHelpViewer("browser");.
169
170
171
2.1-2 New and updated packages since GAP 4.7.8
172
173
At the time of the release of GAP 4.7.8 there were 119 packages
174
redistributed with GAP. New packages that have been added to the
175
redistribution since the release of GAP 4.7.8 are:
176
177
 CAP (Categories, Algorithms, Programming) package by Sebastian
178
Gutsche, Sebastian Posur and Øystein Skartsæterhagen, together with
179
three associated packages GeneralizedMorphismsForCAP,
180
LinearAlgebraForCAP and ModulePresentationsForCAP (all three - by
181
Sebastian Gutsche and Sebastian Posur).
182
183
 Digraphs package by Jan De Beule, Julius Jonušas, James Mitchell,
184
Michael Torpey and Wilf Wilson, which provides functionality to work
185
with graphs, digraphs, and multidigraphs.
186
187
 FinInG package by John Bamberg, Anton Betten, Philippe Cara, Jan De
188
Beule, Michel Lavrauw and Max Neunhöffer for computation in Finite
189
Incidence Geometry.
190
191
 HeLP package by Andreas Bächle and Leo Margolis, which computes
192
constraints on partial augmentations of torsion units in integral
193
group rings using a method developed by Luthar, Passi and Hertweck.
194
The package can be employed to verify the Zassenhaus Conjecture and
195
the Prime Graph Question for finite groups, once their characters are
196
known. It uses an interface to the software package 4ti2 to solve
197
integral linear inequalities.
198
199
 matgrp package by Alexander Hulpke, which provides an interface to the
200
solvable radical functionality for matrix groups, building on
201
constructive recognition.
202
203
 NormalizInterface package by Sebastian Gutsche, Max Horn and Christof
204
Söger, which provides a GAP interface to Normaliz, enabling direct
205
access to the complete functionality of Normaliz, such as computations
206
in affine monoids, vector configurations, lattice polytopes, and
207
rational cones.
208
209
 profiling package by Christopher Jefferson for transforming profiles
210
produced by ProfileLineByLine (Reference: ProfileLineByLine) and
211
CoverageLineByLine (Reference: CoverageLineByLine) into a
212
human-readable form.
213
214
 Utils package by Sebastian Gutsche, Stefan Kohl and Christopher
215
Wensley, which provides a collection of utility functions gleaned from
216
many packages.
217
218
 XModAlg package by Zekeriya Arvasi and Alper Odabas, which provides a
219
collection of functions for computing with crossed modules and
220
Cat1-algebras and morphisms of these structures.
221
222
223
2.2 GAP 4.8.3 (March 2016)
224
225
226
2.2-1 Changes in the core GAP system introduced in GAP 4.8.3
227
228
New features:
229
230
 New function TestPackage (Reference: TestPackage) to run standard
231
tests (if available) for a single package in the current GAP session
232
(also callable via make testpackage PKGNAME=pkgname to run package
233
tests in the same settings that are used for testing GAP releases).
234
235
Improved and extended functionality:
236
237
 TestDirectory (Reference: TestDirectory) now prints a special status
238
message to indicate the outcome of the test (this is convenient for
239
automated testing). If necessary, this message may be suppressed by
240
using the option suppressStatusMessage
241
242
 Improved output of tracing methods (which may be invoked, for example,
243
with TraceAllMethods (Reference: TraceAllMethods)) by displaying
244
filename and line number in some more cases.
245
246
Changed functionality:
247
248
 Fixed some inconsistencies in the usage of IsGeneratorsOfSemigroup
249
(Reference: IsGeneratorsOfSemigroup).
250
251
Fixed bugs that could lead to incorrect results:
252
253
 Fallback methods for conjugacy classes, that were never intended for
254
infinite groups, now use IsFinite (Reference: IsFinite) filter to
255
prevent them being called for infinite groups. [Reported by Gabor
256
Horvath]
257
258
Fixed bugs that could lead to break loops:
259
260
 Calculating stabiliser for the alternating group caused a break loop
261
in the case when it defers to the corresponding symmetric group.
262
263
 It was not possible to use DotFileLatticeSubgroups (Reference:
264
DotFileLatticeSubgroups) for a trivial group. [Reported by Sergio
265
Siccha]
266
267
 A break loop while computing AutomorphismGroup (Reference:
268
AutomorphismGroup) for TransitiveGroup(12,269). [Reported by Ignat
269
Soroko]
270
271
 A break loop while computing conjugacy classes of PSL(6,4). [Reported
272
by Martin Macaj]
273
274
Other fixed bugs:
275
276
 Fix for using Firefox as a default help viewer with SetHelpViewer
277
(Reference: SetHelpViewer). [Reported by Tom McDonough]
278
279
280
2.3 GAP 4.8.4 (June 2016)
281
282
283
2.3-1 Changes in the core GAP system introduced in GAP 4.8.4
284
285
New features:
286
287
 The GAP distribution now includes bin/BuildPackages.sh, a script which
288
can be started from the pkg directory via ../bin/BuildPackages.sh and
289
will attempt to build as many packages as possible. It replaces the
290
InstPackages.sh script which was not a part of the GAP distribution
291
and had to be downloaded separately from the GAP website. The new
292
script is more robust and simplifies adding new packages with
293
binaries, as it requires no adjustments if the new package supports
294
the standard ./configure; make build procedure.
295
296
Improved and extended functionality:
297
298
 SimpleGroup (Reference: SimpleGroup) now produces more informative
299
error message in the case when AtlasGroup (AtlasRep: AtlasGroup) could
300
not load the requested group.
301
302
 An info message with the suggestion to use InfoPackageLoading
303
(Reference: InfoPackageLoading) will now be displayed when LoadPackage
304
(Reference: LoadPackage) returns fail (unless GAP is started with -b
305
option).
306
307
 The build system will now enable C++ support in GMP only if a working
308
C++ compiler is detected.
309
310
 More checks were added when embedding coefficient rings or rational
311
numbers into polynomial rings in order to forbid adding polynomials in
312
different characteristic.
313
314
Fixed bugs that could lead to crashes:
315
316
 Fixed the crash in --cover mode when reading files with more than
317
65,536 lines.
318
319
Fixed bugs that could lead to incorrect results:
320
321
 Fixed an error in the code for partial permutations that occurred on
322
big-endian systems. [Reported by Bill Allombert]
323
324
 Fixed the kernel method for Remove (Reference: Remove) with one
325
argument, which failed to reduce the length of a list to the position
326
of the last bound entry. [Reported by Peter Schauenburg]
327
328
Fixed bugs that could lead to break loops:
329
330
 Fixed the break loop while using Factorization (Reference:
331
factorization) on permutation groups by removing some old code that
332
relied on further caching in Factorization. [Reported by Grahame
333
Erskine]
334
335
 Fixed a problem with computation of maximal subgroups in an almost
336
simple group. [Reported by Ramon Esteban Romero]
337
338
 Added missing methods for Intersection2 (Reference: Intersection2)
339
when one of the arguments is an empty list. [Reported by Wilf Wilson]
340
341
Other fixed bugs:
342
343
 Fixed several bugs in RandomPrimitivePolynomial (Reference:
344
RandomPrimitivePolynomial). [Reported by Nusa Zidaric]
345
346
 Fixed several problems with Random (Reference: Random) on long lists
347
in 64-bit GAP installations.
348
349
350
2.4 GAP 4.8.5 (September 2016)
351
352
353
2.4-1 Changes in the core GAP system introduced in GAP 4.8.5
354
355
Improved and extended functionality:
356
357
 The error messages produced when an unexpected fail is returned were
358
made more clear by explicitly telling that the result should not be
359
boolean or fail (before it only said not a boolean).
360
361
 For consistency, both NrTransitiveGroups (Reference:
362
NrTransitiveGroups) and TransitiveGroup (Reference: TransitiveGroup)
363
now disallow the transitive group of degree 1.
364
365
Fixed bugs that could lead to incorrect results:
366
367
 A bug in the code for algebraic field extensions over non-prime fields
368
that may cause, for example, a list of all elements of the extension
369
not being a duplicate-free. [Reported by Huta Gana]
370
371
 So far, FileString (GAPDoc: FileString) only wrote files of sizes less
372
than 2G and did not indicate an error in case of larger strings. Now
373
strings of any length can be written, and in the case of a failure the
374
corresponding system error is shown.
375
376
Fixed bugs that could lead to break loops:
377
378
 NaturalHomomorphismByIdeal (Reference: NaturalHomomorphismByIdeal) was
379
not reducing monomials before forming a quotient ring, causing a break
380
loop on some inputs. [Reported by Dmytro Savchuk]
381
382
 A bug in DefaultInfoHandler (Reference: DefaultInfoHandler) caused a
383
break loop on startup with the setting SetUserPreference(
384
"InfoPackageLoadingLevel", 4 )`. [Reported by Mathieu Dutour]
385
386
 The Iterator (Reference: Iterator) for permutation groups was broken
387
when the StabChainMutable (Reference: StabChainMutable for a group) of
388
the group was not reduced, which can reasonably happen as the result
389
of various algorithms.
390
391
392
2.5 GAP 4.8.6 (November 2016)
393
394
395
2.5-1 Changes in the core GAP system introduced in GAP 4.8.6
396
397
Fixed bugs that could lead to break loops:
398
399
 Fixed regression in the GAP kernel code introduced in GAP 4.8.5 and
400
breaking StringFile (GAPDoc: StringFile) ability to work with
401
compressed files. [Reported by Bill Allombert]
402
403
404
2.6 GAP 4.8.7 (March 2017)
405
406
407
2.6-1 Changes in the core GAP system introduced in GAP 4.8.7
408
409
Fixed bugs that could lead to incorrect results:
410
411
 Fixed a regression from GAP 4.7.6 when reading compressed files after
412
a workspace is loaded. Before the fix, if GAP is started with the -L
413
option (load workspace), using ReadLine (Reference: ReadLine) on the
414
input stream for a compressed file returned by InputTextFile
415
(Reference: InputTextFile) only returned the first character.
416
[Reported by Bill Allombert]
417
418
Other fixed bugs:
419
420
 Fixed compiler warning occurring when GAP is compiled with gcc 6.2.0.
421
[Reported by Bill Allombert]
422
423
424
2.6-2 New and updated packages since GAP 4.8.6
425
426
This release contains updated versions of 19 packages from GAP 4.8.6
427
distribution. Additionally, the following package has been added for the
428
redistribution with GAP:
429
430
 lpres package (author: René Hartung, maintainer: Laurent Bartholdi) to
431
work with L-presented groups, namely groups given by a finite
432
generating set and a possibly infinite set of relations given as
433
iterates of finitely many seed relations by a finite set of
434
endomorphisms. The package implements nilpotent quotient, Todd-Coxeter
435
and Reidemeister-Schreier algorithms for such groups.
436
437
438
2.7 GAP 4.8.8 (August 2017)
439
440
441
2.7-1 Changes in the core GAP system introduced in GAP 4.8.8
442
443
Fixed bugs that could lead to incorrect results:
444
445
 Fixed a bug in RepresentativeAction (Reference: RepresentativeAction)
446
producing incorrect answers for both symmetric and alternating groups,
447
with both OnTuples (Reference: OnTuples) and OnSets (Reference:
448
OnSets), by producing elements outside the group. [Reported by Mun See
449
Chang]
450
451
Fixed bugs that could lead to break loops:
452
453
 Fixed a bug in RepresentativeAction (Reference: RepresentativeAction)
454
for S_n and A_n acting on non-standard domains.
455
456
Other fixed bugs:
457
458
 Fixed a problem with checking the path to a file when using the
459
default browser as a help viewer on Windows. [Reported by Jack
460
Saunders]
461
462
463
2.7-2 New and updated packages since GAP 4.8.7
464
465
This release contains updated versions of 29 packages from GAP 4.8.7
466
distribution. Additionally, the Gpd package (author: Chris Wensley) has been
467
renamed to Groupoids.
468
469
470
2.8 GAP 4.8.9 (December 2017)
471
472
This release contains updated versions of 56 packages from GAP 4.8.8
473
distribution. The core part of the GAP system in this release is identical
474
to the one from the GAP 4.8.8 release.
475
476
477
2.9 GAP 4.8.10 (January 2018)
478
479
This release contains updated versions of 9 packages from GAP 4.8.9
480
distribution. It also contains an older version 2.8.0 of the Semigroups
481
package, which is compatible with GAP 4.8, and an older version 4.7.6 of the
482
orb package, which is compatible with the specified version of the
483
Semigroups. Additionally, it provides a working version of the Digraphs
484
package for Windows. The core part of the GAP system in this release is
485
again identical to the one from the GAP 4.8.8 release.
486
487
488