-
Notifications
You must be signed in to change notification settings - Fork 176
GAP 4.11 release notes
This is a page to collect most important changes planned to appear in GAP 4.11 release series.
To check if there are new pull requests that have to be added to these release notes, use the following queries:
For each pull request there, decide what to do with it: if it should be mentioned in these release notes, then add it in the appropriate place below, and afterwards give it the "added to release notes" label. Otherwise, add the "not for release notes" label. In either case, it will be removed from the list shown by the query.
Many error break loops in GAP used to allow replacing an object in a computation by another one. This ability was very tricky to use, and leads to computation results that are difficult to reproduce. At the same time, supporting this adds complexity to the GAP kernel. We therefore decided to remove this feature. Right now, this is not yet fully done, but we removed about 3/4 of these, and will remove the rest in a future GAP release. (See e.g. PR #2966).
Therefore, in order to compile it, you need a C++ compiler. See #2667 for the rationale.
The ward tool has been decommissioned in PR #2870. In the future, guard checks will be performed in a different way; however, this code is not yet complete (see PR #2845). In the meantime, guard checking is broken. If you are interested in using HPC-GAP, please consider helping us to fix this and other issues with it.
Functions were added which allow converting a GAP function object into an abstract syntax tree which can be parsed and modified from within GAP code (see PR #2628). Moreover, it is possible to convert such a syntax tree (possibly after modifying it) back into a GAP function object (see PR #3371).
-
#1633 Allow local variables in test files via
#@local <list of variables to be local>, and conditional execution of tests via#@if,#@else,#@endif - #2520 Overhaul tracking of current statement, fixing several bugs where the break loop error message referenced the wrong statement
- #2772 Add support for profiling interpreted code
- #2773 Reorder methods after new implications are added
- #2830 Undocumented functionality has now been extended and documented that allows one to construct the Green's classes of a semigroup that are contained in another Green's class (e.g. constructing the H-classes contained in an R-class)
-
#2856 Make
AtExita stack and makeDirectoryTemporarymore robust -
#2869 Fix
+and*methods for aDirectProductElementand a non-list collection - #2873 The GAP kernel version is now available in the configure script
-
#2876
IsomorphismTransformationSemigroupnow returns anIdentityMappingfor a transformation semigroup - #2923 Extend obsolete to support multiple levels
-
#2936 Add back
ViewObjmethod for generic fields - #2946, #2955,
-
#2952 Add command line option
--bareto start GAP without even needed packages (developer tool) -
#2960 Add
Listmethod accepting an iterator and a function - #2974, #3372 Improve many error messages
- #2985 Improve support for custom list object implementations
- #2998, #2999, #3007 Expose additional functionality related to chars, floats and integers via the libgap API
-
#2900 Teach
Testto abort test if ctrl-C is pressed -
#2910 Add custom
SetDimensionimplementation, and callSetDimension(A,0)in places creating trivial modules or algebras -
#2924 Improve performance of
NormalizerViaRadical -
#3031 Improve performance of
ConjugacyClassesfor solvable groups - #3053 More properties can now be preserved when constructing direct products of semigroups
-
#3075 Special redispatch for
Nat.Hom.ByNSif group is found out to be finite -
#3076 Add
IsAutoGlobalfor testing whether a variable was declared usingDeclareAutoreadableVariables - #3077 Allow appending to the command line history
- #3078 Avoid memory issues in solvable conjugacy classes routine
- #3080 Method to compute Hall subgroups of arbitrary finite groups.
-
#3093 Methods transforming small matrix groups into permutation groups now work for objects of type
IsMatrixObj -
#3099 Show a warning when
GroupWithGeneratorscalled on a domain -
#3104 Extend
IntegratedStraightLineProgramto the situation that some of the input programs return lists of elements -
#3118 Make
RefinementsanAtomicRecordso it can be added to by users -
#3129
BrauerTableOpnow works for cyclic defect such that all Brauer characters lift to characteristic zero -
#3168 Allow input and output to be mixed in
Test - #3207 Display for functions with large literals is improved
-
#3626 Customisable names of classes and characters in
Displayof character tables -
#3621 Add
Displaymethod for PC group -
#3209 Enable backtraces with
--enable-debug -
#3226 Make
last,last2,last3,timeandmemory_allocatedread-only -
#3231 Speed up
IsConjugateforIsNaturalSymmetricGroup -
#3247
CloseMutableBasisnow returnstrueif the basis was extended andfalseotherwise - #3252 Improve gac to preserve argument names of compiled functions
-
#3253
CharacterTableIsoclinicnow works for groups of type p.G.p -
#3267 Change
StructureDescriptionof an infinite cyclic group fromC0toZ -
#3278 Improve method for
IsSolvableGroup - #3335 Reduce memory usage on windows when running external programs
-
#3365 Add
First(list),Last(list)andLast(list,func) - #3370 Pragmas are now available
-
#3376
SortedListnow accepts a function as the second argument -
#3383 Implement 2-cohomology and module computations for arbitrary finite groups, not just solvable ones, via
TwoCohomologyGeneric -
#3384 Improve performance of subgroup calculations (e.g. via
ConjugacyClassesSubgroups) in some cases -
#3385 Add
FlipBlist,ClearAllBlist,SetAllBlist -
#3387 Add
ShowUsedInfoClasses - #3394 Make the descriptions for TNUMs (which we print in some error messages) more user friendly
- #3399 Support floating point numbers when specifying how much memory GAP should use, for example "-o 2.5G"
- #3420 Give more library methods human-readable names. These are used when profiling
- #3423 Improve gac to support calls to custom function objects
-
#3430
NameFunctionnow is an attribute so that custom function objects can implement support for it -
#3454 Improve error handling for
Image,Images,PreImageandPreImages -
#3455 New function
DirectProductFamily -
#3459 Add
ShowDeclarationsOfOperationhelper -
#3473 Improve an
AsListmethod for domains with storedGeneratorsOfDomain -
#3483 Change the pre-set memory limit default from 2GB to 3/4 of physical memory. Use the
-ooption if you want to change this limit. -
#3501
MaximalSubgroupsnow works even iftomlibis not available -
#3504
make bootstrapnow usescurlifwgetis unavailable under macOS - #3516 Improve performance of the Julia GC integration
- #3520 Clarify when nonabelian simple groups are meant in the documentation
-
#3522 Add
IsNonabelianSimpleGroup -
#3542 Add
--add-package-config-<PACKAGENAME>="<CONFIG_ARGS>"option toBuildPackages.shwhere<CONFIG_ARGS>are passed through to the configure script of package<PACKAGENAME> -
#3543 Add
PositionSortedBy -
#3551 Add new kernel operations
ELM_MAT,ASS_MAT -
#3513 Use
posix_spawniniostreamsif available - #3554 Add basic libgap APIs for working with matrices
-
#3564 Add
WhereWithVars, an extended version ofWherewhich prints the values of all arguments and locals - #3566 Optimise operations involving identity permutations, improve printing of permutations
-
#3630 Speed up
MaximalAbelianQuotientfor subgroups of fp groups - #3579 Speed up writing to global variables
- #3592 The values of computed attributes will no longer be stored automatically in mutable attribute-storing objects
-
#3604 Add
EuclideanDegreeandQuotientRemainderfor Z/nZ -
#3619
Randomizeis now documented, and its definition changed: note that it is nowRandomize(random_source, obj) -
#3620
make htmlcan be used to compile only HTML versions of the GAP manuals, without a PDF. -
#3683 Add
etc/Makefile.gappkg, for use in the build system of GAP package with kernel extensions -
#3690 Improve
NullspaceModQto support arbitrary moduli, and renamed it toNullspaceModN(the old name is still available as a synonym) -
#3711 Adjust
TestPackageto return information about the test result - #3715 Allow HPC-GAP to run as a forkable server process
-
#3745 Add a new kernel header
gap_all.hfor use by package authors instead ofcompiled.h -
#3746 Allow package build systems to detect GAP version by inserting
GAP_VERSIONintosysinfo.gap - #3606 Add BindingsOfClosure helper (Work in progress)
-
#2798 Clarify
MemoizePosIntFunctiondocumentation - #2946 Document what a "small integer" resp. "immediate integer" is
-
#2953 Document that
PermutationGModuleworks not just for finite fields - #3101 Remove Section 87.2-5 on "Avoiding multiplication of permutations" in the reference manual (the described functionality does not actually work)
-
#3348 Add explanation for a workaround regarding the ^-key on OSX to
INSTALL.md -
#3358 Document the two-argument version of
Set -
#3360 Improve discoverability of
rewriteToFileoption inTest -
#3363 Add some information in the documentation of
IsPrimitive. - #3374 Document that InputTextFile should not be used for binary files
-
#3449 Clarify and corrects documentation of
CompositionMapping -
#3453 Improve documentation of
GeneratorsOfDomain -
#3468 New
PrintObjmethod for general domains which know theirGeneratorsOfDomain -
#3469
DeclareCategoryCollections,constructorsare now documented and parts of the reference manual are refactored -
#3472 Document
IsRangeRepand improve the documentation ofConvertToRangeRep,IsRange, and the sectionRanges -
#3529 Document
CharacteristicSubgroups - #3591 Improve parts of the documentation in Chapter 41.
-
#3615 Document basic representations of objects (
IsInternalRep,IsDataObjectRep,IsComponentObjectRep,IsPositionalObjectRep,IsAttributeStoringRep,IsPlistRep) -
#3612 Improves the documentation of
Quotientto make it sensible for non-commutative rings, and rings with zero divisors
-
#3151 Fix crash when
ApplicableMethodis called incorrectly - #3221 Handle infinite recursion in attribute methods
-
#3491 Fix crashes when passing invalid arguments to functions for records:
\.,IsBound\.,Unbind\.and\.\:\= -
#3738 Fix bug in
CycleStructurePermfor a single cycle of length 2^16 that caused wrong answers and memory corruption
-
#2938 Fix bug related to
ImaginaryPartfor quaternion algebras -
#3103 This fixes #3097, a problem with
Orderof automorphism and #3100, a problem withGroupHomomorphismByImages -
#3392 Prevent blist functions that modify an argument in-place (such as
UniteBlist) from modifying immutable blists -
#3522
IsSimpleGroupdoes not impliesIsAlmostSimpleGroupanymore - #3575 Fix bug in calculating x/p for an integer x and permutation p, if p has been 'trimmed'.
-
#3603 Fix bug where the result of
StandardAssociateUnitcould be not a unit. -
#3611 Fix
StandardAssociateUnitfor polynomial rings to return a polynomial, not an element of the coefficient ring -
#3646 Fix bug in
MinimalFaithfulPermutationDegreethat reported a too large degree for certain groups representable as subdirect product -
#3662 Fix bug in
MaximalSubgroupClassRepsthat could lead to a wrong result -
#3689 Fix bug in
BlistListfor two ranges that could lead to wrong results -
#3690 Fix bug
NullspaceModQthat could lead to wrong results -
#3733 Fix
ConstituentsOfCharacterfor Brauer character: its result, when called with a Brauer character as its only argument, was not reliable. (This bug has been reported by Gabriel Navarro.) Also, calling it with a Brauer character table and a virtual Brauer character caused error messages
-
#3038 Fix
RankOfPartialPermSemigroupfor partial perm groups with emptyGeneratorsOfGroup - #3052 Fix the viewing of empty transformation semigroups
-
#3110 Workaround for Issue #3055 and fix for
GQuotient -
#3142 Fix
IntandRatfor float valuesnan,inf,-inf - #3192 Catch some corner cases for trivial group
-
#3331 Fix an issue with
IsomorphismGroupsif one group is finite and the other is infinite. - #3375 Improve warnings when using tabs in continuations
-
#3401
SSortedListsis not required to be homogeneous anymore -
#3437 Fix a bug with in calculating
SubdirectProductswhich could sometimes fail on valid input. -
#3559 Fix
IsUpperTriangularMatfor non-square matrices -
#3571 Fix
NrColsandNumberColumnsfor empty matrices inIsMatrix -
#3763 Fix bug in
IrrConlonleading to unexpected errors - #3865 Fix the code setting up a subgroup data structure by the solvable radical method, which could lead to unexpected errors
- #2595 Fix missing syntax warning for using undefined global variable
-
#2756 Reject invalid AND-filters such as
Center and IsAssociative -
#2903 Kernel: make
OnLeftInverseuseLQUO -
#2908 Fix profiling when
IO_Forkfrom theIO packageis used -
#2977 This fixes an infinite recursion if the rank of
IsGroupandIsFinitebecomes very large -
#3189 Ensure
IsHomogeneousList("")returntrue -
#3229 Fix the fact that the
^^^^markers on unbound globals would point to the wrong place. -
#3320 Fix the problem whereby if GAP on windows sees a
\r, it will remove the next\n, no matter how far away it is. -
#3325 Fix libgap's
GAP_ENTER_DEBUGmacro (using it previously lead to a linker error) -
#3390 Corrects input limit on 64Bit
SetCyclotomicsLimit -
#3395
PrintObj(1.)now correctly prints1. -
#3400 Fix the line breaking hints in the
ViewStringmethod for finite lists. - #3428 Fix GNU readline detection on OpenBSD, and make the configure test for it more robust
-
#3444 Remove obsolete
-acommand line option -
#3481 Fix bug which caused code which calls
PrintCSVmany times with a filename to fail eventually - #3580 Fix potential infinite loop or recursion when computing the size of infinite cyclic groups
- #3847 Fix printing of certain words in free groups (if subexpressions occur as powers iteratedly then nonsense could be displayed, but the data internally was correct)
-
#3610 Invalid use of
/on ZmodZ (e.g. dividing a unit by a zero divisor) will produce anError -
#3612 fixes some methods for
Quotient, in particularQuotient(R, x, Zero(R))now returnsfail
-
#2237 The undocumented (!) functions
InfoRead1andInfoRead2are obsolete -
#2237,
#2961 Remove the obsolete synonyms
MutableIdentityMat(forIdentityMat),MutableNullMat(forNullMat) andSHALLOW_SIZE(forSIZE_OBJ),DEBUG_LOADING(forGAPInfo.CommandLineOptions.D) -
#2919 The undocumented (!) function
SetFeatureObjis obsolete; useSetFilterObjresp.ResetFilterObjinstead. -
#3185
(Un)HideGlobalVariablesis obsolete -
#3269
TemporaryGlobalVarNameis obsolete -
#3409 Remove
BANNER,QUIET
- #3215 Issue tracker, maintainers and contributors are printed in package banners
-
#3286 Teach
ValidatePackageInfoabout the optionalLicensefield
-
#2709 Rename
MultRowVectortoMultVector(the old name is still supported, but marked as obsolete) -
#2729 Rename
QuaternionGrouptoDicyclicGroup, documentIsDihedralGroupandIsQuaternionGroup -
#3010 Read
lib/transatl.gbefore anygap.inifile, when GAP is loaded - #3406 Remove RXVT-shell support for Windows
-
#3480
BuildPackages.shnow executesmake cleanbefore full build
- AGT A library of strongly regular graphs on at most 40 vertices, and functionality to inspect combinatorial and algebraic properties of graphs in GRAPE format, by Rhys J. Evans
- CddInterface GAP interface to cdd, by Kamal Saleh
- DifSets Enumeration of the difference sets (up to equivalence) in groups, by Dylan Peifer
- ferret C++ reimplementation of Jeffery Leon’s Partition Backtrack framework for solving problems in permutation groups, by Christopher Jefferson
- images Finding minimal and canonical images in permutation groups, by Christopher Jefferson, Markus Pfeiffer, Rebecca Waldecker, Eliza Jonauskyte
- NCOnvex Polyhedral constructions and computations for cones, polyhedrons, polytopes and fans, by Kamal Saleh, Sebastian Gutsche, superseding the former Convex package
- NoCK Computation of Tolzanos’s obstruction for compact Clifford-Klein forms, by Maciej Bocheński, Piotr Jastrzębski, Anna Szczepkowska, Aleksy Tralle, Artur Woike
- RepnDecomp Algorithms for decomposing linear representations of finite groups, by Kaashif Hymabaccus