
| Current Path : /usr/share/gap/doc/changes/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/share/gap/doc/changes/chap2.txt |
[1X2 [33X[0;0YChanges between [5XGAP[105X[101X[1X 4.9 and [5XGAP[105X[101X[1X 4.10[133X[101X
[33X[0;0YThis chapter contains an overview of the most important changes introduced
in [5XGAP[105X 4.10.0 release (the first public release of [5XGAP[105X 4.10). Later it will
also contain information about subsequent update releases for [5XGAP[105X 4.10.[133X
[33X[0;0YThese changes are also listed on the Wiki page
[7Xhttps://github.com/gap-system/GAP/wiki/gap-4.10-release-notes[107X.[133X
[1X2.1 [33X[0;0Y[5XGAP[105X[101X[1X 4.10.0 (November 2018)[133X[101X
[1X2.1-1 [33X[0;0YNew features and major changes[133X[101X
[8XReduce impact of immediate methods[108X
[33X[0;6Y[5XGAP[105X allows declaring so-called [21Ximmediate methods[121X. 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 [10XIsFinite[110X and
[10XIsTrivial[110X of the group suitably.[133X
[33X[0;6YWhile this can be very elegant and useful in interactive [5XGAP[105X 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.[133X
[33X[0;6YTo address this, various steps were taken:[133X
[30X [33X[0;12Ysome immediate methods were turned into regular methods;[133X
[30X [33X[0;12Ya special handlers for [10XSetSize[110X was created that deduces
properties which previously were taken care of by immediate
methods;[133X
[30X [33X[0;12Ysome immediate methods were replaced by implications (set via
[10XInstallTrueMethod[110X), a mechanism that essentially adds zero
overhead, unlike immediate methods;[133X
[30X [33X[0;12Yvarious group constructors were modified to precompute and
preset properties of freshly created group objects, to avoid
triggering immediate methods for these.[133X
[33X[0;6YAs a result of these and other changes, consider the following
example; with [5XGAP[105X 4.9, it takes about 130 seconds on one test system,
while with [5XGAP[105X 4.10 it runs in about 22 seconds, i.e., more than six
times faster.[133X
[4X [32X Example [32X[104X
[4X[28XG:=PcGroupCode( 741231213963541373679312045151639276850536621925972119311,11664);;[128X[104X
[4X[28XIsomorphismGroups(G,PcGroupCode(CodePcGroup(G),Size(G)))<>fail;[128X[104X
[4X[32X[104X
[33X[0;6YRelevant pull requests and issues: #2386
([7Xhttps://github.com/gap-system/gap/pull/2386[107X), #2387
([7Xhttps://github.com/gap-system/gap/pull/2387[107X), #2522
([7Xhttps://github.com/gap-system/gap/pull/2522[107X).[133X
[8XChange definition of [10XIsPGroup[110X[8X to [13Xnot[113X require finiteness[108X
[33X[0;6YThis 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 [5XGAP[105X users: In the past, the [5XGAP[105X manual entry for
[10XIsPGroup[110X defined [22Xp[122X-groups as being finite groups, which differs from
the most commonly used definition for [22Xp[122X-groups. Note however that
there was not actual implication installed from [10XIsPGroup[110X to [10XIsFinite[110X,
so it always was possible to actually created infinite groups in the
filter [10XIsPGroup[110X. In [5XGAP[105X 4.10, we adjusted (in #1545
([7Xhttps://github.com/gap-system/gap/pull/1545[107X)) the documentation for
[10XIsPGroup[110X to the commonly accepted definition for [22Xp[122X-groups. In
addition, code in the [5XGAP[105X library and in packages using [10XIsPGroup[110X was
audited and (in a very few cases) adjusted to explicitly check
[10XIsFinite[110X (see e.g. #2866
([7Xhttps://github.com/gap-system/gap/pull/2866[107X)).[133X
[8XExperimental support for using the [5XJulia[105X garbage collector[108X
[33X[0;6YIt is now possible to use the garbage collector of the Julia language
([7Xhttps://julialang.org[107X) instead of [5XGAP[105X's traditional [5XGASMAN[105X garbage
collector. This is partly motivated by a desire to allow tight
integration with [5XGAP[105X and [5XJulia[105X in the future. Warning: right now, this
is [13Xslower[113X, and also requires a patched version of [5XJulia[105X.[133X
[33X[0;6YRelevant pull requests: #2092
([7Xhttps://github.com/gap-system/gap/pull/2092[107X), #2408
([7Xhttps://github.com/gap-system/gap/pull/2408[107X), #2461
([7Xhttps://github.com/gap-system/gap/pull/2461[107X), #2485
([7Xhttps://github.com/gap-system/gap/pull/2485[107X), #2495
([7Xhttps://github.com/gap-system/gap/pull/2495[107X), #2672
([7Xhttps://github.com/gap-system/gap/pull/2672[107X), #2688
([7Xhttps://github.com/gap-system/gap/pull/2688[107X), #2793
([7Xhttps://github.com/gap-system/gap/pull/2793[107X), #2904
([7Xhttps://github.com/gap-system/gap/pull/2904[107X), #2905
([7Xhttps://github.com/gap-system/gap/pull/2905[107X), #2931
([7Xhttps://github.com/gap-system/gap/pull/2931[107X).[133X
[8X[5XlibGAP[105X (work in progress)[108X
[33X[0;6YWe now provide a experimental way to allow 3rd party code to link [5XGAP[105X
as a library; this is based on the [5XlibGAP[105X code by SageMath
([7Xhttps://www.sagemath.org[107X), 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 [5XSageMath[105X can
drop its custom modifications for [5XGAP[105X 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.
See also this email
([7Xhttps://mail.gap-system.org/pipermail/gap/2018-August/001123.html[107X).[133X
[33X[0;6YTo get an idea how [5XlibGAP[105X works, you can configure [5XGAP[105X as normal, and
then execute [10Xmake testlibgap[110X which will build a small program that
uses some of the existing API and links [5XGAP[105X. Relevant pull requests:[133X
[30X [33X[0;12Y#1690 ([7Xhttps://github.com/gap-system/gap/pull/1690[107X) Add a
callback to [10XFuncJUMP_TO_CATCH[110X[133X
[30X [33X[0;12Y#2528 ([7Xhttps://github.com/gap-system/gap/pull/2528[107X) Add [10XIsLIBGAP[110X
constant[133X
[30X [33X[0;12Y#2702 ([7Xhttps://github.com/gap-system/gap/pull/2702[107X) Add [5XGAP[105X
kernel API[133X
[30X [33X[0;12Y#2723 ([7Xhttps://github.com/gap-system/gap/pull/2723[107X) Introduce
command line options [10X--norepl[110X and [10X--nointeract[110X[133X
[1X2.1-2 [33X[0;0YImproved and extended functionality[133X[101X
[30X [33X[0;6Y#2041 ([7Xhttps://github.com/gap-system/gap/pull/2041[107X) Teach
[10XFrattiniSubgroup[110X methods to check for solvability[133X
[30X [33X[0;6Y#2053 ([7Xhttps://github.com/gap-system/gap/pull/2053[107X) Faster computation
of modular inverses of integers[133X
[30X [33X[0;6Y#2057 ([7Xhttps://github.com/gap-system/gap/pull/2057[107X) Various changes,
including:[133X
[30X [33X[0;12YImprove computation of automorphism groups for fp groups (we
still recommend to instead first convert the group to a
computationally nice representation, such as a perm or pc group)[133X
[30X [33X[0;12YAdd [2XMinimalFaithfulPermutationDegree[102X ([14XReference:
MinimalFaithfulPermutationDegree[114X) attribute for finite groups[133X
[30X [33X[0;12YImprove performance of [10XGQuotients(F,G)[110X when [10XF[110X is an fp group[133X
[30X [33X[0;12YSome other performance and documentation tweaks[133X
[30X [33X[0;6Y#2061 ([7Xhttps://github.com/gap-system/gap/pull/2061[107X), #2086
([7Xhttps://github.com/gap-system/gap/pull/2086[107X), #2159
([7Xhttps://github.com/gap-system/gap/pull/2159[107X), #2306
([7Xhttps://github.com/gap-system/gap/pull/2306[107X) Speed up [10XGcdInt[110X, [10XLcmInt[110X,
[10XPValuation[110X, [10XRootInt[110X, [10XSmallestRootInt[110X, [10XIsPrimePowerInt[110X[133X
[30X [33X[0;6Y#2063 ([7Xhttps://github.com/gap-system/gap/pull/2063[107X) Teach [5XGAP[105X that
BPSW pseudo primes less than [22X2^64[122X are all known to be prime (the
previous limit was [22X10^13[122X)[133X
[30X [33X[0;6Y#2091 ([7Xhttps://github.com/gap-system/gap/pull/2091[107X) Refactor
[10XDeclareAttribute[110X and [10XNewAttribute[110X (arguments are now verified
stricter)[133X
[30X [33X[0;6Y#2115 ([7Xhttps://github.com/gap-system/gap/pull/2115[107X), #2204
([7Xhttps://github.com/gap-system/gap/pull/2204[107X), #2272
([7Xhttps://github.com/gap-system/gap/pull/2272[107X) Allow (optionally)
passing a random source to many more [10XRandom[110X methods than before, and
also to [10XRandomList[110X[133X
[30X [33X[0;6Y#2136 ([7Xhttps://github.com/gap-system/gap/pull/2136[107X) Add [10Xshortname[110X
entry to record returned by [10XIsomorphismTypeInfoFiniteSimpleGroup[110X[133X
[30X [33X[0;6Y#2181 ([7Xhttps://github.com/gap-system/gap/pull/2181[107X) Implement
[10XUnion(X,Y)[110X, where [10XX[110X and [10XY[110X are in [10XPositiveIntegers[110X,
[10XNonnegativeIntegers[110X, [10XIntegers[110X, [10XGaussianIntegers[110X, [10XRationals[110X,
[10XGaussianRationals[110X, [10XCyclotomics[110X, at least where a suitable output
object exists (we already provided [10XIntersection(X,Y)[110X for a long time)[133X
[30X [33X[0;6Y#2185 ([7Xhttps://github.com/gap-system/gap/pull/2185[107X) Implement
[10XIsCentral(M,x)[110X, where [10XM[110X is a magma, monoid, group, ring, algebra, etc.
and [10Xx[110X an element of [10XM[110X (the documentation already claimed that these
exist for a long time)[133X
[30X [33X[0;6Y#2199 ([7Xhttps://github.com/gap-system/gap/pull/2199[107X) Optimize
true/false conditions when coding if-statements[133X
[30X [33X[0;6Y#2200 ([7Xhttps://github.com/gap-system/gap/pull/2200[107X) Add
[2XStringFormatted[102X ([14XReference: StringFormatted[114X), [2XPrintFormatted[102X
([14XReference: PrintFormatted[114X), [2XPrintToFormatted[102X ([14XReference:
PrintToFormatted[114X)[133X
[30X [33X[0;6Y#2222 ([7Xhttps://github.com/gap-system/gap/pull/2222[107X) Turn hidden
implications into actual implications[133X
[30X [33X[0;6Y#2223 ([7Xhttps://github.com/gap-system/gap/pull/2223[107X) Add operation
[2XPositionsBound[102X ([14XReference: PositionsBound[114X) which returns the set of
all bound positions in a given list[133X
[30X [33X[0;6Y#2224 ([7Xhttps://github.com/gap-system/gap/pull/2224[107X), #2243
([7Xhttps://github.com/gap-system/gap/pull/2243[107X), #2340
([7Xhttps://github.com/gap-system/gap/pull/2340[107X) Improve
[10XShowImpliedFilters[110X output[133X
[30X [33X[0;6Y#2225 ([7Xhttps://github.com/gap-system/gap/pull/2225[107X) Improve
[10XLocationFunc[110X for kernel function[133X
[30X [33X[0;6Y#2232 ([7Xhttps://github.com/gap-system/gap/pull/2232[107X) Make [10XValueGlobal[110X
faster[133X
[30X [33X[0;6Y#2242 ([7Xhttps://github.com/gap-system/gap/pull/2242[107X) Add global
function [2XCycleFromList[102X ([14XReference: CycleFromList[114X)[133X
[30X [33X[0;6Y#2244 ([7Xhttps://github.com/gap-system/gap/pull/2244[107X) Make [10Xrank[110X argument
to [10XInstallImmediateMethod[110X optional, similar to [10XInstallMethod[110X[133X
[30X [33X[0;6Y#2274 ([7Xhttps://github.com/gap-system/gap/pull/2274[107X) Ensure uniform
printing of machine floats [10Xnan[110X, [10Xinf[110X, [10X-inf[110X across different operating
systems[133X
[30X [33X[0;6Y#2287 ([7Xhttps://github.com/gap-system/gap/pull/2287[107X) Turn
[10XIsInfiniteAbelianizationGroup[110X into a property and add some
implications involving it[133X
[30X [33X[0;6Y#2293 ([7Xhttps://github.com/gap-system/gap/pull/2293[107X), #2602
([7Xhttps://github.com/gap-system/gap/pull/2602[107X), #2718
([7Xhttps://github.com/gap-system/gap/pull/2718[107X) Improved and documented
various kernel and memory debugging facilities (requires recompiling
[5XGAP[105X with [10X--enable-debug[110X, [10X--enable-valgrind[110X resp.
[10X--enable-memory-checking[110X)[133X
[30X [33X[0;6Y#2308 ([7Xhttps://github.com/gap-system/gap/pull/2308[107X) Method selection
code was rewritten from [5XGAP[105X to C[133X
[30X [33X[0;6Y#2326 ([7Xhttps://github.com/gap-system/gap/pull/2326[107X) Change [10XSimpleGroup[110X
to perform better input validation and improve or correct error
message for type 2E[133X
[30X [33X[0;6Y#2375 ([7Xhttps://github.com/gap-system/gap/pull/2375[107X) Make [10Xlast2[110X and
[10Xlast3[110X available in break loops[133X
[30X [33X[0;6Y#2383 ([7Xhttps://github.com/gap-system/gap/pull/2383[107X) Speed improvements
for automorphism groups[133X
[30X [33X[0;6Y#2393 ([7Xhttps://github.com/gap-system/gap/pull/2393[107X) Track location of
[10XInstallMethod[110X and [10XInstallImmediateMethod[110X[133X
[30X [33X[0;6Y#2422 ([7Xhttps://github.com/gap-system/gap/pull/2422[107X) Improve tracking
of [10XInstallMethod[110X and [10XDeclareOperation[110X[133X
[30X [33X[0;6Y#2426 ([7Xhttps://github.com/gap-system/gap/pull/2426[107X) Speed up
[10XInverseMatMod[110X with integer modulus[133X
[30X [33X[0;6Y#2427 ([7Xhttps://github.com/gap-system/gap/pull/2427[107X) Fix and complete
support for custom functions (i.e., objects which can be called like a
function using [10Xobj(arg)[110X syntax)[133X
[30X [33X[0;6Y#2456 ([7Xhttps://github.com/gap-system/gap/pull/2456[107X) Add [10XPrintString[110X
and [10XViewString[110X methods for character tables[133X
[30X [33X[0;6Y#2474 ([7Xhttps://github.com/gap-system/gap/pull/2474[107X) Change
[10XIsConstantRationalFunction[110X and [10XIsUnivariateRationalFunction[110X to return
[9Xfalse[109X if input isn't a rational function (instead of an error)[133X
[30X [33X[0;6Y#2474 ([7Xhttps://github.com/gap-system/gap/pull/2474[107X) Add methods for
multiplying rational functions over arbitrary rings by rationals[133X
[30X [33X[0;6Y#2496 ([7Xhttps://github.com/gap-system/gap/pull/2496[107X) Finite groups
whose order is known and not divisible by 4 are immediately marked as
solvable[133X
[30X [33X[0;6Y#2509 ([7Xhttps://github.com/gap-system/gap/pull/2509[107X) Rewrite support
for [11X.gz[111X compressed files to use [5Xzlib[105X, now works on Windows[133X
[30X [33X[0;6Y#2519 ([7Xhttps://github.com/gap-system/gap/pull/2519[107X), #2524
([7Xhttps://github.com/gap-system/gap/pull/2524[107X), #2531
([7Xhttps://github.com/gap-system/gap/pull/2531[107X) [10XTest[110X now rejects empty
inputs and warns if the input contains no test[133X
[30X [33X[0;6Y#2574 ([7Xhttps://github.com/gap-system/gap/pull/2574[107X) When reporting
syntax errors, [5XGAP[105X now [21Xunderlines[121X the complete last token, not just
the position where it stopped parsing[133X
[30X [33X[0;6Y#2577 ([7Xhttps://github.com/gap-system/gap/pull/2577[107X), #2613
([7Xhttps://github.com/gap-system/gap/pull/2613[107X) Add quadratic and
bilinear add forms for [10XOmega(e,d,q)[110X[133X
[30X [33X[0;6Y#2598 ([7Xhttps://github.com/gap-system/gap/pull/2598[107X) Add [10XBannerFunction[110X
to [11XPackageInfo.g[111X[133X
[30X [33X[0;6Y#2606 ([7Xhttps://github.com/gap-system/gap/pull/2606[107X) Improve [10XPageSource[110X
to work on functions that were read from a file given by a relative
path[133X
[30X [33X[0;6Y#2616 ([7Xhttps://github.com/gap-system/gap/pull/2616[107X) Speed up
computation of quotients of associative words by using existing (but
previously unused) kernel functions for that[133X
[30X [33X[0;6Y#2640 ([7Xhttps://github.com/gap-system/gap/pull/2640[107X) Work on [10XMatrixObj[110X
and [10XVectorObj[110X[133X
[30X [33X[0;6Y#2654 ([7Xhttps://github.com/gap-system/gap/pull/2654[107X) Make [10XSortex[110X stable[133X
[30X [33X[0;6Y#2666 ([7Xhttps://github.com/gap-system/gap/pull/2666[107X), #2686
([7Xhttps://github.com/gap-system/gap/pull/2686[107X) Add [10XIsBiCoset[110X attribute
for right cosets, which is true if the right coset is also a left
coset[133X
[30X [33X[0;6Y#2684 ([7Xhttps://github.com/gap-system/gap/pull/2684[107X) Add
[10XNormalSubgroups[110X methods for symmetric and alternating permutation
groups[133X
[30X [33X[0;6Y#2726 ([7Xhttps://github.com/gap-system/gap/pull/2726[107X) Validate
[11XPackageInfo.g[111X when loading packages[133X
[30X [33X[0;6Y#2733 ([7Xhttps://github.com/gap-system/gap/pull/2733[107X) Minor performance
improvements, code cleanup and very local fixes[133X
[30X [33X[0;6Y#2750 ([7Xhttps://github.com/gap-system/gap/pull/2750[107X) Reject some
invalid uses of [10X~[110X[133X
[30X [33X[0;6Y#2812 ([7Xhttps://github.com/gap-system/gap/pull/2812[107X) Reduce memory
usage and improve performance the MTC (modified Todd-Coxeter) code
that was rewritten in [5XGAP[105X 4.9, but which was much slower than the old
(but buggy) code it replaced; the difference is now small, but the old
code still is faster in some case.[133X
[30X [33X[0;6Y#2855 ([7Xhttps://github.com/gap-system/gap/pull/2855[107X), #2877
([7Xhttps://github.com/gap-system/gap/pull/2877[107X) Add [2XIsPackageLoaded[102X
([14XReference: IsPackageLoaded[114X)[133X
[30X [33X[0;6Y#2878 ([7Xhttps://github.com/gap-system/gap/pull/2878[107X) Speed up conjugacy
tests for permutation by using random permutation of points when
selecting base in centraliser[133X
[30X [33X[0;6Y#2899 ([7Xhttps://github.com/gap-system/gap/pull/2899[107X) [10XTestDirectory[110X
reports number of failures and failed files[133X
[1X2.1-3 [33X[0;0YChanged documentation[133X[101X
[30X [33X[0;6Y#2192 ([7Xhttps://github.com/gap-system/gap/pull/2192[107X) Add an example for
[2XPRump[102X ([14XReference: PRump[114X)[133X
[30X [33X[0;6Y#2219 ([7Xhttps://github.com/gap-system/gap/pull/2219[107X) Add examples to
the relations chapter (see [14X'Reference: Relations'[114X).[133X
[30X [33X[0;6Y#2360 ([7Xhttps://github.com/gap-system/gap/pull/2360[107X) Document
[2XIdealDecompositionsOfPolynomial[102X ([14XReference:
IdealDecompositionsOfPolynomial[114X) (also accessible via its synonym
[10XDecomPoly[110X) and [2XNormalizerViaRadical[102X ([14XReference: NormalizerViaRadical[114X)[133X
[30X [33X[0;6Y#2366 ([7Xhttps://github.com/gap-system/gap/pull/2366[107X) Do not recommend
avoiding [10XX[110X which is a synonym for [2XIndeterminate[102X ([14XReference:
Indeterminate[114X)[133X
[30X [33X[0;6Y#2432 ([7Xhttps://github.com/gap-system/gap/pull/2432[107X) Correct a claim
about the index of [10XOmega(e,p,q)[110X in [10XSO(e,p,q)[110X (see [2XSO[102X ([14XReference: SO[114X))[133X
[30X [33X[0;6Y#2549 ([7Xhttps://github.com/gap-system/gap/pull/2549[107X) Update
documentation of the [10X-T[110X command line option (see [14X'Reference: Command
Line Options'[114X)[133X
[30X [33X[0;6Y#2551 ([7Xhttps://github.com/gap-system/gap/pull/2551[107X) Add new command
line option [10X--alwaystrace[110X which ensures error backtraces are printed
even if break loops are disabled (see [14X'Reference: Command Line
Options'[114X)[133X
[30X [33X[0;6Y#2681 ([7Xhttps://github.com/gap-system/gap/pull/2681[107X) Documented
[2XClassPositionsOfSolvableRadical[102X ([14XReference:
ClassPositionsOfSolvableRadical[114X) and [2XCharacterTableOfNormalSubgroup[102X
([14XReference: CharacterTableOfNormalSubgroup[114X)[133X
[30X [33X[0;6Y#2834 ([7Xhttps://github.com/gap-system/gap/pull/2834[107X) Improve manual
section about [10XInfo[110X classes (see [14X'Reference: Info Functions'[114X)[133X
[1X2.1-4 [33X[0;0YFixed bugs that could lead to crashes[133X[101X
[30X [33X[0;6Y#2154 ([7Xhttps://github.com/gap-system/gap/pull/2154[107X), #2242
([7Xhttps://github.com/gap-system/gap/pull/2242[107X), #2294
([7Xhttps://github.com/gap-system/gap/pull/2294[107X), #2344
([7Xhttps://github.com/gap-system/gap/pull/2344[107X), #2353
([7Xhttps://github.com/gap-system/gap/pull/2353[107X), #2736
([7Xhttps://github.com/gap-system/gap/pull/2736[107X) Fix several potential
(albeit rare) crashes related to garbage collection[133X
[30X [33X[0;6Y#2196 ([7Xhttps://github.com/gap-system/gap/pull/2196[107X) Fix crash in
[10XHasKeyBag[110X on SPARC Solaris 11[133X
[30X [33X[0;6Y#2305 ([7Xhttps://github.com/gap-system/gap/pull/2305[107X) Fix crash in
[10XPartialPerm([1,2,8],[3,4,1,2]);[110X[133X
[30X [33X[0;6Y#2477 ([7Xhttps://github.com/gap-system/gap/pull/2477[107X) Fix crash if [10X~[110X is
used to modify list[133X
[30X [33X[0;6Y#2499 ([7Xhttps://github.com/gap-system/gap/pull/2499[107X) Fix crash in the
kernel functions [10X{8,16,32}Bits_ExponentSums3[110X[133X
[30X [33X[0;6Y#2601 ([7Xhttps://github.com/gap-system/gap/pull/2601[107X) Fix crash in
[10XMakeImmutable(rec(x:=~));[110X[133X
[30X [33X[0;6Y#2665 ([7Xhttps://github.com/gap-system/gap/pull/2665[107X) Fix crash when an
empty filename is passed[133X
[30X [33X[0;6Y#2711 ([7Xhttps://github.com/gap-system/gap/pull/2711[107X) Fix crash when
tracing buggy attribute/property methods that fail to return a value[133X
[30X [33X[0;6Y#2766 ([7Xhttps://github.com/gap-system/gap/pull/2766[107X) Fix obscure
crashes by using [10Xa!{l}[110X syntax inside a function (this syntax never was
fully implemented and was unusable, and now has been removed)[133X
[1X2.1-5 [33X[0;0YFixed bugs that could lead to incorrect results[133X[101X
[30X [33X[0;6Y#2085 ([7Xhttps://github.com/gap-system/gap/pull/2085[107X) Fix bugs in
[10XJenningsLieAlgebra[110X and [10XPCentralLieAlgebra[110X that could e.g. lead to
incorrect [10XLieLowerCentralSeries[110X results[133X
[30X [33X[0;6Y#2113 ([7Xhttps://github.com/gap-system/gap/pull/2113[107X) Fix [10XIsMonomial[110X for
reducible characters and some related improvements[133X
[30X [33X[0;6Y#2183 ([7Xhttps://github.com/gap-system/gap/pull/2183[107X) Fix bug in
[10XValueMolienSeries[110X that could lead to [10XValueMolienSeries(m,0)[110X not being
1[133X
[30X [33X[0;6Y#2198 ([7Xhttps://github.com/gap-system/gap/pull/2198[107X) Make
multiplication of larger integers by tiny floats commutative (e.g. now
[22X10.^-300 * 10^400[122X and [22X10^400 * 10.^-300[122X both give infinity, while
before [22X10^400 * 10.^-300[122X gave [22X1.e+100[122X); also ensure various strange
inputs, like [10Xrec()^1;[110X, produce an error (instead of setting [10Xa^1 = a[110X
and [10X1*a = a[110X for almost any kind of object)[133X
[30X [33X[0;6Y#2273 ([7Xhttps://github.com/gap-system/gap/pull/2273[107X) Fix
[10XTypeOfOperation[110X for setters of and-filters[133X
[30X [33X[0;6Y#2275 ([7Xhttps://github.com/gap-system/gap/pull/2275[107X), #2280
([7Xhttps://github.com/gap-system/gap/pull/2280[107X) Fix
[10XIsFinitelyGeneratedGroup[110X and [10XIsFinitelyGeneratedMonoid[110X to not
(incorrectly) assume that a given infinite generating set implies that
there is no finite generating set[133X
[30X [33X[0;6Y#2311 ([7Xhttps://github.com/gap-system/gap/pull/2311[107X) Do not set
[10XIsFinitelyGeneratedGroup[110X for finitely generated magmas which are not
groups[133X
[30X [33X[0;6Y#2452 ([7Xhttps://github.com/gap-system/gap/pull/2452[107X) Fix bug that
allowed creating empty magmas in the filters [10XIsTrivial[110X and
[10XIsMagmaWithInverses[110X[133X
[30X [33X[0;6Y#2689 ([7Xhttps://github.com/gap-system/gap/pull/2689[107X) Fix [10XLogFFE[110X to not
return negative results on 32 bit systems[133X
[30X [33X[0;6Y#2766 ([7Xhttps://github.com/gap-system/gap/pull/2766[107X) Fix a bug that
allowed creating corrupt permutations[133X
[1X2.1-6 [33X[0;0YFixed bugs that could lead to break loops[133X[101X
[30X [33X[0;6Y#2040 ([7Xhttps://github.com/gap-system/gap/pull/2040[107X) Raise error if
eager float literal conversion fails (fixes #1105
([7Xhttps://github.com/gap-system/gap/pull/1105[107X))[133X
[30X [33X[0;6Y#2582 ([7Xhttps://github.com/gap-system/gap/pull/2582[107X) Fix
[10XExtendedVectors[110X for trivial vector spaces[133X
[30X [33X[0;6Y#2617 ([7Xhttps://github.com/gap-system/gap/pull/2617[107X) Fix
[10XHighestWeightModule[110X for Lie algebras in certain cases[133X
[30X [33X[0;6Y#2829 ([7Xhttps://github.com/gap-system/gap/pull/2829[107X) Fix [10XShallowCopy[110X
for [10XIteratorOfCartesianProduct[110X[133X
[1X2.1-7 [33X[0;0YOther fixed bugs[133X[101X
[30X [33X[0;6Y#2220 ([7Xhttps://github.com/gap-system/gap/pull/2220[107X) Do not set
[10XIsSubsetLocallyFiniteGroup[110X filter for finite fields[133X
[30X [33X[0;6Y#2268 ([7Xhttps://github.com/gap-system/gap/pull/2268[107X) Handle spaces in
filenames of gzipped filenames[133X
[30X [33X[0;6Y#2269 ([7Xhttps://github.com/gap-system/gap/pull/2269[107X), #2660
([7Xhttps://github.com/gap-system/gap/pull/2660[107X) Fix some issues with the
interface between [5XGAP[105X and [5XXGAP[105X (or other similar frontends for [5XGAP[105X)[133X
[30X [33X[0;6Y#2315 ([7Xhttps://github.com/gap-system/gap/pull/2315[107X) Prevent creation
of groups of floats, just like we prevent creation of groups of
cyclotomics[133X
[30X [33X[0;6Y#2350 ([7Xhttps://github.com/gap-system/gap/pull/2350[107X) Fix prompt after
line continuation[133X
[30X [33X[0;6Y#2365 ([7Xhttps://github.com/gap-system/gap/pull/2365[107X) Fix tracing of
mutable variants of [10XOne[110X/[10XZero[110X/[10XInv[110X/[10XAInv[110X[133X
[30X [33X[0;6Y#2398 ([7Xhttps://github.com/gap-system/gap/pull/2398[107X) Fix [10XPositionStream[110X
to report correct position[133X
[30X [33X[0;6Y#2467 ([7Xhttps://github.com/gap-system/gap/pull/2467[107X) Fix support for
identifiers of length 1023 and more[133X
[30X [33X[0;6Y#2470 ([7Xhttps://github.com/gap-system/gap/pull/2470[107X) Do not display
garbage after certain syntax error messages[133X
[30X [33X[0;6Y#2533 ([7Xhttps://github.com/gap-system/gap/pull/2533[107X) Fix composing a
map with an identity map to not produce a range that is too big[133X
[30X [33X[0;6Y#2638 ([7Xhttps://github.com/gap-system/gap/pull/2638[107X) Fix result of
[10XRandom[110X on 64 bit big endian system to match those on little endian,
and on 32 bit big endian[133X
[30X [33X[0;6Y#2672 ([7Xhttps://github.com/gap-system/gap/pull/2672[107X) Fix [10XMakeImmutable[110X
for weak pointer objects, which previously failed to make subobjects
immutable[133X
[30X [33X[0;6Y#2674 ([7Xhttps://github.com/gap-system/gap/pull/2674[107X) Fix [10XSaveWorkspace[110X
to return [9Xfalse[109X in case of an error, and [9Xtrue[109X only if successful[133X
[30X [33X[0;6Y#2681 ([7Xhttps://github.com/gap-system/gap/pull/2681[107X) Fix [10XDisplay[110X for
the character table of a trivial group[133X
[30X [33X[0;6Y#2716 ([7Xhttps://github.com/gap-system/gap/pull/2716[107X) When seeding a
Mersenne twister from a string, the last few characters would not be
used if the string length was not a multiple of 4. Fixing this may
lead to different series of random numbers being generated.[133X
[30X [33X[0;6Y#2720 ([7Xhttps://github.com/gap-system/gap/pull/2720[107X) Reject workspaces
made in a [5XGAP[105X with readline support in a [5XGAP[105X without, and vice versa,
instead of crashing[133X
[30X [33X[0;6Y#2657 ([7Xhttps://github.com/gap-system/gap/pull/2657[107X) The subobjects of
the mutable values of the attributes [10XComputedClassFusions[110X,
[10XComputedIndicators[110X, [10XComputedPowerMaps[110X, [10XComputedPrimeBlockss[110X are now
immutable. This makes sure that the values are not accidentally
changed. This change may have side-effects in users' code, for example
the object returned by [10X0 * ComputedPowerMaps( CharacterTable( "A5" )
)[2][110X had been a mutable list before the change, and is an immutable
list from now on.[133X
[1X2.1-8 [33X[0;0YRemoved or obsolete functionality[133X[101X
[30X [33X[0;6YRemove multiple undocumented internal functions. Nobody should have
been using them, but if you were, you may extract it from a previous
[5XGAP[105X release that still contained it. (#2670
([7Xhttps://github.com/gap-system/gap/pull/2670[107X), #2781
([7Xhttps://github.com/gap-system/gap/pull/2781[107X) and more)[133X
[30X [33X[0;6Y#2335 ([7Xhttps://github.com/gap-system/gap/pull/2335[107X) Remove several
functions and variables that were deprecated for a long time:
[10XDiagonalizeIntMatNormDriven[110X, [10XDeclarePackageDocumentation[110X,
[10XKERNEL_VERSION[110X, [10XGAP_ROOT_PATHS[110X, [10XLOADED_PACKAGES[110X, [10XPACKAGES_VERSIONS[110X,
[10XIsTuple[110X, [10XStateRandom[110X, [10XRestoreStateRandom[110X, [10XStatusRandom[110X,
[10XFactorCosetOperation[110X, [10XShrinkCoeffs[110X, [10XExcludeFromAutoload[110X,
[10XCharacterTableDisplayPrintLegendDefault[110X,
[10XConnectGroupAndCharacterTable[110X, [10XIsSemilatticeAsSemigroup[110X,
[10XCreateCompletionFiles[110X, [10XPositionFirstComponent[110X, [10XViewLength[110X[133X
[30X [33X[0;6Y#2502 ([7Xhttps://github.com/gap-system/gap/pull/2502[107X) Various kernel
functions now validate their inputs more carefully (making it harder
to produce bad effects by accidentally passing bad data to them)[133X
[30X [33X[0;6Y#2700 ([7Xhttps://github.com/gap-system/gap/pull/2700[107X) Forbid
constructors with 0 arguments (they were never meaningful)[133X
[1X2.1-9 [33X[0;0YPackages[133X[101X
[33X[0;0Y[5XGAP[105X 4.10.0 distribution includes 140 packages.[133X
[33X[0;0YAdded to the distribution:[133X
[30X [33X[0;6YThe [5Xfrancy[105X 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.[133X
[30X [33X[0;6YThe [5XJupyterVis[105X package by Nathan Carter, which is intended for use in
Jupyter Notebooks running [5XGAP[105X kernels and adds visualization tools for
use in such notebooks, such as charts and graphs.[133X
[33X[0;0YNo longer redistributed with [5XGAP[105X:[133X
[30X [33X[0;6YThe [5Xlinboxing[105X package has been unusable (it does not compile) for
several years now, and is unmaintained. It was therefore dropped from
the [5XGAP[105X package distribution. If anybody is willing to take over and
fix the package, the latest sources are available at
[7Xhttps://github.com/gap-packages/linboxing[107X.[133X
[30X [33X[0;6YThe [5Xrecogbase[105X package has been merged into the [10Xrecog[110X package, and
therefore is no longer distributed with [5XGAP[105X.[133X
[1X2.2 [33X[0;0Y[5XGAP[105X[101X[1X 4.10.1 (February 2019)[133X[101X
[1X2.2-1 [33X[0;0YChanges in the core [5XGAP[105X[101X[1X system introduced in [5XGAP[105X[101X[1X 4.10.1[133X[101X
[33X[0;0YFixes in the experimental way to allow 3rd party code to link [5XGAP[105X as a
library:[133X
[30X [33X[0;6YDo not start a session when loading workspace if [10X--nointeract[110X command
line option is used (#2840
([7Xhttps://github.com/gap-system/gap/pull/2840[107X)).[133X
[30X [33X[0;6YAdd prototype for [10XGAP_Enter[110X and [10XGAP_Leave[110X macros (#3096
([7Xhttps://github.com/gap-system/gap/pull/3096[107X)).[133X
[30X [33X[0;6YPrevent infinite recursions in [10Xechoandcheck[110X and [10XSyWriteandcheck[110X (#3102
([7Xhttps://github.com/gap-system/gap/pull/3102[107X)).[133X
[30X [33X[0;6YRemove [10Xenviron[110X arguments and [10Xsysenviron[110X (#3111
([7Xhttps://github.com/gap-system/gap/pull/3111[107X)).[133X
[33X[0;0YFixes in the experimental support for using the Julia garbage collector:[133X
[30X [33X[0;6YFix task scanning for the Julia GC (#2969
([7Xhttps://github.com/gap-system/gap/pull/2969[107X)).[133X
[30X [33X[0;6YFix stack marking for the Julia GC (#3199
([7Xhttps://github.com/gap-system/gap/pull/3199[107X)).[133X
[30X [33X[0;6YSpecify the Julia binary instead of the Julia prefix (#3243
([7Xhttps://github.com/gap-system/gap/pull/3243[107X)).[133X
[30X [33X[0;6YExport Julia [10XCFLAGS[110X, [10XLDFLAGS[110X, and [10XLIBS[110X to [10Xsysinfo.gap[110X (#3248
([7Xhttps://github.com/gap-system/gap/pull/3248[107X)).[133X
[30X [33X[0;6YChange [10XMPtr[110X Julia type of [5XGAP[105X objects to be a subtype of the abstract
Julia [10XGapObj[110X type provided by the Julia package [10XGAPTypes.jl[110X (#3497
([7Xhttps://github.com/gap-system/gap/pull/3497[107X)).[133X
[33X[0;0YImproved and extended functionality:[133X
[30X [33X[0;6YAlways generate [10Xsysinfo.gap[110X (previously, it was only generated if the
"compatibility mode" of the build system was enabled) (#3042
([7Xhttps://github.com/gap-system/gap/pull/3042[107X)).[133X
[30X [33X[0;6YAdd support for writing to [10XERROR_OUTPUT[110X from kernel code (#3043
([7Xhttps://github.com/gap-system/gap/pull/3043[107X)).[133X
[30X [33X[0;6YAdd [10Xmake check[110X (#3285 ([7Xhttps://github.com/gap-system/gap/pull/3285[107X)).[133X
[33X[0;0YChanged documentation:[133X
[30X [33X[0;6YFix documentation of [2XNumberFFVector[102X ([14XReference: NumberFFVector[114X) and
add an example (#3079 ([7Xhttps://github.com/gap-system/gap/pull/3079[107X)).[133X
[33X[0;0YFixed bugs that could lead to crashes:[133X
[30X [33X[0;6YFix readline crash when using autocomplete with
[10Xcolored-completion-prefix[110X turned on in Bash (#2991
([7Xhttps://github.com/gap-system/gap/pull/2991[107X)).[133X
[30X [33X[0;6YFix overlapping [10Xmemcpy[110X in [10XAPPEND_LIST[110X (#3216
([7Xhttps://github.com/gap-system/gap/pull/3216[107X)).[133X
[33X[0;0YFixed bugs that could lead to incorrect results:[133X
[30X [33X[0;6YFix bugs in the code for partial permutations (#3220
([7Xhttps://github.com/gap-system/gap/pull/3220[107X)).[133X
[30X [33X[0;6YFix a bug in [10XGcd[110X for polynomials not returning standard associates,
introduced in [5XGAP[105X 4.10.0 (#3227
([7Xhttps://github.com/gap-system/gap/pull/3227[107X)).[133X
[33X[0;0YFixed bugs that could lead to break loops:[133X
[30X [33X[0;6YChange [2XGroupWithGenerators[102X ([14XReference: GroupWithGenerators[114X) to accept
collections again (to avoid regressions in code that relied on this
undocumented behavior) (#3095
([7Xhttps://github.com/gap-system/gap/pull/3095[107X)).[133X
[30X [33X[0;6YFix [2XShallowCopy[102X ([14XReference: ShallowCopy[114X) for for a Knuth-Bendix
rewriting system (#3128
([7Xhttps://github.com/gap-system/gap/pull/3128[107X)). [Reported by Ignat
Soroko][133X
[30X [33X[0;6YFix [2XIsMonomialMatrix[102X ([14XReference: IsMonomialMatrix[114X) to work with
compressed matrices (#3149
([7Xhttps://github.com/gap-system/gap/pull/3149[107X)). [Reported by Dominik
Bernhardt][133X
[33X[0;0YRemoved or obsolete functionality:[133X
[30X [33X[0;6YDisable [10Xmake install[110X (previously it displayed a warning which often
got ignored) (#3005 ([7Xhttps://github.com/gap-system/gap/pull/3005[107X)).[133X
[33X[0;0YOther fixed bugs:[133X
[30X [33X[0;6YFix some errors which stopped triggering a break loop (#3013
([7Xhttps://github.com/gap-system/gap/pull/3013[107X)).[133X
[30X [33X[0;6YFix compiler error with GCC 4.4.7 (#3026
([7Xhttps://github.com/gap-system/gap/pull/3026[107X)).[133X
[30X [33X[0;6YFix string copying logic (#3071
([7Xhttps://github.com/gap-system/gap/pull/3071[107X)).[133X
[1X2.2-2 [33X[0;0YNew and updated packages since [5XGAP[105X[101X[1X 4.10.0[133X[101X
[33X[0;0Y[5XGAP[105X 4.10.1 distribution contains 145 packages, including updated versions of
35 packages from [5XGAP[105X 4.10.0 distribution, and also the following five new
packages:[133X
[30X [33X[0;6Y[5XMajoranaAlgebras[105X by Markus Pfeiffer and Madeleine Whybrow, which
constructs Majorana representations of finite groups.[133X
[30X [33X[0;6Y[5XPackageManager[105X by Michael Torpey, providing a collection of functions
for installing and removing [5XGAP[105X packages, with the eventual aim of
becoming a full pip-style package manager for the [5XGAP[105X system.[133X
[30X [33X[0;6Y[5XThelma[105X by Victor Bovdi and Vasyl Laver, implementing algorithms to
deal with threshold elements.[133X
[30X [33X[0;6Y[5Xwalrus[105X by Markus Pfeiffer, providing methods for proving hyperbolicity
of finitely presented groups in polynomial time.[133X
[30X [33X[0;6Y[5XYangBaxter[105X by Leandro Vendramin and Alexander Konovalov, which
provides functionality to construct classical and skew braces, and
also includes a database of classical and skew braces of small orders.[133X
[1X2.3 [33X[0;0Y[5XGAP[105X[101X[1X 4.10.2 (June 2019)[133X[101X
[1X2.3-1 [33X[0;0YChanges in the core [5XGAP[105X[101X[1X system introduced in [5XGAP[105X[101X[1X 4.10.21[133X[101X
[33X[0;0YImprovements in the experimental way to allow 3rd party code to link [5XGAP[105X as
a library:[133X
[30X [33X[0;6YAdd [10XGAP_AssignGlobalVariable[110X and [10XGAP_IsNameOfWritableGlobalVariable[110X to
the [5XlibGAP[105X API (#3438 ([7Xhttps://github.com/gap-system/gap/pull/3438[107X)).[133X
[33X[0;0YFixes in the experimental support for using the [5XJulia[105X garbage collector:[133X
[30X [33X[0;6YFix of a problem where the Julia GC during a partial sweep frees some,
but not all objects of an unreachable data structure, and also may
erroneously try to mark the deallocated objects (#3412
([7Xhttps://github.com/gap-system/gap/pull/3412[107X)).[133X
[30X [33X[0;6YFix stack scanning for the Julia GC when GAP is used as a library
(#3432 ([7Xhttps://github.com/gap-system/gap/pull/3432[107X)).[133X
[33X[0;0YFixed bugs that could lead to crashes:[133X
[30X [33X[0;6YFix a bug in [2XTransformationListList[102X ([14XReference: TransformationListList
for a source and destination[114X) which could cause a crash (#3463
([7Xhttps://github.com/gap-system/gap/pull/3463[107X)).[133X
[33X[0;0YFixed bugs that could lead to incorrect results:[133X
[30X [33X[0;6YFix a bug in [2XClassPositionsOfLowerCentralSeries[102X ([14XReference:
ClassPositionsOfLowerCentralSeries[114X). [Reported by Frieder Ladisch]
(#3321 ([7Xhttps://github.com/gap-system/gap/pull/3321[107X)).[133X
[30X [33X[0;6YFix a dangerous bug in the comparison of large negative integers,
introduced in GAP 4.10.1: if [10Xx[110X and [10Xy[110X were equal, but not identical,
large negative numbers then [10Xx < y[110X returned [9Xtrue[109X instead of [9Xfalse[109X.
(#3478 ([7Xhttps://github.com/gap-system/gap/pull/3478[107X)).[133X
[33X[0;0YFixed bugs that could lead to break loops:[133X
[30X [33X[0;6YIf the group has been obtained as subgroup from a Fitting
free/solvable radical computation, the data is inherited and might not
guarantee that the factor group really is Fitting free. Added a check
and an assertion to catch this situation (#3154
([7Xhttps://github.com/gap-system/gap/pull/3154[107X)).[133X
[30X [33X[0;6YFix declaration of sparse action homomorphisms (#3281
([7Xhttps://github.com/gap-system/gap/pull/3281[107X)).[133X
[30X [33X[0;6Y[10XLatticeViaRadical[110X called [2XClosureSubgroupNC[102X ([14XReference:
ClosureSubgroupNC[114X) assuming that the parent contained all generators.
It now calls [2XClosureSubgroup[102X ([14XReference: ClosureSubgroup[114X) instead,
since this can not be always guaranteed (this could happen, for
example, in perfect subgroup computation). Also added an assertion to
[2XClosureSubgroupNC[102X ([14XReference: ClosureSubgroupNC[114X) to catch this
situation in other cases. [Reported by Serge Bouc] (#3397
([7Xhttps://github.com/gap-system/gap/pull/3397[107X)).[133X
[30X [33X[0;6YFix a "method not found" error in [2XSubdirectProduct[102X ([14XReference:
SubdirectProduct[114X) (#3485
([7Xhttps://github.com/gap-system/gap/pull/3485[107X)).[133X
[33X[0;0YOther fixed bugs:[133X
[30X [33X[0;6YFix corner case in modified Todd-Coxeter algorithm when relator is
trivial (#3311 ([7Xhttps://github.com/gap-system/gap/pull/3311[107X)).[133X
[1X2.3-2 [33X[0;0YNew and updated packages since [5XGAP[105X[101X[1X 4.10.1[133X[101X
[33X[0;0Y[5XGAP[105X 4.10.1 distribution contains 145 packages, including updated versions of
55 packages from [5XGAP[105X 4.10.1 distribution,[133X
[33X[0;0YA new package [5XMonoidalCategories[105X by Mohamed Barakat, Sebastian Gutsche and
Sebastian Posur have been added to the distribution. It is based on the [5XCAP[105X
package and implements monoidal structures for [5XCAP[105X.[133X
[33X[0;0YUnfortunately we had to withdraw the [5XQaoS[105X package from distribution of GAP,
as the servers it crucially relies on for its functionality have been
permanently retired some time ago and are not coming back (see
[7Xhttps://github.com/gap-packages/qaos/issues/13[107X for details).[133X