-
Notifications
You must be signed in to change notification settings - Fork 162
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
AtExit
a stack and makeDirectoryTemporary
more robust -
#2869 Fix
+
and*
methods for aDirectProductElement
and a non-list collection - #2873 The GAP kernel version is now available in the configure script
-
#2876
IsomorphismTransformationSemigroup
now returns anIdentityMapping
for a transformation semigroup - #2923 Extend obsolete to support multiple levels
-
#2936 Add back
ViewObj
method for generic fields - #2946, #2955,
-
#2952 Add command line option
--bare
to start GAP without even needed packages (developer tool) -
#2960 Add
List
method 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
Test
to abort test if ctrl-C is pressed -
#2910 Add custom
SetDimension
implementation, and callSetDimension(A,0)
in places creating trivial modules or algebras -
#2924 Improve performance of
NormalizerViaRadical
-
#3031 Improve performance of
ConjugacyClasses
for solvable groups - #3053 More properties can now be preserved when constructing direct products of semigroups
-
#3075 Special redispatch for
Nat.Hom.ByNS
if group is found out to be finite -
#3076 Add
IsAutoGlobal
for 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
GroupWithGenerators
called on a domain -
#3104 Extend
IntegratedStraightLineProgram
to the situation that some of the input programs return lists of elements -
#3118 Make
Refinements
anAtomicRecord
so it can be added to by users -
#3129
BrauerTableOp
now 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
Display
of character tables -
#3621 Add
Display
method for PC group -
#3209 Enable backtraces with
--enable-debug
-
#3226 Make
last
,last2
,last3
,time
andmemory_allocated
read-only -
#3231 Speed up
IsConjugate
forIsNaturalSymmetricGroup
-
#3247
CloseMutableBasis
now returnstrue
if the basis was extended andfalse
otherwise - #3252 Improve gac to preserve argument names of compiled functions
-
#3253
CharacterTableIsoclinic
now works for groups of type p.G.p -
#3267 Change
StructureDescription
of an infinite cyclic group fromC0
toZ
-
#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
SortedList
now 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
NameFunction
now is an attribute so that custom function objects can implement support for it -
#3454 Improve error handling for
Image
,Images
,PreImage
andPreImages
-
#3455 New function
DirectProductFamily
-
#3459 Add
ShowDeclarationsOfOperation
helper -
#3473 Improve an
AsList
method for domains with storedGeneratorsOfDomain
-
#3483 Change the pre-set memory limit default from 2GB to 3/4 of physical memory. Use the
-o
option if you want to change this limit. -
#3501
MaximalSubgroups
now works even iftomlib
is not available -
#3504
make bootstrap
now usescurl
ifwget
is 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.sh
where<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_spawn
iniostreams
if available - #3554 Add basic libgap APIs for working with matrices
-
#3564 Add
WhereWithVars
, an extended version ofWhere
which prints the values of all arguments and locals - #3566 Optimise operations involving identity permutations, improve printing of permutations
-
#3630 Speed up
MaximalAbelianQuotient
for 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
EuclideanDegree
andQuotientRemainder
for Z/nZ -
#3619
Randomize
is now documented, and its definition changed: note that it is nowRandomize(random_source, obj)
-
#3620
make html
can 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
NullspaceModQ
to support arbitrary moduli, and renamed it toNullspaceModN
(the old name is still available as a synonym) -
#3711 Adjust
TestPackage
to 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.h
for use by package authors instead ofcompiled.h
-
#3746 Allow package build systems to detect GAP version by inserting
GAP_VERSION
intosysinfo.gap
- #3606 Add BindingsOfClosure helper (Work in progress)
-
#2798 Clarify
MemoizePosIntFunction
documentation - #2946 Document what a "small integer" resp. "immediate integer" is
-
#2953 Document that
PermutationGModule
works 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
rewriteToFile
option 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
PrintObj
method for general domains which know theirGeneratorsOfDomain
-
#3469
DeclareCategoryCollections
,constructors
are now documented and parts of the reference manual are refactored -
#3472 Document
IsRangeRep
and 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
Quotient
to make it sensible for non-commutative rings, and rings with zero divisors
-
#3151 Fix crash when
ApplicableMethod
is 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
CycleStructurePerm
for a single cycle of length 2^16 that caused wrong answers and memory corruption
-
#2938 Fix bug related to
ImaginaryPart
for quaternion algebras -
#3103 This fixes #3097, a problem with
Order
of automorphism and #3100, a problem withGroupHomomorphismByImages
-
#3392 Prevent blist functions that modify an argument in-place (such as
UniteBlist
) from modifying immutable blists -
#3522
IsSimpleGroup
does not impliesIsAlmostSimpleGroup
anymore - #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
StandardAssociateUnit
could be not a unit. -
#3611 Fix
StandardAssociateUnit
for polynomial rings to return a polynomial, not an element of the coefficient ring -
#3646 Fix bug in
MinimalFaithfulPermutationDegree
that reported a too large degree for certain groups representable as subdirect product -
#3662 Fix bug in
MaximalSubgroupClassReps
that could lead to a wrong result -
#3689 Fix bug in
BlistList
for two ranges that could lead to wrong results -
#3690 Fix bug
NullspaceModQ
that could lead to wrong results -
#3733 Fix
ConstituentsOfCharacter
for 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
RankOfPartialPermSemigroup
for partial perm groups with emptyGeneratorsOfGroup
- #3052 Fix the viewing of empty transformation semigroups
-
#3110 Workaround for Issue #3055 and fix for
GQuotient
-
#3142 Fix
Int
andRat
for float valuesnan
,inf
,-inf
- #3192 Catch some corner cases for trivial group
-
#3331 Fix an issue with
IsomorphismGroups
if one group is finite and the other is infinite. - #3375 Improve warnings when using tabs in continuations
-
#3401
SSortedLists
is not required to be homogeneous anymore -
#3437 Fix a bug with in calculating
SubdirectProducts
which could sometimes fail on valid input. -
#3559 Fix
IsUpperTriangularMat
for non-square matrices -
#3571 Fix
NrCols
andNumberColumns
for empty matrices inIsMatrix
-
#3763 Fix bug in
IrrConlon
leading 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
OnLeftInverse
useLQUO
-
#2908 Fix profiling when
IO_Fork
from theIO package
is used -
#2977 This fixes an infinite recursion if the rank of
IsGroup
andIsFinite
becomes 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_DEBUG
macro (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
ViewString
method for finite lists. - #3428 Fix GNU readline detection on OpenBSD, and make the configure test for it more robust
-
#3444 Remove obsolete
-a
command line option -
#3481 Fix bug which caused code which calls
PrintCSV
many 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
InfoRead1
andInfoRead2
are obsolete -
#2237,
#2961 Remove the obsolete synonyms
MutableIdentityMat
(forIdentityMat
),MutableNullMat
(forNullMat
) andSHALLOW_SIZE
(forSIZE_OBJ
),DEBUG_LOADING
(forGAPInfo.CommandLineOptions.D
) -
#2919 The undocumented (!) function
SetFeatureObj
is obsolete; useSetFilterObj
resp.ResetFilterObj
instead. -
#3185
(Un)HideGlobalVariables
is obsolete -
#3269
TemporaryGlobalVarName
is obsolete -
#3409 Remove
BANNER
,QUIET
- #3215 Issue tracker, maintainers and contributors are printed in package banners
-
#3286 Teach
ValidatePackageInfo
about the optionalLicense
field
-
#2709 Rename
MultRowVector
toMultVector
(the old name is still supported, but marked as obsolete) -
#2729 Rename
QuaternionGroup
toDicyclicGroup
, documentIsDihedralGroup
andIsQuaternionGroup
-
#3010 Read
lib/transatl.g
before anygap.ini
file, when GAP is loaded - #3406 Remove RXVT-shell support for Windows
-
#3480
BuildPackages.sh
now executesmake clean
before 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