Dear GAP Forum, The next major release of GAP, version 4.9.1, is now available at
http://www.gap-system.org/Releases/ A brief overview of major changes introduced in GAP 4.9.1 is given below - GAP includes experimental code to support multithreaded programming in GAP, dubbed HPC-GAP (where HPC stands for "high performance computing"). - GAP has a new build system, which resolves many quirks and issues with the old system, and will be easier to maintain. For regular users, the usual ./configure && make should work fine as before. If you are interested in technical details on the new build system, take a look at README.buildsys.md. - The guidelines for developing GAP packages were revised and moved from the Example package to the Reference manual. - In addition to supporting single argument lambda functions like `a -> a+1`, GAP now supports lambdas with fewer or more than one argument, or even a variable number. For example, {a,b} -> a+b is a shorthand for function(a,b) return a+b; end - Function calls, list accesses and records accesses now can be nested. For example, you can now write y := f().x; (essentially equivalent to y := f();; y := y.x;), which previously would have resulted in an error. - The performance of GAP's sorting functions (such as Sort, SortParallel, etc.) has been substantially improved, in some examples by more than a factor of four: as a trivial example, compare the timing for `Sort([1..100000000] * 0)`. As a side effect, the result of sorting lists with equal entries may produce different answers compared to previous GAP versions. If you would like to make your code independent of the exact employed sorting algorithm, you can use the newly added StableSort, StableSortBy and StableSortParallel. - We removed our old home-grown big integer code, and instead always use the GMP based big integer code. This means that the GMP library now is a required dependency, not just an optional one. Note that GAP has been using GMP big integer arithmetic for a long time by default, and we also have been bundling GMP with GAP. So this change mostly removed code that was never in use for most users. - A number of improvements have been made to Random. These may lead to different sequences of numbers being created. On the up side, many more methods for Random (and other RandomXYZ operations) now optionally take an explicit RandomSource as first argument. - The output and behaviour of the profiling system has been substantially improved. - In many cases GAP now outputs the filename and location of functions in helpful places, e.g. in error messages or when displaying compiled functions. We also try to always use the format FILENAME:LINE, which various utilities already know how to parse (e.g. in iTerm2, cmd-clicking on such a string can be configured to open an editor for the file at the indicated line). - GAP now supports constant variables, whose value cannot change anymore during runtime; code using such constants can then be slightly optimized by GAP. E.g. if `foo` is turned into a constant variable bound to the value `false`, then GAP can optimize `if foo then ... fi;` blocks completely away. For details, see `?MakeConstantGlobal`. The complete description of these and other changes, with links to the documentation and to GitHub pull requests is available at https://www.gap-system.org/Manuals/doc/changes/chap2.html Additionally, GAP 4.9.1 distribution contains 134 packages, including numerous updates of previously redistributed packages. Some major changes are: - The libraries of small, primitive and transitive groups which previously were an integral part of GAP were split into three separate packages PrimgGrp, SmallGrp and TransGrp. For backwards compatibility, these are required packages in GAP 4.9 (i.e., GAP will not start without them). We plan to change this for GAP 4.10, once all packages which currently implicitly rely on these new packages had time to add explicit dependencies on them. - The new ZeroMQInterface package by Markus Pfeiffer and Reimer Behrends has been added for the redistribution. It provides both low-level bindings as well as some higher level interfaces for the ZeroMQ message passing library for GAP and HPC-GAP enabling lightweight distributed computation. - The HAPprime package by Paul Smith is no longer redistributed with GAP. Part of the code has been incorporated into the HAP package. Its source code repository, containing the code of the last distributed version, can still be found at https://github.com/gap-packages/happrime. - Also, the ParGAP package by Gene Cooperman is no longer redistributed with GAP because it no longer can be compiled with GAP 4.9. Its source code repository, containing the code of the last distributed version, plus some first fixes needed for compatibility for GAP 4.9, can still be found at https://github.com/gap-packages/pargap. If somebody is interested in repairing this package and taking over its maintenance, so that it can be distributed again, please contact the GAP team. The full list of new and updated packages in GAP 4.9.1 distribution is: Package name | Version | Date ---------------------------------------------------- AClib | 1.3 | 11/03/2018 AutoDoc | 2018.02.14 | 14/02/2018 AutPGrp | 1.9 | 07/03/2018 Carat | 2.2.2 | 28/03/2018 cohomolo | 1.6.6 | 02/12/2017 Congruence | 1.2.2 | 06/02/2018 Cryst | 4.1.17 | 13/04/2018 CrystCat | 1.1.8 | 09/02/2018 cvec | 2.6.0 | 20/03/2018 Digraphs | 0.12.1 | 26/04/2018 EDIM | 1.3.3 | 30/01/2018 Example | 4.1.0 | 26/04/2018 FactInt | 1.6.2 | 18/02/2018 FGA | 1.4.0 | 23/03/2018 FinInG | 1.4.1 | 31/03/2018 float | 0.9.0 | 14/12/2017 FORMAT | 1.4a | 19/03/2018 FPLSA | 1.2.2 | 04/02/2018 FR | 2.4.5 | 21/03/2018 fwtree | 1.1 | 08/03/2018 Gauss | 2018.04.03 | 03/04/2018 GaussForHomalg | 2018.02.05 | 05/02/2018 GradedModules | 2018.02.04 | 04/02/2018 GradedRingForHomalg | 2018.02.04 | 04/02/2018 groupoids | 1.55 | 02/02/2018 GrpConst | 2.6 | 08/03/2018 HAP | 1.12.6 | 16/04/2018 HomalgToCAS | 2018.03.19 | 19/03/2018 idrel | 2.41 | 18/03/2018 kan | 1.28 | 04/02/2018 kbmag | 1.5.5 | 04/02/2018 LAGUNA | 3.9.0 | 26/04/2017 LieAlgDB | 2.2 | 09/04/2018 LiePRing | 1.9 | 11/03/2018 LocalizeRingForHomalg | 2018.02.04 | 04/02/2018 MatricesForHomalg | 2018.04.06 | 06/04/2018 Modules | 2018.03.20 | 20/03/2018 NumericalSgps | 1.1.7 | 19/03/2018 orb | 4.8.0 | 10/11/2017 permut | 2.0.1 | 18/02/2018 Polycyclic | 2.13.1 | 27/04/2018 PrimGrp | 3.3.1 | 17/02/2018 profiling | 2.0.0 | 29/03/2018 qaos | 1.6 | 28/03/2018 RadiRoot | 2.8 | 23/04/2018 RingsForHomalg | 2018.04.04 | 04/04/2018 Semigroups | 3.0.15 | 24/03/2018 SglPPow | 2.1 | 08/03/2018 simpcomp | 2.1.8 | 05/02/2018 SLA | 1.4 | 24/04/2018 SmallGrp | 1.3 | 09/04/2018 Sophus | 1.24 | 09/04/2018 SymbCompCC | 1.3 | 20/03/2018 ToolsForHomalg | 2018.01.30 | 30/01/2018 TransGrp | 2.0.2 | 13/11/2017 Unipot | 1.4 | 09/04/2018 UnitLib | 4.0.0 | 01/05/2018 utils | 0.54 | 12/02/2018 Wedderga | 4.9.3 | 30/04/2018 XGAP | 4.27 | 21/03/2018 XMod | 2.68 | 01/05/2018 XModAlg | 1.16 | 29/01/2018 ZeroMQInterface | 0.10 | 02/03/2018 We encourage all users of the listed above packages to upgrade to GAP 4.9.1. If you need any help or would like to report any problems, please do not hesitate to contact us at supp...@gap-system.org, or submit new issues on GitHub: https://github.com/gap-system/gap/issues There is also a 'gap' tag for questions about GAP at the Mathematics Q&A site: http://math.stackexchange.com/tags/gap/info In addition, you may find some GAP related news on Twitter: http://twitter.com/gap_system Wishing you fun and success using GAP, Alexander Konovalov on behalf of the GAP Group _______________________________________________ Forum mailing list Forum@gap-system.org https://mail.gap-system.org/mailman/listinfo/forum