This chapter is intended to give users who have experience with GAP 3 some information about what has changed in GAP 4.
In particular, it informs about changed command line options
(see Changed Command Line Options),
the new global variable fail (see Fail),
some functions that have changed their behaviour
(see Changed Functionality) or their names
(see Changed Variable Names),
and some conventions used for variable names (see Naming Conventions).
Then the new concepts of GAP 4 are sketched, first that of mutability or immutability (see Immutability), with the explanation of related changes in functions that copy objects (see Copy), then the concepts of operations and method selection, which are compared with the use of operations records in GAP 3 (see Attributes vs. Record Components, Operations Records, and Operations vs. Dispatcher Functions).
More local changes affect the concepts of notions of generation
(see Different Notions of Generation),
of parents (see Parents and Subgroups),
of homomorphisms (see Homomorphisms vs. General Mappings,
Homomorphisms vs. Factor Structures,
and Isomorphisms vs. Isomorphic Structures),
how elements in finitely presented groups are treated
(see Elements of Finitely Presented Groups),
how information about progress of computations can be obtained
(see The Info Mechanism),
and how one gets information in a break loop
(see Debugging).
While a ``GAP 3 compatibility mode'' is provided (see Compatibility Mode), its use will disable some of the new features of GAP 4. Also it certainly can only try to provide partial compatibility.
For a detailed explanation of the new features and concepts of GAP 4, see the manual ``Programming in GAP''.
GAP 4 manual