Magma V2.26-1 contained an optimisation added to the Magma parser to read in large multivariate polynomials much more quickly than before. Unfortunately, it also introduced a bug in V2.26-1 and V2.26-2 alone, which has been fixed in V2.26-3.
The problem only happened in the special circumstance when parsing a top-level print/assignment statement in the particular case of an expression with the following properties:-
1 + 2 + 3^2;was incorrectly parsed (only when in top-level) as if it were given as:
1 + (2 + 3)^2;No bug was introduced into the integer package or any other mathematical package in the Magma kernel; the bug was purely in the parsing of this small class of expressions in a simple top-level command only. The problem also did NOT affect any package code or top-level compound statements at all (so all C kernel and Magma language package intrinsic functions were perfectly fine and didn't behave any differently than before). So the above example statement was not parsed incorrectly within a function/procedure/intrinsic or even within a if/while/repeat statement at the top-level; for example, compound statements like the following were even parsed correctly at top level:
if true then 1 + 2 + 3^2; end if;Consequently, the results of any Magma intrinsics, functions, or algorithms were not affected. The only issue was that the parsing of some constant expressions printed or assigned in a top-level statement (and only in that relatively special form) were possibly affected, of course, so only the inputs to algorithms may not not have been what was intended. But a very large proportion of inputs, which did not use the problematic form of the input constants at the top level, were not affected at all.
We stress again that the problem only occurs in V2.26-1 and V2.26-2 and these versions were only available for the period 1 April, 2021 until 7 May, 2021. All sites who downloaded these versions have been informed.