Release v2.16.0.0

The following are the changes in this release:

    Starting with calc version 2.16.0.0, the ability to perform arithmetic
    on addresses of values in calc objects has been greatly restricted.

    Most arithmetic on of value addresses could easily cause calc to
    crash.  For example, prior to calc version 2.16.0.0, the following
    command was likely to crash calc:

        calc '*((&.)+1e9)'

    Subtracting two value addresses is permitted, however there is NO
    guarantee that the address of a value will remain consistent across
    calc runs.  Addresses of values depend on the circumstances of when
    the calc values were formed.

    The above restrictions and caveats apply to addresses of values.
    Such restrictions and caveats to NOT apply to the addresses of
    octets, NOR to the addresses within strings.  If isptr(x) == 2, then
    x is value-pointer and the above mentioned restrictions and caveats apply.

    See "help address" for more information on value address arithmetic.

    Added E_INVALID_DEREF (10610) error code to indicate the invalid
    dereferencing a non-variable.

    Added E_INVALID_ADDR_OP (10611) error code to indicate an invalid
    arithmetic address operation.

    We plan to let this most recent change settle down before performing
    the calc v2 to calc v3 fork.  Therefore, version 2.16.1.0 will form
    the basis for the calc v2 to calc v3 fork.
This commit is contained in:
Landon Curt Noll
2025-08-14 18:34:32 -07:00
parent f912da9427
commit 077ba65285
3 changed files with 6 additions and 6 deletions

View File

@@ -1245,11 +1245,11 @@ EXT=
# The calc version in the form of x.y.z.w
#
VERSION= 2.15.1.2
VERSION= 2.16.0.0
# The calc major version in the form of x.y.z
#
VER= 2.15.1
VER= 2.16.0
# Names of shared libraries with versions
#