  
  [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 GAP 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
  
