diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-07-29 07:17:35 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-07-29 07:17:35 -0700 |
commit | d7c36a8a2497d2d01668db58d2b339157ae35db3 (patch) | |
tree | 8bc3507fe946df2524588970702cb6774564e969 /RELNOTES | |
parent | fab098e65ffe56e3fce5ffa2ae30f127b569476d (diff) | |
download | txr-d7c36a8a2497d2d01668db58d2b339157ae35db3.tar.gz txr-d7c36a8a2497d2d01668db58d2b339157ae35db3.tar.bz2 txr-d7c36a8a2497d2d01668db58d2b339157ae35db3.zip |
Version 290.txr-290
* RELNOTES: Updated.
* configure (txr_ver): Bumped version.
* stdlib/ver.tl (lib-version): Bumped.
* txr.1: Bumped version and date.
* txr.vim, tl.vim: Regenerated.
* protsym.c: Regenerated.
Diffstat (limited to 'RELNOTES')
-rw-r--r-- | RELNOTES | 69 |
1 files changed, 69 insertions, 0 deletions
@@ -1,3 +1,72 @@ + TXR 290 + 2023-07-29 + + + Features + + - Compiler: + - Deeper constant-folding optimizations, assisted + by data flow information. + + - Data Integrity: + - SHA-1 digest now provided; it is in wide use. + + - Lib: + - group-by, group-reduce and unique functions refactored to use sequence + iteration. + + - Math: + - Numerous C99 math functions now exposed: + - cbrt, erf, erfc, exp10, exp2, expm1, gamma, j0, j1, lgamma, + log1p, logb, nearbyint, rint, significand, tgamma, y0, y1, + copysign, drem, fdim, fmax, fmin, hypot, jn, ldexp, nextafter, + remainder, scalb, scalbln, and yn + - All of these can be user-defined in a custom arithmetic struct. + + - Environments + - Internal representation of top-level environments is simplified, + eliminating a level of indirection. + - New functions for lexical introspection: + - lexical-binding-kind, lexical-fun-binding-kind, + lexical-symacro-p and lexical-macro-p. + + Bugs + + - hash: out-of-bounds access in hash-iter-peek function causing instability + in hash iteration that depend on this function. + - crypt function: + - handle libxcrypt failure tokens properly, so that we treat them as an + error instead of returnig them to the application. + - md5: was totally broken on big endian. + - VM: compiled functions were not picking up redefinitions of functions that + they call, sticking with the old functions. This issue was uncovered during + work on the new representation of top-level environments, which also + happens to fix the problem. + - pattern matching: + - the above VM bug fix means that the double definition of + sys:non-triv-pat-p in the pattern matching module is handled right; + causing sys:transform-qquote to be expanded using the correct definition + of the function, exposing an obscure issue with quasiquoted hash + literals. + - another bug: variable patterns like @var were not seeing lexical + symbol macros, only global symbol macros, global variables and + lexical variables. + - environments: redefinition of symbol macros was found not to trigger cache + invalidation in VM descriptors, causing compiled code to keep seeing + the old definitions of the symbol. + - lib: the del operator now works with index lists, which is the access + notation like [obj '(1 2 4)] for picking out indices. + As a result of this, there is a change in semantics in how the + replace function handles index lists. If there are fewer replacement + items than indices, then instead of stopping, the replace function + deletes the specified indices. (Subject to -C option.) + - paths: rel-path function was considering empty strings to be + absolute paths, causing (rel-path "" "a") to be diagnosed as an + invalid mixture of absolute and relative paths. + - environments: bugfix in lexical-var-p and lexical-lisp1-binding. + + + TXR 289 2023-07-02 |