Skip to content

Release Notes Form 4.2.1

Takahiro Ueda edited this page Apr 19, 2023 · 7 revisions

This release is a minor update from 4.2.0 and mostly contains bug fixes. Below, the most notable changes are listed.

For a full overview of all the changes made, see the full git logs.

Changelog - FORM 4.2.1 (2019-02-01)

Caveats

  • The default memory usage has been increased: 400MB -> 2GB for the 64-bit sequential version (689b72d)

Added

Command line options

  • -z<TIMEOUT> sets a timelimit in second for the program (689b72d)

  • -Z removes the .str file on crash (689b72d)

Setup parameters

  • JumpRatio controls whether the lookup of cases in Switch constructs (at runtime) should be done by means of a jumptable or by binary searching, depending on the sparseness of the cases (689b72d)

Preprocessor instructions

  • #If
    • sizeof() gives the size of an expression or a $-variable in WORD (f942350)
  • #System
    • (undocumented) -e option ignores an error returned by the system() C-library function. The error code is stored in SYSTEMERROR_ (689b72d)
  • #TimeoutAfter starts a timer to terminate the current program with a given timeout (689b72d)
  • #Write
    • In new %+e and %+E formats, each term starts on a new line (f942350)

Preprocessor variables

  • (undocumented) SYSTEMERROR_: see #System -e (689b72d)

Statements

  • (undocumented) Added <filename> option in the executable Print statement (f94c1c8)

  • Added the ordered option for Set declarations (689b72d)

  • Switch construction (at runtime) (689b72d)

    • Switch ... EndSwitch
    • Case
    • Default
    • Break

    They are used for making a switch construction.

Functions

Improved

Fixed

  • Fixed a bug that caused a pattern matching failure for restricted numbers in ex-Polyratfun (#55)
  • Fixed crashes in routines for gzip decompression (#95)
  • Fixed content_ for polynomials with constant terms (#185)
  • Fixed some portability issues (#217, #223)
  • Fixed corrupted characters from the prepreocessor calculator when the result is the most negative integer (#219)
  • Fixed a crash on accessing the first #factdollar factor of an integer (#222)
  • Fixed memory leaks in routines for gzip compression (#248)
  • Fixed a memory bug for local $-variables in TFORM (#253)
  • Fixed a bug that made gcd_ give wrong results (#258)
  • Fixed a bug in the polynomial GCD routine (#260)
  • Fixed a wrong "Division by zero" runtime error by mul_(x,0) (#261)
  • Fixed a bug that caused wrong results in code optimization (#272)
  • Fixed transform,addargs for the case that the result becomes 0 (#277)
  • Fixed some bug in LHS patterns with poly(rat)fun and symbols (8e8b0ae)
  • Fixed the problem that content_ did not handle functions properly (6eae467)
Clone this wiki locally