diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-05-31 13:15:51 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-05-31 13:15:51 -0700 |
commit | 446bfc27eeac1e1c3c99ed71a6da3e64a87c5987 (patch) | |
tree | a84003d54f3ca6b314e08f1c336438c2982e4a4c /RELNOTES | |
parent | 3ce2f2dcf8b8818926519f5f2652d1f6914eae2c (diff) | |
download | txr-master.tar.gz txr-master.tar.bz2 txr-master.zip |
* 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 | 119 |
1 files changed, 119 insertions, 0 deletions
@@ -1,3 +1,122 @@ + TXR 300 + 2025-05-31 + + + Features + + - Lib: + - Function iterp: test whether an object is an iterator. + - Iterable ranges with skip factor: 1..10..2, "aa".."dd"..4. + - Function progf: pass arguments to each function in a list, + returning value of last one. + - rand: bits of PRNG now used more efficiently: + - e.g. 32 successive (rand 2) calls use a single 32 bit + random word pulled from PRNG. + - Functions remove, keep: generalized remqual and keepqual. + + - System Interface: + - glob* now supports string and integer ranges in brace expansion, + similarly to bash. + - Bash has only single-character ranges like {a..z}, whereas + we have {aa...zz} and such. + - also: new bexp function now exposes glob*'s brace expansion. + + - Syntax: + - letrec macro. + - case, case*, ecase and ecase* synonym macros for casequal family, + for nicer readability. + - new mul and div macros to update a place by multiplying + or dividing its current value. + + - Read syntax: + - quasiliteral substitutions can now specify format directive, + e.g. `@~3,2f:a` is like `@a`, but with ~3,2f format directive + applied. + - referencing dot allows white space on right side + - thus chains like obj.(meth arg).next ... can be split + across lines now. + - symbols can contain | character. + + - Expansion: + - *expand-hook* feature. + - noexpand mechanism to annotate code as not requiring expansion. + - ifx macro provides infix. + - c-like operators for bit operations. + - squared functions: sin ** 2 x is sine squared x. + - novel precedence algorithm for intuitive parses. + - superfix relational comparisons 0 < x <= j < k. + + - Pattern Matching + - New match-tuple-case macro + - @(require) operator now possible over argument tuples in + lambda-match. + - new macros in the "each" family: + - each-match-case, collect-match-cases, append-match-cases, + keep-match-cases, ... and others. + + - Data Integrity + - HMAC: functions hmac-sha1, hmac-sha256 and hmac-md5. + - sha1-hash, sha256-hash, md5-hash now take stream argument. + + - Data Compression + - str-compress and str-decompress functions directly compress + and decompress strings as UTF-8. + + - listener: + - auto-infix mode. + - works with auto-compound mode. + - TXR can be used as infix calculator easily. + + - buffers: + - now support bit operations + - functions buf-and, buf-ash, and others. + - also integrated into math lib: logand, ash, ... work on buffers. + - make-buf and buf-set-length can fill with multi-byte-patterns, + specified as a buffer or integer. + - improvement in buf representation, streamlining all code touching it. + + - streams: + - better support for mixed character and byte push-back + in file/socket/pipe streams. + - string byte input streams support character input, + any mixture of unget-byte and unget-char operations, + and also fill-buf. + - much improved support for mixed parsing and + regular I/O operations. + - after iread or get-json, we can read the characters + which immediately follow, and then having consumed + what we need, do another iread or get-json. + - string output streams support truncate-stream and seek-stream. + - string input stream supports seek-stream. + - buffers streams similarly improved. + + - debugging: + - new parameter macro :trace lets any function be statically traced. + - uses same mechanism as trace, but does not turn on/off + dynamically + - works with any function anywhere: flet, labels, lambdas. + + - compiler: + - minor optimization improvements. + - diagnostic improvements (origin tracing). + + - build: + - New utility "config-cache-hook.tl" available in tree for caching + build configurations, for faster git bisect and whatnot. + + Bugs + + - build: + - configure: bad gcc version check. + - Makefile: don't create .build_id for non-users of build_id. + - setenv: checks for error from C setenv and throw. + - buffers: conversion of zero-sized buffer to integer was asserting. + - listener: abort when Tab-completing sym with non-existent package. + - signals: SIGSYS considered synchronous signal like SIGFPE, etc. + - listener: fixed 2021 regression causing no Tab completion on keywords. + + + TXR 299 2025-02-16 |