summaryrefslogtreecommitdiffstats
path: root/RELNOTES
diff options
context:
space:
mode:
Diffstat (limited to 'RELNOTES')
-rw-r--r--RELNOTES161
1 files changed, 161 insertions, 0 deletions
diff --git a/RELNOTES b/RELNOTES
index 8045633a..52552300 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,164 @@
+ TXR 292
+ 2023-11-20
+
+
+ Features
+
+ - Build:
+ - speed up compilation of stdlib with optimal compilation
+ order of several key files.
+ - Revised confusing build instructions in ./configure script.
+ - Makefile improvements:
+ - cruft removed; dependency generation simplified.
+ - mkdir invocations factored out to rule.
+ - DELETE_ON_ERROR: used now.
+
+ - Streams:
+ - A new protocol between the close-stream function and its
+ lower-level implementation allows delegate streams to
+ implement a reference counting discipline for closing.
+ - open-file now supports a "T" mode for O_TMPFILE (on Linux,
+ or anywhere else O_TMPFILE is supported).
+
+ - Sequences:
+ - New functions nested-vec and nested-vec-of for easily
+ constructing (simulated) multi-dimensional arrays.
+ - New mref accessor for multi-dimensional access.
+ - also has a side job calling curried functions.
+ - New csort-group function:
+ - Like sort-group, but uses csort instead of sort for key caching.
+ - New hist-sort function: make histogram of sequence, and sort
+ by descending frequency.
+ - New length-list-< function for testing whether a list is
+ shorter than a given length without traversing it beyond
+ that length.
+ - New length-< function for testing any sequence's length
+ against a value without traversing/forcing the sequence
+ to calculate its length.
+ - ref now documented as accessor, not just function.
+ - del operator now allowed on places that index into sequences
+ implemented by structures:
+ - requires both lambda and lambda-set methods.
+
+ - Strings:
+ - New str-esc function for generic character escaping.
+ - New shell escaping functions: sh-esc, sh-esc-all, sh-esc-dq
+ and sh-esc-sq.
+
+ - Packages
+ - New feature: local symbol renaming
+ - Symbols can be imported under alternative names.
+ - New use-sym-as function and :use-syms-as defpackage clause.
+ - Better idea than nicknaming packages (package-local nicknames).
+
+ - Functional library:
+ - New: left-inserting pipeline operators: lflow, lopip, loand.
+ - New: macros orf and lorf for condensing certain op syntax.
+ - New: tap macro, for expressing side effects in pipelines while passing
+ through the value.
+
+ - Syntactic places:
+ - New: ensure macro evaluates an expression and stores its value
+ into a place, if that place's current value is nil.
+
+ - Pattern matching:
+ - some match-case instances are now transformed into casequal.
+
+ - FFI:
+ - Now provides a setjmp macro, longjmp function as well
+ as a jmp-buf utility function that allocates a jmp-buf.
+ - Now possible to interact with libraries that use longjmp
+ for error aborts like libpng and such.
+
+ - POSIX:
+ - chdir function takes stream or file descriptor, which are
+ handled via fchdir.
+ - New glob* function to complement glob:
+ - glob* supports the ** (double star) operator for recursing,
+ via its own implementation, not relying on glob providing that.
+ - glob* has its own implementation of brace expansion.
+ - New rlink function which is like link, but resolves the target path
+ if it denotes a symlink.
+
+ - Listener:
+ - *listener-sel-inclusive-p* is now default, since most terminals
+ have block cursors by default.
+ - New feature: auto compound expression mode lets you omit
+ the parentheses.
+
+ - Math:
+ - The tofloat and toint functions are now generic via the
+ user-defined arithmetic struct mechanism.
+
+ - JSON:
+ - Allow integer objects to be printed rather than insisting on
+ numbers being floating-point.
+ - Allow lists (including lazy lists) to print as [ ... ]
+ rather than insisting on vectors.
+
+ - Windows Installer:
+ - Does not require admin privileges any more; will install for
+ just the current user if the user isn't admin.
+
+ - Documentation:
+ - big change: new hashing scheme for navigation and doc lookup.
+ - section titles now hashed in a more robust way that is resistant
+ against most kinds of edits.
+ - stdlib/doc-syms.tl file is now gone: one less thing to maintain.
+ - Numerous fixes in manual.
+
+ Bugs
+
+ - Compiler:
+ - numbers now externalized sanely in .tlo files:
+ - compile-file makes sure base 10 is used for integers
+ - floating point numbers written with sufficient precision
+
+ - Loading:
+ - load-args-process bugfix: :compile action must load.
+
+ - Streams:
+ - close-stream caches only successful result from underlying
+ function.
+ - a few close functions underneath close-stream were returning
+ nil in the successful case.
+
+ - OOP:
+ - Fix segfault looking up special method after the static slots
+ table of the type has been resized.
+
+ - Pattern matching:
+ - Missing autoloads for match-error and sys:match-pat-error,
+ causing compiled files containing pattern matching not to load.
+
+ - Awk macro:
+ - prn returns nil
+
+ - Search trees:
+ - bug: tree-delete-specific-node not using key fun.
+
+ - Lib:
+ - Two bugs in flatten* function.
+ - Bug in deletion of (ref ...) place: incorrect when object is list.
+
+ - Crypt:
+ - less strict error token detection for wider platform support.
+
+ - Time:
+ - time-utc and time-local methods must subtract gmtime, not add.
+ - time-parse-utc and time-parse-local, likewise.
+
+ - Build:
+ - Misspelled PLATFORM_LDLIBS corrected.
+ - Fix for _TIME_BITS being tied to _FILE_OFFSET_BITS
+ - Address autoload circular dependency involving stdlib/error.tl
+ that can fail builds under some library build orders.
+
+ - Vim:
+ - Fix lack of recognition for char escapes in quasilit.
+
+
+
TXR 291
2023-08-06