1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
<Chapter Label="Changes from Earlier Versions">
<Heading>Changes from Earlier Versions</Heading>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Earlier Changes">
<Heading>Earlier Changes</Heading>
The most important changes between &GAP; 4.2 and &GAP; 4.3 were:
<P/>
<List>
<Item>
The performance of several routines has been substantially improved.
</Item>
<Item>
The functionality in the areas of finitely presented groups, Schur covers
and the calculation of representations has been extended.
</Item>
<Item>
The data libraries of transitive groups, finite integral matrix groups,
character tables and tables of marks have been extended.
</Item>
<Item>
The Windows installation has been simplified for the case where you
are installing &GAP; in its standard location.
</Item>
<Item>
Many bugs have been fixed.
<P/>
</Item>
</List>
<P/>
The most important changes between &GAP; 4.1 and &GAP; 4.2 were:
<P/>
<List>
<Item>
A much extended and improved library of small groups as well as
associated <Ref Attr="IdGroup" BookName="smallgrp"/> routines.
</Item>
<Item>
The primitive groups library has been made more independent of the
rest of &GAP;, some errors were corrected.
</Item>
<Item>
New (and often much faster) infrastructure for orbit computation, based on a
general <Q>dictionary</Q> abstraction.
</Item>
<Item>
New functionality for dealing with representations of algebras, and
in particular for semisimple Lie algebras.
</Item>
<Item>
New functionality for binary relations on arbitrary sets, magmas and
semigroups.
</Item>
<Item>
Bidirectional streams, allowing an external process to be started and then
controlled <Q>interactively</Q> by &GAP;
</Item>
<Item>
A prototype implementation of algorithms using general subgroup chains.
</Item>
<Item>
Changes in the behavior of vectors over small finite fields.
</Item>
<Item>
A fifth book <Q>New features for Developers</Q> has been added to the &GAP; manual.
</Item>
<Item>
Numerous bug fixes and performance improvements
</Item>
</List>
<P/>
The changes between the final release of &GAP; 3 (version 3.4.4) and
&GAP; 4 are wide-ranging. The general philosophy of the
changes is two-fold. Firstly, many assumptions in the design of
&GAP; 3 revealed its authors' primary interest in group theory, and
indeed in finite group theory. Although much of the &GAP; 4 library
is concerned with groups, the basic design now allows extension to
other algebraic structures, as witnessed by the inclusion of
substantial bodies of algorithms for computation with semigroups and
Lie algebras. Secondly, as the scale of the system, and the number of
people using and contributing to it has grown, some aspects of the
underlying system have proved to be restricting, and these have been
improved as part of comprehensive re-engineering of the system. This
has included the new method selection system, which underpins the
library, and a new, much more flexible, &GAP; package interface.
<P/>
Details of these changes can be found in the document
<Q>Migrating to GAP 4</Q> available at the &GAP; website,
see <URL>https://www.gap-system.org/Gap3/migratedoc.pdf</URL>.
<P/>
It is perhaps worth mentioning a few points here.
<P/>
Firstly, much remains unchanged, from the perspective of the mathematical
user:
<P/>
<List>
<Item>
The syntax of that part of the &GAP; language that most users need
for investigating mathematical problems.
<P/>
</Item>
<Item>
The great majority of function names.
<P/>
</Item>
<Item>
Data libraries and the access to them.
</Item>
</List>
<P/>
A number of visible aspects have changed:
<P/>
<List>
<Item>
Some function names that need finer specifications now that there are
more structures available in &GAP;.
</Item>
<Item>
The access to information already obtained about a mathematical
structure. In &GAP; 3 such information about a group could be looked
up by directly inspecting the group record, whereas in &GAP; 4
functions must be used to access such information.
</Item>
</List>
<P/>
Behind the scenes, much has changed:
<P/>
<List>
<Item>
A new kernel, with improvements in memory management and in
the language interpreter, as well as new features such as saving of
workspaces and the possibility of compilation of &GAP; code into C.
</Item>
<Item>
A new structure to the library, based upon a new type and
method selection system, which is able to support a broader range of
algebraic computation and to make the structure of the library simpler
and more modular.
</Item>
<Item>
New and faster algorithms in many mathematical areas.
</Item>
<Item>
Data structures and algorithms for new mathematical objects, such as
algebras and semigroups.
</Item>
<Item>
A new and more flexible structure for the &GAP; installation
and documentation, which means, for example, that a &GAP; package and
its documentation can be installed and be fully usable without any changes
to the &GAP; system.
</Item>
</List>
<P/>
Very few features of &GAP; 3 are not yet available in &GAP; 4.
<P/>
<List>
<Item>
Not all of the &GAP; 3 packages have yet been converted
for use with &GAP; 4.
</Item>
<Item>
The library of crystallographic groups which was present in
&GAP; 3 is now part of a &GAP; 4 package
<URL>
<Link>https://www.gap-system.org/Packages/crystcat.html</Link>
<LinkText>
<Package>CrystCat</Package>
</LinkText>
</URL>
by V. Felsch and F. Gähler.
</Item>
</List>
</Section>
</Chapter>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!-- %% -->
<!-- %E -->
|