-
Notifications
You must be signed in to change notification settings - Fork 139
Recent ChangeLog
This page describes changes in the repository after the latest release. The format is more or less the same as Keep a Changelog. It will be occasionally updated. See also the full git logs.
(As of 10 December 2024)
-
Many changes (TODO: demystify them).
- diagram generation
- floating point numbers
- ...
-
Partially implemented
#continuedo
(#443). -
On SortReallocate
and#SortReallocate
to control the reallocation of the sort buffer at the end of modules (#537).
The following changes and fixes have also been backported to the 4.3 branch.
-
Format Mathematica
now encloses dot products (#472) as well as entire expressions (#491) in parentheses. Example:V p,q; L F = (1 + p.q)^3; Format Mathematica; P +s; .end
F = ( + 1 + 3*(p.q) + 3*(p.q)^2 + (p.q)^3 );
This change avoids problems caused by syntax differences between FORM and Mathematica.
-
FORM now warns when saving expressions with too-long names (over 16 characters), which are truncated in save files (#500, #503, #555).
-
FORM now tries to create the sort file at startup to validate
TempSortDir
(#527). -
Improved memory allocation for sorting buffers by splitting a large single memory allocation into smaller, individual allocations (#529). This change is intended to ease buffer overrun detection. Unused memory was identified and removed, reducing memory usage (typically 16 MB for sequential FORM and 24 MB per thread for TFORM). The default values for the 3 setup parameters
SubLargeSize
,SubSmallExtension
andSubSmallSize
have been updated. -
In the debug build, FORM now warns when any sort buffer sizes are altered (#529, #590).
-
Fixed
ModuleOption
to correctly parsePolyFun f
orPolyRatFun f
(#473). -
Fixed a memory error caused by workspace overflow during optimization (#481).
-
Fixed
PolyRatFun
bugs due to an incorrect clean flag (#482). -
Fixed a memory error caused by an array index being out of bounds when printing an empty set by
On names
/On codes
(#487). -
Fixed a memory error in
RemoveSpectator
after making holes in the spectator array (#488). -
Fixed crashes in pattern matching when argument wildcards match with more than 8191 arguments (#490, #519).
-
Fixed data races in TFORM thread statistics (#493).
-
Fixed a freeze bug in parsing complex conjugate operators (#502).
-
Fixed a memory leak in the
MakeInteger
statement associated with handling terms with multiple instances of target functions, which has been present since version 4.2.0 (#509). -
Fixed incorrect error reporting for buffer overflows in
SubSmallExtension
(#513). -
Fixed a bug that could result in termination due to "too small SmallExtension" even when
SmallExtension
had available space (#513). -
Fixed possible buffer shortages in sorting function arguments and dollar variables (#515).
-
Fixed bugs in
Transform
that caused crashes formulargs
when the result size was large (#516). -
Fixed bugs that led to crashes/nonsense results in TFORM with
PolyRatFun
(#517). -
Fixed a bug in ParFORM where the
redefine
statement failed to handle multiple expressions correctly (#530). -
Fixed workspace-related issues that caused failures during output optimization with large expressions (#535).
-
Fixed bugs in
FactArg
that caused crashes when the argument to be factorized or one of the resulting factors was large (#565). -
Fixed bugs in
PolyRatFun
that allowed the use of non-symbols (such as vectors, indices and functions) in rational functions, resulting in incorrect results (#570). -
Fixed wrong signs caused by pattern matching with negative vectors (#583). This bug has been present since version 4.2.0.
-
Fixed
isnumerical
in the#if
instruction (#586). -
Fixed crashes that occur with
Off Compress
(#592). -
Fixed a bug that caused crashes during compression when built without zlib (#593).
-
Fixed rare crashes that occur when loading save files (#594).
-
Fixed typos in error messages for the
#breakdo
instruction (2319a49).