Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346<Chapter Label="ChangesGAP44toGAP45">1<Heading>Changes between &GAP; 4.4 and &GAP; 4.5</Heading>23This chapter lists most important changes between &GAP; 4.4.12 and the4first public release of &GAP; 4.5. It also contains information about5subsequent update releases for &GAP; 4.5.6It is not meant to serve as a complete account on all improvements;7instead, it should be viewed as an introduction to &GAP; 4.5,8accompanying its release announcement.910<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->11<Section Label="Changes in the core GAP45 system">12<Heading>Changes in the core &GAP; system introduced in &GAP; 4.5</Heading>1314In this section we list most important new features and bugfixes in the core15system introduced in &GAP; 4.5. For the list of changes in the interface16between the core system and packages as well as for an overview of new and17updated packages, see Section <Ref Sect="Packages in GAP45"/>.1819<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->20<Subsection Label="Improved mathematical functionality">21<Heading>Improved functionality</Heading>22<!-- TODO: Remove anything non-mathematical to another section -->2324Performance improvements:2526<List>27<Item>28<Index><Package>GMP support</Package></Index>29The &GAP; kernel now uses <Package>GMP</Package> (GNU multiple precision30arithmetic library, <URL>http://gmplib.org/</URL>) for faster large integer31arithmetic.32</Item>33<Item>34Improved performance for records with large number of components.35</Item>36<Item>37Speedup of hash tables implementation at the &GAP; library level.38</Item>39<Item>40<Ref Oper="MemoryUsage" BookName="ref"/> is now much41more efficient, in particular for large objects.42</Item>43<Item>44Speedups in the computation of low index subgroups, Tietze transformations,45calculating high powers of matrices over finite fields,46<Ref Func="Factorial" BookName="ref"/>, etc.47</Item>48</List>4950New and improved kernel functionality:5152<List>53<Item>54By default, the &GAP; kernel compiles with the <Package>GMP</Package> and55<Package>readline</Package> libraries. The <Package>GMP</Package> library56is supplied with &GAP; and we recommend that you use the version we57supply. There are some problems with some other versions.58It is also possible to compile the &GAP; kernel with the system59<Package>GMP</Package> if your system has it.60The <Package>readline</Package> library must be61installed on your system in advance to be used with &GAP;.62</Item>63<Item>64<Index>Floats</Index>65Floating point literals are now supported in the &GAP; language, so that,66floating point numbers can be entered in &GAP; expressions in a natural67way. Support for floats is now properly68documented, see <Ref Chap="Floats" BookName="ref"/>. &GAP; has an interface69using which packages may add new floating point implementations and70integrate them with the parser. In particular, we expect that there will soon71be a package that implements arbitrary precision floating point arithmetic.72</Item>73<Item>74The Mersenne twister random number generator has been made75independent of endianness, so that76random seeds can now be transferred between architectures. See77<Ref Sect="GlobalMersenneTwister" BookName="ref"/> for details.78</Item>79<Item>80Defaults for <C>-m</C> and <C>-o</C> options have been increased.81Changes have been made to the way that &GAP; obtains memory from82the Operating System, to make &GAP; more compatible with C libraries.83A new <C>-s</C> option has been introduced to control or turn off the84new behaviour, see <Ref Sect="Command Line Options" BookName="ref"/>.85</Item>86<Item>87The filename and lines from which a function was read can now be88recovered using <Ref Func="FilenameFunc" BookName="ref"/>,89<Ref Func="StartlineFunc" BookName="ref"/> and90<Ref Func="EndlineFunc" BookName="ref"/>.91This allows you, for example, to implement a92function such as <Ref Func="PageSource" BookName="ref"/> to show the file93containing the source code of a function or a method in a pager,94see <Ref Func="Pager" BookName="ref"/>.95</Item>96<Item>97<Ref Oper="CallFuncList" BookName="ref"/> was made into an operation98so that it can be used to define behaviour of a non-function when99called as a function.100</Item>101<Item>102Improvements to the cyclotomic number arithmetic for fields with large conductors.103</Item>104<Item>105Better and more flexible viewing of some large objects.106</Item>107<Item>108Opportunity to interrupt some long kernel computations,109e.g. multiplication of compressed matrices, intercepting110<C>Ctrl-C</C> in designated places in the kernel code111by means of a special kernel function for that purpose.112</Item>113<Item>114<C>ELM_LIST</C> now allows you to install methods where the second argument is115NOT a positive integer.116</Item>117<Item>118Kernel function <Ref Func="DirectoryContents" BookName="ref"/> to get119the list of names of files and subdirectories in a directory.120</Item>121<Item>122Kernel functions for Kronecker product of compressed matrices,123see <Ref Func="KroneckerProduct" BookName="ref"/>.124</Item>125</List>126127New and improved library functionality:128129<Index>Data libraries</Index>130<List>131<Item>132Extensions of data libraries:133<List>134<Item>135Functions and iterators are now available to create and enumerate136simple groups by their order up to isomorphism:137<Ref Func="SimpleGroup" BookName="ref"/>,138<Ref Func="SmallSimpleGroup" BookName="ref"/>,139<Ref Func="SimpleGroupsIterator" BookName="ref"/> and140<Ref Func="AllSmallNonabelianSimpleGroups" BookName="ref"/>.141</Item>142<Item>143See also packages <Package>CTblLib</Package>,144<Package>IRREDSOL</Package> and <Package>Smallsemi</Package> listed145in Section <Ref Sect="New and updated packages since GAP 4.4.12"/>.146</Item>147</List>148</Item>149<Item>150Many more methods are now available for the built-in floating point numbers,151see <Ref Chap="Floats" BookName="ref"/>.152</Item>153<Item>154The bound for the proper primality test in155<Ref Func="IsPrimeInt" BookName="ref"/>156increased up to <M>10^{18}</M>.157</Item>158<Item>159Improved code for determining transversal and double coset representatives in large groups.160</Item>161<Item>162Improvements in <Ref Oper="Normalizer" BookName="ref"/> for <M>S_n</M>.163</Item>164<Item>165Smith normal form of a matrix may be computed over arbitrary euclidean rings,166see <Ref Oper="NormalFormIntMat" BookName="ref"/>.167</Item>168<Item>169Improved algorithms to determine the subgroup lattice of a group,170as well as the function <Ref Func="DotFileLatticeSubgroups" BookName="ref"/>171to save the lattice structure in <F>.dot</F> file to view it e.g. with172<Package>GraphViz</Package>.173</Item>174<Item>175Special teaching mode which simplifies some output and provides176more basic functionality, see <Ref Sect="Teaching Mode" BookName="ref"/>.177</Item>178<Item>179Functionality specific for use in undergraduate abstract algebra180courses, e.g. checksums (<Ref Sect="Check Digits" BookName="ref"/>);181string/integer list conversion; rings of small orders; the function182<Ref Func="SetNameObject" BookName="ref"/> to set display names for183objects for more informative examples, e.g. constructing groups184from <Q>named</Q> objects, such as, for example, <C>R90</C> for a18590-degree rotation).186<!-- See section 3.3 of "Abstract Algebra in GAP" booklet by AH:187http://www.math.colostate.edu/~hulpke/CGT/howtogap.pdf -->188</Item>189<Item>190Functions <Ref Func="DirectoryDesktop" BookName="ref"/> and191<Ref Func="DirectoryHome" BookName="ref"/> which provide uniform192access to default directories under Windows, Mac OS X and Unix.193</Item>194<Item>195Improved methods for hashing when computing orbits.196</Item>197<Item>198Functionality to call external binaries under Windows.199</Item>200<Item>201Symplectic groups over residue class rings,202see <Ref Func="SymplecticGroup" BookName="ref"/>.203</Item>204<Item>205Basic version of the simplex algorithm for matrices.206</Item>207<Item>208New functions, operations and attributes:209<Ref Attr="PrimeDivisors" BookName="ref"/>,210<Ref Oper="Shuffle" BookName="ref"/> for lists,211<Ref Func="IteratorOfPartitions" BookName="ref"/>,212<Ref Func="IteratorOfCombinations" BookName="ref"/>,213<Ref Func="EnumeratorOfCombinations" BookName="ref"/>214and others.215</Item>216<Item>217The behaviour of <Ref Func="Info" BookName="ref"/> statements can now be218configured per info class, this applies to the way the arguments are219printed and to the output stream, see <Ref Sect="Info Functions" BookName="ref"/>.220</Item>221<Item>222New function <Ref Func="Test" BookName="ref"/> which is a more flexible and223informative substitute of <C>ReadTest</C> operation.224</Item>225<Item>226<C>ConnectGroupAndCharacterTable</C> is replaced by more robust227function <Ref Func="CharacterTableWithStoredGroup" BookName="ref"/>.228</Item>229</List>230231Many problems in &GAP; have have been fixed, among them the following:232233<List>234<Item>235Polynomial factorisation over rationals could miss factors of degree236greater than <M>deg(f)/2</M> if they have very small coefficients, while237the cofactor has large coefficients.238</Item>239<Item>240<Ref Oper="IntermediateSubgroups" BookName="ref"/> called on a group and241a normal subgroup did not properly calculate maximal inclusion relationships.242</Item>243<Item>244<Ref Attr="CentreOfCharacter" BookName="ref"/> and245<Ref Attr="ClassPositionsOfCentre" BookName="ref" Label="for a character"/>246called for a group character could return a perhaps too large result.247</Item>248<Item>249<Ref Attr="Trace" BookName="ref"/> called for an element of a finite field250that was created with <Ref Oper="AlgebraicExtension" BookName="ref"/>251ran into an error.252</Item>253<Item>254<Ref Func="IrreducibleRepresentationsDixon" BookName="ref"/> did not accept255a list with one character as a second argument.256</Item>257<Item>258Composing a homomorphism from a permutation group to a finitely presented259group with another homomorphism could give wrong results.260</Item>261<Item>262For certain arguments, the function <Ref Func="EU" BookName="ref"/>263returned wrong results.264</Item>265<Item>266In the table of marks of cyclic groups,267<Ref Attr="NormalizersTom" BookName="ref"/> value was wrong.268</Item>269<Item>270The function <Ref Func="PermChars" BookName="ref"/> returned a perhaps271wrong result when the second argument was a positive integer (not a record)272and the trivial character of the character table given as the first argument273was not the first in the list of irreducibles.274</Item>275<Item>276&GAP; crashed when the intersection of ranges became empty.277</Item>278<Item>279<C>IsPSL</C>, and in turn <Ref Func="StructureDescription" BookName="ref"/>,280erroneously recognised non-PSL groups of the right order as PSL.281</Item>282<Item>283The semidirect product method for pcgs computable groups sometimes tried to use284finite presentations which were not polycyclic. This usually happened when the285groups were not pc groups, and there was a very low risk of getting a wrong result.286</Item>287<Item>288The membership test for a group of finite field elements ran into an error289if the zero element of the field was given as the first argument.290</Item>291<Item>292Constant polynomials were not recognised as univariate in any variable.293</Item>294<Item>295The kernel recursion depth counter was not reset properly when296running into many break loops.297</Item>298<Item>299&GAP; did not behave well when printing of a (large) object was300interrupted with <C>Ctrl-C</C>. Now the object is no longer corrupted301and the indentation level is reset.302</Item>303</List>304305Potentially incompatible changes:306307<List>308<Item>309The zero polynomial now has degree <C>-infinity</C>,310see <Ref Attr="DegreeOfLaurentPolynomial" BookName="ref"/>.311</Item>312<Item>313Multiple unary <C>+</C> or <C>-</C> signs are no longer allowed314(to avoid confusion with increment/decrement operators from other315programming languages).316</Item>317<Item>318Due to changes to improve the performance of records with large number of319components, the ordering of record components in <C>View</C>'ed records320has changed.321</Item>322<Item>323Due to improvements for vectors over finite fields, certain objects have324more limitations on changing their base field. For example, one can not325create a compressed matrix over <M>GF(2)</M> and then assign an element326of <M>GF(4)</M> to one of its entries.327</Item>328</List>329330<Index>Completion files (withdrawn)</Index>331<Index>&GAP; 3 compatibility mode (withdrawn)</Index>332No longer supported:333<List>334<Item>335Completion files mechanism.336</Item>337<Item>338&GAP; 3 compatibility mode.339</Item>340</List>341342<Index>&GAP; compiler (no longer recommended)</Index>343In addition, we no longer recommend using the &GAP; compiler <F>gac</F> to344compile &GAP; code to <Package>C</Package>, and may withdraw it in future345releases. Compiling &GAP; code only ever gave a substantial speedup for346rather specific types of calculation, and much more benefit can usually be347achieved quite easily by writing a small number of key functions in348<Package>C</Package> and loading them into the kernel as described in349<Ref Func="LoadDynamicModule" BookName="ref"/>. The <F>gac</F> script will350remain available as a convenient way of compiling such kernel modules from351<Package>C</Package>.352<P/>353354Also, the following functions and operations were made obsolete:355<C>AffineOperation</C>,356<C>AffineOperationLayer</C>,357<C>FactorCosetOperation</C>,358<C>DisplayRevision</C>,359<C>ProductPol</C>,360<C>TeXObj</C>,361<C>LaTeXObj</C>.362363</Subsection>364365366<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->367<Subsection Label="GAP45 Distribution">368<Heading>Changes in distribution formats</Heading>369370<Index Key="tools"><F>tools</F> archive</Index>371The &GAP; 4.5 source distribution has the form of a372single archive containing the core system and the most recent <Q>stable</Q>373versions of all currently redistributed packages. There are no optional374archives to download: the <Package>TomLib</Package> package now contains all375its tables of marks in one archive; we do not provide separate versions of376manuals for Internet Explorer, and the former <F>tools</F> archive is now377included as an archive in the <F>etc</F> directory.378To unpack and install the archive, user the script379<F>etc/install-tools.sh</F>.380<P/>381382<Index>Bugfixes and packages archives (withdrawn)</Index>383We no longer distribute separate bugfix archives when the core &GAP;384system changes, or updated packages archives when a redistributed385package is updated. Instead, the single &GAP; source distribution386archive will be labelled by the version of387the core &GAP; system and also by a timestamp. This archive contains388the core system and the389stable versions of the relevant packages on that date.390To upgrade, you simply391replace the whole directory containing392the &GAP; installation, and rebuild binaries393for the &GAP; kernel and packages. For new versions of packages, we will also394continue to redistribute individual package archives so it will be395possible to update a single package without changing the rest of the396&GAP; installation.397<P/>398399Furthermore, by default &GAP; will now automatically read a user-specific400&GAP; root directory (unless &GAP; is called with the <C>-r</C> option).401All user settings can be made in that directory, so there will be no risk402of them being lost during an update (see Section403<Ref Sect="GAP45 User interface"/> below for more details). Private404packages can also be installed in this directory for the same reason.405<P/>406407There are some changes in archive formats used for the distribution: we408continue to provide <F>.tar.gz</F>, <F>.tar.bz2</F> and <F>-win.zip</F>409archives. We have added <F>.zip</F>, and stopped providing <F>.zoo</F> archives.410We no longer provide GAP binaries for Mac OS 9 (Classic) any more. For411installations from source on Mac OS X one may follow the instructions for UNIX.412<P/>413414<Index>&GAP; binary distributions</Index>415With the release of &GAP; 4.5, we also encourage more users to take416advantage of the increasingly mature binary distributions which are417now available. These include:418419<List>420421<Item>422The binary <F>rsync</F> distribution for &GAP; on Linux PCs with i686423or x86_64 compatible processors provided by Frank Lübeck, see424<URL>http://www.math.rwth-aachen.de/~Frank.Luebeck/gap/rsync</URL>.425</Item>426427<Item>428<Package>BOB</Package>, a tool for Linux and Mac OS X to download and build429&GAP; and its packages from source provided by M. Neunhöffer:430<URL>http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/bob.html</URL>.431</Item>432433<Item>434The &GAP; installer for Windows provided by Alexander Konovalov:435<URL>https://www.gap-system.org/ukrgap/wininst/</URL>.436</Item>437438</List>439In the near future, we also hope to have a binary distribution for Mac OS X.440<!-- TODO: when ready, add installers for Windows and Mac OS X by AH -->441<P/>442443Internally, we now have infrastructure to support more robust and frequent444releases, and an improved system to fetch and test new versions of445the increasingly large number of packages. The446<Package>Example</Package> package documents technical requirements for447packages, many of which are checked automatically by our systems.448This will allow us to check449the compatibility of packages with the system and with other450packages more thoroughly before publishing them on the &GAP; website.451452</Subsection>453454<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->455<Subsection Label="GAP45 User interface">456<Heading>Improvements to the user interface</Heading>457458<Index><Package>readline</Package> support</Index>459<Index>User interface customisation</Index>460By default, &GAP; now uses the <Package>readline</Package> library for461command line editing. It provides such advantages as working with462unicode terminals, nicer handling of long input lines, improved463TAB-completion and flexible configuration. For further details, see464<Ref Sect="Editing using the readline library" BookName="ref"/>.465<P/>466467We have extended facilities for user interface customisation. By default468&GAP; automatically scans a user specific &GAP; root directory (unless469&GAP; is called with the <C>-r</C> option). The name of this user470specific directory depends on the operating system and is contained471in <C>GAPInfo.UserGapRoot</C>. This directory can be used to tell &GAP;472about personal preferences, to load some additional code, to473install additional packages, or to overwrite some &GAP; files,474see <Ref Sect="GAP Root Directories" BookName="ref"/>. Instead of475a single <F>.gaprc</F> file we now use more flexible setup based on476two files: <F>gap.ini</F> which is read early in the startup process,477and <F>gaprc</F> which is read after the startup process, but before the478first input file given on the command line. These files may be located479in the user specific &GAP; root directory <C>GAPInfo.UserGapRoot</C>480which by default is the first &GAP; root directory, see481<Ref Sect="The gap.ini and gaprc files" BookName="ref"/>.482For compatibility, the <F>.gaprc</F> file is still read483if the directory <C>GAPInfo.UserGapRoot</C> does not exist.484See <Ref Sect="The former .gaprc file" BookName="ref"/> for the485instructions how to migrate your old setup.486<P/>487488Furthermore, there are functions to deal with user preferences, for example,489to specify how &GAP;'s online help is shown or whether the coloured prompt490should be used. Calls to set user preferences may appear in the user's491<F>gap.ini</F> file, as explained in492<Ref Sect="Configuring User preferences" BookName="ref"/>.493<P/>494495In the Windows version, we include a new shell which uses the496<Package>mintty</Package> terminal in addition to the two497previously used shells (Windows command line and <Package>RXVT</Package>).498The <Package>mintty</Package> shell is now recommended. It supports Unicode499encoding and has flexible configurations options. Also, &GAP; under Windows500now starts in the <F>%HOMEDRIVE%%HOMEPATH%</F> directory, which is the501user's home directory. Besides this, a larger workspace is now permitted502without a need to modify the Windows registry.503<P/>504505Other changes in the user interface include:506<List>507<Item>508the command line history is now implemented at the &GAP; level, it can be509stored on quitting a &GAP; session and reread when starting a new session,510see <Ref Sect="The command line history" BookName="ref"/>.511</Item>512<Item>513<C>SetPrintFormattingStatus("stdout",false);</C> may be used514to switch off the automatic line breaking in terminal output,515see <Ref Func="SetPrintFormattingStatus" BookName="ref"/>.516</Item>517<Item>518&GAP; supports terminals with up to 4096 columns (extendable at compile time).519</Item>520<Item>521Directories in <C>-l</C> command-line option522can now be specified starting with <C>~/</C>,523see <Ref Sect="Command Line Options" BookName="ref"/>.524</Item>525<Item>526Large integers are now displayed by a short string showing the first527and last few digits, and the threshold to trigger this behaviour528is user configurable (call <C>UserPreference("MaxBitsIntView")</C> to529see the default value).530</Item>531<Item>532The &GAP; banner has been made more compact and informative.533</Item>534<Item>535<Ref Func="SetHelpViewer" BookName="ref"/> now supports536the Google Chrome browser.537</Item>538<Item>539Multiple matches in the &GAP; online help are displayed via a function540from the <Package>Browse</Package> package, which is loaded in the541default configuration. This feature can be replaced by the known pager542using the command543<Verb>544SetUserPreference( "browse", "SelectHelpMatches", false );545</Verb>546</Item>547</List>548549</Subsection>550551552553<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->554<Subsection Label="GAP45 Documentation">555<Heading>Better documentation</Heading>556557<Index><Package>MathJax support</Package></Index> The main &GAP;558manuals have been converted to the &GAPDoc; format provided by the559&GAPDoc; package by Frank Lübeck and Max Neunhöffer560(<URL>http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc</URL>).561This documentation format is already used by many packages and is now562recommended for all &GAP; documentation.563564<P/>565566Besides improvements to the documentation layout in all formats567(text, PDF and HTML), the new &GAP; manuals incorporate a large number568of corrections, clarifications, additions and updated examples.569<P/>570571We now provide two HTML versions of the manual, one of them572with <Package>MathJax</Package> (<URL>http://www.mathjax.org</URL>)573support for better display of mathematical symbols. Also, there are574two PDF versions of the manual - a coloured and a monochrome one.575<P/>576577Several separate manuals now became parts of the &GAP; Reference578manual. Thus, now there are three main &GAP; manual books:579<List>580<Item>581<E>&GAP; Tutorial</E> <Alt Only="HTML">(see <Ref BookName="tut" Label="Preface"/>)</Alt>582<P/>583</Item>584<Item>585<E>&GAP; Reference manual</E> <Alt Only="HTML">(see <Ref BookName="ref" Label="Preface"/>)</Alt>586</Item>587<Item>588<E>&GAP; - Changes from Earlier Versions</E> (this manual)589</Item>590</List>591592Note that there is no index file combining these three manuals. Instead593of that, please use the &GAP; help system which will search all of594these and about 100 package manuals.595596</Subsection>597598</Section>599600<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->601<Section Label="Packages in GAP45">602<Heading>Packages in &GAP; 4.5</Heading>603604Here we list most important changes affecting packages and present new or605essentially changed packages. For the changes in the core &GAP; system,606see Section <Ref Sect="Changes in the core GAP45 system"/>.607608<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->609<Subsection Label="Interface between the core system and packages">610<Heading>Interface between the core system and packages</Heading>611<Index>Namespaces</Index>612613The package loading mechanism has been improved.614The most important new feature is that all dependencies are evaluated in615advance and then used to determine the order in which package files are read.616This allows &GAP; to handle cyclic dependencies as well as situations where617package A requires package B to be loaded completely before any file of618package A is read. To avoid distortions of the order in which packages will619be loaded, package authors are strongly discouraged from calling620<Ref Func="LoadPackage" BookName="ref"/> and621<Ref Func="TestPackageAvailability" BookName="ref"/> in a package code in622order to determine whether some other package will be loaded before or623together with the current package - instead, one should use624<Ref Func="IsPackageMarkedForLoading" BookName="ref"/>.625In addition, there is now626a better error management if package loading fails for packages that use627the new functionality to log package loading messages628(see <Ref Func="DisplayPackageLoadingLog" BookName="ref"/>629and the rest of the Chapter <Ref Chap="Using GAP Packages" BookName="ref"/>630which documents how to <E>use</E> &GAP; packages), and package authors631are very much encouraged to use these logging facilities.632<P/>633634In &GAP; 4.4 certain packages were marked as <E>autoloaded</E> and635would be loaded, if present, when &GAP; started up. In &GAP; 4.5, this636notion is divided into three. Certain packages are recorded637as <E>needed</E> by the &GAP; system and others as <E>suggested</E>,638in the same way that packages may <E>need</E> or <E>suggest</E> other639packages. If a needed package is not loadable, &GAP; will not640start. Currently only &GAPDoc; is needed. If a suggested package is641loadable, it will be loaded. Typically these are packages which642install better methods for Operations and Objects already present in643&GAP;. Finally, the user preferences mechanism can be used to specify644additional packages that should be loaded if possible. By default this645includes most packages that were autoloaded in &GAP; 4.4.12,646see <Ref Func="ShowUserPreferences" BookName="ref"/>.647<P/>648649&GAP; packages may now use local <E>namespaces</E> to avoid name clashes650for global variables introduced in other packages or in the &GAP;651library, see <Ref Sect="Namespaces for GAP packages" BookName="ref"/>.652<P/>653654All guidance on how to <E>develop</E> a &GAP; package has been consolidated655in the <Package>Example</Package> package which also contains a checklist656for upgrading a &GAP; package to &GAP; 4.5, see657<Ref Appendix="Guidelines for Writing a GAP Package" BookName="Example"/>.658<P/>659660</Subsection>661662<Subsection Label="New and updated packages since GAP 4.4.12">663<Heading>New and updated packages since &GAP; 4.4.12</Heading>664665At the time of the release of &GAP; 4.4.12 there were 75 packages666redistributed with &GAP; (including the <Package>TomLib</Package>667which was distributed in the core &GAP; archive). The first public release668of &GAP; 4.5 contains precisely 99 packages.669<P/>670671The new packages that have been added to the redistribution672since the release of &GAP; 4.4.12 are:673<List>674<Item>675<Package>Citrus</Package> package by J.D. Mitchell for computations with676transformation semigroups and monoids (this package is a replacement of677the <Package>Monoid</Package> package).678</Item>679<Item>680<Package>cvec</Package> package by M. Neunhöffer, providing an681implementation of compact vectors over finite fields.682</Item>683<Item>684<Package>fwtree</Package> package by B. Eick and T. Rossmann for685computing trees related to some pro-<M>p</M>-groups of finite width.686</Item>687<Item>688<Package>GBNP</Package> package by A.M. Cohen and J.W. Knopper, providing689algorithms for computing Grobner bases of noncommutative polynomials over690fields with respect to the <Q>total degree first then lexicographical</Q>691ordering.692</Item>693<Item>694<Package>genss</Package> package by M. Neunhöffer and F. Noeske,695implementing the randomised Schreier-Sims algorithm to compute a696stabiliser chain and a base and a strong generating set for arbitrary697finite groups.698</Item>699<Item>700<Package>HAPprime</Package> package by P. Smith, extending the701<Package>HAP</Package> package with an implementation of702memory-efficient algorithms for the calculation of resolutions703of small prime-power groups.704</Item>705<Item>706<Package>hecke</Package> package by D. Traytel, providing functions707for calculating decomposition matrices of Hecke algebras of the708symmetric groups and <M>q</M>-Schur algebras (this package is a port709of the &GAP; 3 package <Package>Specht 2.4</Package> to &GAP; 4).710</Item>711<Item>712<Package>Homalg</Package> project by M. Barakat, S. Gutsche,713M. Lange-Hegermann et al., containing the following packages714for the homological algebra: <Package>homalg</Package>,715<Package>ExamplesForHomalg</Package>, <Package>Gauss</Package>,716<Package>GaussForHomalg</Package>, <Package>GradedModules</Package>,717<Package>GradedRingForHomalg</Package>, <Package>HomalgToCAS</Package>,718<Package>IO_ForHomalg</Package>, <Package>LocalizeRingForHomalg</Package>,719<Package>MatricesForHomalg</Package>, <Package>Modules</Package>,720<Package>RingsForHomalg</Package> and <Package>SCO</Package>721(see <URL>http://homalg.math.rwth-aachen.de/</URL>).722</Item>723<Item>724<Package>MapClass</Package> package by A. James, K. Magaard and725S. Shpectorov to calculate the mapping class group orbits for a726given finite group.727</Item>728<Item>729<Package>recogbase</Package> package by M. Neunhöffer and A. Seress,730providing a framework to implement group recognition methods in a731generic way (suitable, in particular, for permutation groups, matrix732groups, projective groups and black box groups).733</Item>734<Item>735<Package>recog</Package> package by M. Neunhöffer, A. Seress,736N. Ankaralioglu, P. Brooksbank, F. Celler, S. Howe, M. Law,737S. Linton, G. Malle, A. Niemeyer, E. O'Brien and C.M. Roney-Dougal,738extending the <Package>recogbase</Package> package and provides a739collection of methods for the constructive recognition of groups740(mostly intended for permutation groups, matrix groups and projective741groups).742</Item>743<Item>744<Package>SCSCP</Package> package by A. Konovalov and S. Linton,745implementing the Symbolic Computation Software Composability Protocol746(<Package>SCSCP</Package>, see747<URL>http://www.symbolic-computation.org/scscp</URL>) for &GAP;,748which provides interfaces to link a &GAP; instance with another copy749of &GAP; or other <Package>SCSCP</Package>-compliant system running750locally or remotely.751</Item>752<Item>753<Package>simpcomp</Package> package by F. Effenberger and J. Spreer754for working with simplicial complexes.755</Item>756<Item>757<Package>Smallsemi</Package> package by A. Distler and J.D. Mitchell,758containing the data library of all semigroups with at most 8 elements759as well as various information about them.760</Item>761<Item>762<Package>SymbCompCC</Package> package by D. Feichtenschlager for763computations with parametrised presentations for finite <M>p</M>-groups764of fixed coclass.765</Item>766</List>767768Furthermore, some packages have been upgraded substantially769since the &GAP; 4.4.12 release:770771<List>772<Item>773<Package>Alnuth</Package> package by B. Assmann, A. Distler and B. Eick774uses an interface to PARI/GP system instead of the interface to KANT775(thanks to B. Allombert for the GP code for the new interface and help776with the transition) and now also works under Windows.777</Item>778<Item>779<Package>CTblLib</Package> package (the &GAP; Character Table Library)780by T. Breuer has been extended by many new character tables, a few bugs781have been fixed, and new features have been added, for example concerning782the relation to &GAP;'s group libraries, better search facilities, and783interactive overviews. For details, see the package manual.784</Item>785<Item>786<Package>DESIGN</Package> package by L.H. Soicher:787<List>788<Item>789The functions <C>PointBlockIncidenceMatrix</C>, <C>ConcurrenceMatrix</C>,790and <C>InformationMatrix</C> compute matrices associated with block designs.791</Item>792<Item>793The function <C>BlockDesignEfficiency</C> computes certain statistical794efficiency measures of a <M>1-(v,k,r)</M> design, using exact algebraic795computation.796</Item>797</List>798</Item>799800<Item>801<Package>Example</Package> package by W. Nickel, G. Gamble and A. Konovalov802has a more detailed and up-to-date guidance on developing a &GAP; package,803see <Ref Appendix="Guidelines for Writing a GAP Package" BookName="Example"/>.804</Item>805806<Item>807<Package>FR</Package> package by L. Bartholdi now uses floating-point808numbers to compute approximations of rational maps given by their809group-theoretical description.810</Item>811812<Item>813The <Package>GAPDoc</Package> package by F. Lübeck and M. Neunhöffer814provides various improvements, for example:815<List>816<Item>817The layout of the text version of the manuals can be configured quite818freely, several standard <Q>themes</Q> are provided. The display is now819adjusted to the current screen width.820</Item>821<Item>822Some details of the layout of the HTML version of the manuals can now823be configured by the user. All manuals are available with and without824MathJax support for display of mathematical formulae.825</Item>826<Item>827The text and HTML versions of manuals make more use of unicode828characters (but the text version is also still reasonably good829on terminals with latin1 or ASCII encoding).830</Item>831<Item>832The PDF version of the manuals uses better fonts.833</Item>834<Item>835Of course, there are various improvements for authors of manuals as836well, for example new functions837<Ref Func="ExtractExamples" BookName="gapdoc"/> and838<Ref Func="RunExamples" BookName="gapdoc"/> for839automatic testing and correcting of manual examples.840</Item>841</List>842</Item>843844<Item>845<Package>Gpd</Package> package by E.J. Moore and C.D. Wensley has been846substantially rewritten. The main extensions provide functions for:847<List>848<Item>849Subgroupoids of a direct product with complete graph groupoid,850specified by a root group and choice of rays.851</Item>852<Item>853Automorphisms of finite groupoids - by object permutations; by root group854automorphisms; and by ray images.855</Item>856<Item>857The automorphism group of a finite groupoid together with an isomorphism858to a quotient of permutation groups.859</Item>860<Item>861Homogeneous groupoids (unions of isomorphic groupoids) and their862morphisms, in particular homogeneous discrete groupoids: the latter863are used in constructing crossed modules of groupoids in the864<Package>XMod</Package> package.865</Item>866</List>867</Item>868869870<Item>871<Package>GRAPE</Package> package by L.H. Soicher:872<List>873<Item>874With much help from A. Hulpke, the interface between <Package>GRAPE</Package>875and <F>dreadnaut</F> is now done entirely in &GAP; code.876</Item>877<Item>878A 32-bit <F>nauty/dreadnaut</F> binary for Windows (XP and later) is879included with <Package>GRAPE</Package>, so now <Package>GRAPE</Package>880provides full functionality under Windows, with no installation necessary.881</Item>882<Item>883Graphs with ordered partitions of their vertices into <Q>colour-classes</Q>884are now handled by the graph automorphism group and isomorphism885testing functions. An automorphism of a graph with colour-classes886is an automorphism of the graph which additionally preserves the list887of colour-classes (classwise), and an isomorphism from one graph with888colour-classes to a second is a graph isomorphism from the first graph889to the second which additionally maps the first list of colour-classes890to the second (classwise).891</Item>892<Item>893The &GAP; code and old standalone programs for the undocumented functions894<C>Enum</C> and <C>EnumColadj</C> have been removed as their functionality895can now largely be handled by current documented &GAP; and896<Package>GRAPE</Package> functions.897</Item>898</List>899</Item>900901<Item>902<Package>IO</Package> package by M. Neunhöffer:903<List>904<Item>905New build system to allow for more flexibility regarding the use of906compiler options and adjusting to &GAP; 4.5.907</Item>908<Item>909New functions to access time like <C>IO_gettimeofday</C>,910<C>IO_gmtime</C> and <C>IO_localtime</C>.911</Item>912<Item> Some parallel skeletons built on <C>fork</C> like: <C>ParListByFork</C>,913<C>ParMapReduceByFork</C>, <C>ParTakeFirstResultByFork</C> and914<C>ParWorkerFarmByFork</C>.915</Item>916<Item>917<C>IOHub</C> objects for automatic I/O multiplexing.918</Item>919<Item>920New functions <C>IO_gethostbyname</C> and <C>IO_getsockname</C>.921</Item>922</List>923</Item>924925<Item>926<Package>IRREDSOL</Package> package by B. Höfling now covers all irreducible927soluble subgroups of <M>GL(n,q)</M> for <M>q^n < 1000000</M> and primitive928soluble permutation groups of degree <M>< 1000000</M> (previously, the929bound was <M>65536</M>). It also has faster group recognition and adds a930few omissions for <M>GL(3,8)</M> and <M>GL(6,5)</M>.931</Item>932933<Item>934<Package>ParGAP</Package> package by G. Cooperman is now compiled935using a system-wide MPI implementation by default to facilitate running936it on proper clusters. There is also an option to build it with937the <Package>MPINU</Package> library which is still supplied with the938package (thanks to P. Smith for upgrading <Package>ParGAP</Package>939build process).940</Item>941942<Item>943<Package>OpenMath</Package> package by M. Costantini, A. Konovalov,944M. Nicosia and A. Solomon now supports much more OpenMath symbols945to facilitate communication by the remote procedure call protocol946implemented in the <Package>SCSCP</Package> package.947Also, a third-party external library to support binary OpenMath encoding948has been replaced by a proper implementation made entirely in &GAP;.949</Item>950951<Item>952<Package>Orb</Package> package by J. Müller, M. Neunhöffer and F. Noeske:953<P/>954There have been numerous improvements to this package:955<List>956<Item>957A new fast implementation of AVL trees (balanced binary trees) in C.958</Item>959<Item>960New interface to hash table functionality and implementation in C for speedup.961</Item>962<Item>963Some new hash functions for various object types like transformations.964</Item>965<Item>966New function <C>ORB_EstimateOrbitSize</C> using the birthday paradox.967</Item>968<Item>969Improved functionality for product replacer objects.970</Item>971<Item>972New <Q>tree hash tables</Q>.973</Item>974<Item>975New functionality to compute weak and strong orbits for semigroups and monoids.976</Item>977<Item>978<C>OrbitGraph</C> for Orb orbits.979</Item>980<Item>981Fast C kernel methods for the following functions:982<P/>983<C>PermLeftQuoTransformationNC</C>,984<C>MappingPermSetSet</C>, <C>MappingPermListList</C>,985<C>ImageSetOfTransformation</C>,986and <C>KernelOfTransformation</C>.987</Item>988<Item>989New build system to allow for more flexibility regarding the use of990compiler options and to adjust to &GAP; 4.5.991</Item>992</List>993</Item>994995<Item>996<Package>RCWA</Package> package by S. Kohl among the new features and997other improvements has the following:998<List>999<Item>1000A database of all 52394 groups generated by 3 class transpositions of1001<M>&ZZ;</M> which interchange residue classes with modulus less than1002or equal to 6. This database contains the orders and the moduli of all1003of these groups. Also it provides information on what is known about1004which of these groups are equal and how their finite and infinite1005orbits on <M>&ZZ;</M> look like.1006</Item>1007<Item>1008More routines for investigating the action of an rcwa group on <M>&ZZ;</M>.1009Examples are a routine which attempts to find out whether a given rcwa1010group acts transitively on the set of nonnegative integers in its1011support and a routine which looks for finite orbits on the set of all1012residue classes of <M>&ZZ;</M>.1013</Item>1014<Item>1015Ability to deal with rcwa permutations of <M>&ZZ;^2</M>.1016</Item>1017<Item>1018Important methods have been made more efficient in terms of runtime1019and memory consumption.1020</Item>1021<Item>1022The output has been improved. For example, rcwa permutations are now1023<C>Display</C>'ed in ASCII text resembling &LaTeX; output.1024</Item>1025</List>1026</Item>10271028<Item>1029The <Package>XGAP</Package> package by F. Celler and M. Neunhöffer can now1030be used on 64-bit architectures (thanks to N. Eldredge and M. Horn for1031sending patches). Furthermore, there is now an export to XFig option1032(thanks to Russ Woodroofe for this patch). The help system in1033<Package>XGAP</Package> has been adjusted to &GAP; 4.5.1034</Item>10351036<Item>1037<Index>Packages under Windows</Index>1038Additionally, some packages with kernel modules or external binaries1039are now available in Windows. The <F>-win.zip</F> archive and the1040&GAP; installer for Windows include working versions of the following1041packages: <Package>Browse</Package>, <Package>cvec</Package>,1042<Package>EDIM</Package>, <Package>GRAPE</Package>, <Package>IO</Package>1043and <Package>orb</Package>, which were previously unavailable for1044Windows users.1045</Item>1046</List>10471048Finally, the following packages are withdrawn:1049<List>1050<Item>1051<Package>IF</Package> package by M. Costantini is unmaintained and no1052longer usable. More advanced functionality for interfaces to other computer1053algebra systems is now available in the <Package>SCSCP</Package>1054package by A. Konovalov and S. Linton.1055</Item>1056<Item>1057<Package>Monoid</Package> package by J. Mitchell is superseded by1058the <Package>Citrus</Package> package by the same author.1059</Item>1060<Item>1061<Package>NQL</Package> package by R. Hartung has been withdrawn by the author.1062</Item>1063</List>10641065</Subsection>10661067</Section>106810691070<Section Label="fix455">10711072<Heading>&GAP; 4.5.5 (July 2012)</Heading>107310741075Fixed bugs which could lead to crashes:1076<List>1077<Item>1078For small primes (compact fields) <C>ZmodnZObj(r,p)</C> now1079returns the corresponding FFE to avoid crashes when compacting1080matrices.1081[Reported by Ignat Soroko]1082</Item>1083</List>10841085Other fixed bugs:10861087<List>1088<Item>1089Fixed a bug in <Ref Attr="CommutatorSubgroup" BookName="ref"/> for fp groups1090causing infinite recursion, which could, for example, be triggered1091by computing automorphism groups.1092</Item>1093<Item>1094Previously, the list of factors of a polynomial was mutable, and hence could1095be accidentally corrupted by callers. Now the list of irreducible factors1096is stored immutable. To deal with implicit reliance on old code, always a1097shallow copy is returned.1098[reported by Jakob Kroeker]1099</Item>1100<Item>1101Computing high powers of matrices ran into an error for matrices in the1102format of the <Package>cvec</Package> package. Now the library function1103also works with these matrices.1104[reported by Klaus Lux]1105</Item>1106<Item>1107The pseudo tty code which is responsible for spawning subprocesses has been1108partially rewritten to allow more than 128 subprocesses on certain systems.1109This mechanism is for example used by <Package>ANUPQ</Package> and1110<Package>nq</Package> packages to compute group quotients via an external1111program. Previously, on Mac OS X this could be done precisely 128 times,1112and then an error would occur. That is, one could e.g. compute 128 nilpotent1113quotients, and then had to restart &GAP; to compute more. This also affected1114other systems, such as OpenBSD, where it now also works correctly.1115</Item>1116<Item>1117On Mac OS X, using &GAP; compiled against GNU readline 6.2, pasting text1118into the terminal session would result in this text appearing very slowly,1119with a 0.1 sec delay between each <Q>keystroke</Q>. This is not the case with1120versions 6.1 and older, and has been reported to the GNU readline team. In1121the meantime, we work around this issue in most situations by setting1122<C>rl_event_hook</C> only if <C>OnCharReadHookActive</C> is set.1123</Item>1124<Item>1125<Ref Func="ShowUserPreferences" BookName="ref"/> ran into a break loop in1126case of several undeclared user preferences. [Reported by James Mitchell]1127</Item>1128<Item>1129&GAP; did not start correctly if the user preference1130<C>"InfoPackageLoadingLevel"</C> was set to a number <M> >= 3</M>.1131The reason is that <C>PrintFormattedString</C> was called before1132it was installed. The current fix is a temporary solution.1133</Item>1134<Item>1135The <C>"hints"</C> member of <C>TypOutputFile</C> used to contain 3*100 entries,1136yet <C>addLineBreakHint</C> would write entries with index up to and including11373*99+3=300, leading to a buffer overflow. This would end up overwriting1138the <C>"stream"</C> member with -1. Fixed by incrementing the size of1139<C>"hints"</C> to 301.1140[Reported by Jakob Kroeker]1141</Item>1142<Item>1143The function <C>IsDocumentedWord</C> tested the given word against1144strings obtained by splitting help matches at non-letter characters.1145This way, variable names containing underscores or digits were erroneously1146not regarded as documented, and certain substrings of these names were1147erroneously regarded as documented.1148</Item>1149<Item>1150On Windows, an error occurred if one tried to use the default Windows1151browser as a help viewer (see <Ref Func="SetHelpViewer" BookName="ref"/>).1152Now the browser opens the top of the correspoding manual chapter. The1153current fix is a temporary solution since the problem remains with the1154positioning at the required manual section.1155</Item>1156</List>115711581159Improved functionality:1160<List>1161<Item>1162<Ref Func="WriteGapIniFile" BookName="ref"/> on Windows now produces the1163<File>gap.ini</File> file with Windows style line breaks. Also, an info1164message is now printed if an existing <File>gap.ini</File> file was moved1165to a backup file <File>gap.ini.bak</File>.1166</Item>1167<Item>1168The <Package>CTblLib</Package> and <Package>TomLib</Package> packages are1169removed from the list of suggested packages of the core part of &GAP;.1170Instead they are added to the default list of the user preference1171<C>"PackagesToLoad"</C>. This way it is possible to configure &GAP; to not1172load these packages via changing the default value of <C>"PackagesToLoad"</C>.1173</Item>1174<Item>1175The conjugacy test in <M>S_n</M> for intransitive subgroups was improved.1176This deals with inefficiency issue in the case reported by Stefan Kohl.1177</Item>1178<Item>1179Added <C>InstallAndCallPostRestore</C> to <File>lib/system.g</File> and call1180it in <File>lib/init.g</File> instead of <C>CallAndInstallPostRestore</C> for1181the function that reads the files listed in &GAP; command line. This fixes1182the problem reported by Yevgen Muntyan when1183<Ref Func="SaveWorkspace" BookName="ref"/> was used in a file listed in &GAP;1184command line (before, according to the documentation,1185<Ref Func="SaveWorkspace" BookName="ref"/> was only1186allowed at the main &GAP; prompt).1187</Item>1188<Item>1189There is now a new user preference <C>PackagesToIgnore</C>,1190see <Ref Func="SetUserPreference" BookName="ref"/>. It contains1191a list of names of packages that shall be regarded as not available1192at all in the current session, both for autoloading and for later calls1193of <Ref Func="LoadPackage" BookName="ref"/>. This preference is useful1194for testing purposes if one wants to run some code without loading1195certain packages.1196</Item>1197</List>11981199</Section>1200120112021203<Section Label="fix456">12041205<Heading>&GAP; 4.5.6 (September 2012)</Heading>12061207Improved functionality:1208<List>1209<Item>1210The argument of <Ref Func="SaveWorkspace" BookName="ref"/> can now start1211with <C>~/</C> which is expanded to the users home directory.1212</Item>1213<Item>1214Added the method for <Ref Oper="Iterator" BookName="ref"/> for1215<Ref Var="PositiveIntegers" BookName="ref"/>.1216[Suggested by Attila Egri-Nagy].1217</Item>1218<Item>1219Changed kernel tables such that list access functionality for1220<C>T_SINGULAR</C> objects can be installed by methods at the &GAP; level.1221</Item>1222<Item>1223In case of saved history, <Q>UP</Q> arrow after starting &GAP; yields1224last stored line. The user preference <C>HistoryMaxLines</C> is now used1225when storing and saving history (see1226<Ref Func="SetUserPreference" BookName="ref"/>).1227</Item>1228</List>12291230Fixed bugs which could lead to crashes:1231<List>1232<Item>1233A crash occuring during garbage collection following a call to1234<C>AClosVec</C> for a <C>GF(2)</C> code.1235[Reported by Volker Braun]1236</Item>1237<Item>1238A crash when parsing certain syntactically invalid code.1239[Reported by multiple users]1240</Item>1241<Item>1242Fixed and improved command line editing without readline support.1243Fixed a segfault which could be triggered by a combination of1244<Q>UP</Q> and <Q>DOWN</Q> arrows.1245[Reported by James Mitchell]1246</Item>1247<Item>1248Fixed a bug in the kernel code for floats that caused a crash1249on SPARC Solaris in 32-bit mode.1250[Reported by Volker Braun]1251</Item>1252</List>12531254Other fixed bugs:12551256<List>1257<Item>1258Very large (more than 1024 digit) integers were not being coded correctly1259in function bodies unless the integer limb size was 16 bits.1260[Reported by Stefan Kohl]1261</Item>1262<Item>1263An old variable was used in assertion, causing errors in a debugging1264compilation.1265[Reported by Volker Braun]1266</Item>1267<Item>1268The environment variable <C>PAGER</C> is now correctly interpreted when it1269contains the full path to the pager program. Furthermore, if the external1270pager <C>less</C> is found from the environment it is made sure that the1271option <C>-r</C> is used (same for <C>more -f</C>).1272[Reported by Benjamin Lorenz]1273</Item>1274<Item>1275Fixed a bug in <C>PermliftSeries</C>.1276[Reported by Aiichi Yamasaki]1277</Item>1278<Item>1279Fixed discarder function in lattice computation to distinguish1280general and zuppo discarder.1281[Reported by Leonard Soicher]1282</Item>1283<Item>1284The <Ref Func="GL" Label="for dimension and a ring" BookName="ref"/> and1285<Ref Func="SL" Label="for dimension and a ring" BookName="ref"/>1286constructors did not correctly handle <C>GL(filter,dim,ring)</C>.1287</Item>1288<Item>1289The names of two primitive groups of degree 64 were incorrect.1290</Item>1291<Item>1292The <Ref Oper="\in" Label="operation for testing membershi" BookName="ref"/>1293method for groups handled by a nice monomorphism sometimes could produce1294an error in situations where it should return false. This only happened1295when using <C>SeedFaithfulAction</C> to influence how1296<Ref Oper="NiceMonomorphism" BookName="ref"/>1297builds the nice monomorphims for a matrix groups.1298</Item>1299<Item>1300Wrong <Ref Oper="PrintObj" BookName="ref"/> method was removed to1301fix delegations accordingly to <Ref Sect="View and Print" BookName="ref"/>.1302</Item>1303<Item>1304Fixed a method for <Ref Oper="Coefficients" BookName="ref"/> which,1305after Gaussian elimination, did not check that the coefficients1306actually lie in the left-acting-domain of the vector space. This1307could lead to a wrong answer in a vector space membership test.1308[Reported by Kevin Watkins]1309</Item>1310</List>13111312Improved documentation:13131314<List>1315<Item>1316Removed outdated statements from the documentation of1317<Ref Func="StructureDescription" BookName="ref"/>1318which now non-ambiguosly states that <C>StructureDescription</C> is not an1319isomorphism invariant: non-isomorphic groups can have the same string1320value, and two isomorphic groups in different representations can produce1321different strings.1322</Item>1323<Item>1324&GAP; now allows overloading of a loaded help book by another one. In this1325case, only a warning is printed and no error is raised. This makes sense1326if a book of a not loaded package is loaded in a workspace and then &GAP;1327is started with a root path that contains a newer version.1328[Reported by Sebastian Gutsche]1329</Item>1330<Item>1331Provided a better description of user preferences mechanism1332(<Ref Sect="Configuring User preferences" BookName="ref"/>) and a hint to1333familiarise with them using <Ref Func="WriteGapIniFile" BookName="ref"/>1334function to create a file which contains descriptions of all known user1335preferences and also sets those user preferences which currently do not1336have their default value. One can then edit that file to customize1337(further) the user preferences for future &GAP; sessions.1338</Item>1339</List>13401341New packages added for the redistribution with &GAP;:1342<List>1343<Item>1344<Package>AutoDoc</Package> package by S. Gutsche,1345providing tools for automated generation of <Package>GAPDoc</Package> manuals.1346</Item>1347<Item>1348<Package>Convex</Package> package by S. Gutsche,1349which provides structures and algorithms for convex geometry.1350</Item>1351<Item>1352<Package>PolymakeInterface</Package> package by T. Baechler and S. Gutsche,1353providing a link to the callable library of the <Package>polymake</Package>1354system (<URL>http://www.polymake.org</URL>).1355</Item>1356<Item>1357<Package>ToolsForHomalg</Package> package by M. Barakat, S. Gutsche and1358M. Lange-Hegermann, which provides some auxiliary functionality for the1359<Package>homalg</Package> project (<URL>http://homalg.math.rwth-aachen.de/</URL>).1360</Item>1361</List>13621363</Section>136413651366<Section Label="fix457">13671368<Heading>&GAP; 4.5.7 (December 2012)</Heading>13691370Fixed bugs which could lead to crashes:1371<List>1372<Item>Closing with <C>LogInputTo</C> (or <C>LogOutputTo</C>)1373a logfile opened with <Ref Func="LogTo" BookName="ref"/>1374left the data structures corrupted, resulting in a crash.1375</Item>1376<Item>1377On 32-bit systems we can have long integers <C>n</C> such that1378<C>Log2Int(n)</C> is not an immediate integer. In such cases1379<C>Log2Int</C> gave wrong or corrupted1380results which in turn could crash &GAP;, e.g., in <C>ViewObj(n)</C>.1381</Item>1382<Item>1383Some patterns of use of <Ref Func="UpEnv" BookName="ref"/> and1384<Ref Func="DownEnv" BookName="ref"/> were leading to a segfault.1385</Item>1386</List>13871388Other fixed bugs:13891390<List>1391<Item>1392Viewing of long negative integers was broken, because it went into a break loop.1393</Item>1394<Item>1395Division by zero in <Ref Func="ZmodnZ" BookName="ref"/> (<M>n</M> not prime)1396produced invalid objects. [Reported by Mark Dickinson]1397</Item>1398<Item>1399Fixed a bug in determining multiplicative inverse for a zero polynomial.1400</Item>1401<Item>1402Fixed a bug causing infinite recursion in <Ref Oper="NaturalHomomorphismByNormalSubgroup" BookName="ref"/>.1403</Item>1404<Item>1405A workaround was added to deal with a package method creating pcgs for permutation1406groups for which the entry <C>permpcgsNormalSteps</C> is missing.1407</Item>1408<Item>1409For a semigroup of associative words that is not the full semigroup of1410all associative words, the methods for <Ref Oper="Size" BookName="ref"/>1411and <Ref Oper="IsTrivial" BookName="ref"/> called one another causing1412infinite recursion.1413</Item>1414<Item>1415The 64-bit version of the <F>gac</F> script produced wrong (>= 2^31) CRC1416values because of an integer conversion problem.1417</Item>1418<Item>1419It was not possible to compile &GAP; on some systems where <C>HAVE_SELECT</C> detects as false.1420</Item>1421<Item>1422Numbers in memory options on the command line exceeding 2^32 could not be1423parsed correctly, even on 64-bit systems. [Reported by Volker Braun]1424</Item>1425</List>14261427New packages added for the redistribution with &GAP;:1428<List>1429<Item>1430<Package>Float</Package> package by L. Bartholdi, which extends &GAP;1431floating-point capabilities by providing new floating-point handlers for1432high-precision real, interval and complex arithmetic using MPFR, MPFI,1433MPC or CXSC external libraries. It also contains a very high-performance1434implementation of the LLL (Lenstra-Lenstra-Lovász) lattice reduction1435algorithm via the external library FPLLL.1436</Item>1437<Item>1438<Package>ToricVarieties</Package> package by S. Gutsche,1439which provides data structures to handle toric varieties by their1440commutative algebra structure and by their combinatorics.1441</Item>1442</List>14431444</Section>144514461447</Chapter>144814491450<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->1451<!-- %% -->1452<!-- %E -->145314541455