From cea9135491ce88543044ccbe81ac844ee61a47b3 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 16 Mar 2014 10:05:26 -0700 Subject: Version 86. --- ChangeLog | 14 +++++++++++++ RELNOTES | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure | 2 +- dep.mk | 4 ++-- txr.1 | 4 ++-- txr.c | 2 +- 6 files changed, 89 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f9615d3..a8ba898f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2014-03-08 Kaz Kylheku + + Version 86 + + * txr.c (version): Bumped. + + * txr.1: Bumped version, set date. + + * configure (txr_ver): Bumped. + + * RELNOTES: Updated + + * dep.mk: Regenerated. + 2014-03-16 Kaz Kylheku * stream.c (win_make_cmdline): I think I cracked the code of diff --git a/RELNOTES b/RELNOTES index cc45cc68..b3922427 100644 --- a/RELNOTES +++ b/RELNOTES @@ -1,3 +1,72 @@ + TXR 86 + 2014-03-16 + + + Features + + - Exposed the implementation of tries to user code. + + - New functions: html-encode, html-decode. + + - New prof operator and pprof macro for simple profiling: time spent and memory + allocated over the evaluation of an expression. + + - New functions sh and run for running system commands. + + - If available, sigaltstack is used when the program registers a handler for + the SIGSEGV signal, allowing TXR programs to catch stack exhaustion and + recover by throwing an exception. + + - New syntactic sugar in the pattern language: @(if)/@(elif)/@(else)/@(end), + which works by transformation to a pattern involving @(cases) and @(require). + + - The @(empty) directive which plays a role in @(output) blocks has a new meaning + in the pattern language for denoting an explicit empty match. + + Bugs + + - Fixed severe performance problem with regex on long strings, caused by feeding + characters to the regex machine past the point that it is clear it will not + accept any more. + + - Fixed broken horizontal matching under @(freeform) on long lines, due to bugs + in the handling of the memory-saving optimization which consumes the prefix of + the lazy string as scanning progresses. + + - Fixed breakage in sub-str over lazy strings. + + - Fixed possible crash in @(trailer) directive. + + - Fixed memory leaks on open-process: one that happened on every call, and one on + failure of the fork function. + + - Fixed pipe-close deadlocks occurring in code that opens numerous pipes; solved + by setting the close-on-exec flag on the pipe descriptors. + + - Fixed faulty argument defaulting logic in the functions: iffi, regex-parse, + lisp-parse, regex-compile and Windows version of open-process. + + - Fixed regression in the random number module, causing the random function to + ignore the seeded random state passed in as an argument, and rely on the global one. + + - Fixed a bug in a rarely used form of the backslash line continuation. + + - Fixed buggy argument quoting in Windows version of open-process. + + - The gc on/off state is now saved and restored as part of unwinding, so if + code that turned off gc throws an exception, gc will be turned back on + at the catch site. + + - Fixed incorrect calculation of malloc upper and lower boundaries, affecting + the correctness of generational garbage collection. + + - In open process, if fdopen fails, kill the process more gently with SIGINT + and SIGTERM rather than SIGKILL, and wait on it. + + - Syntax fix. @^a is not meta applied to the symbol ^a, but rather meta quasiquote a. + + + TXR 85 2014-03-07 diff --git a/configure b/configure index f20ec31d..43f81c60 100755 --- a/configure +++ b/configure @@ -387,7 +387,7 @@ fi # -txr_ver=85 +txr_ver=86 # # The all important banner. diff --git a/dep.mk b/dep.mk index f1523388..16ae6305 100644 --- a/dep.mk +++ b/dep.mk @@ -1,6 +1,6 @@ ./txr.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./stream.h $(top_srcdir)/./gc.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./parser.h $(top_srcdir)/./match.h $(top_srcdir)/./utf8.h $(top_srcdir)/./debug.h $(top_srcdir)/./syslog.h $(top_srcdir)/./eval.h $(top_srcdir)/./txr.h ./lex.yy.o: config.h $(top_srcdir)/./lib.h y.tab.h $(top_srcdir)/./gc.h $(top_srcdir)/./stream.h $(top_srcdir)/./utf8.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./hash.h $(top_srcdir)/./parser.h -./y.tab.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./regex.h $(top_srcdir)/./utf8.h $(top_srcdir)/./match.h $(top_srcdir)/./hash.h $(top_srcdir)/./eval.h $(top_srcdir)/./parser.h +./y.tab.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./regex.h $(top_srcdir)/./utf8.h $(top_srcdir)/./match.h $(top_srcdir)/./hash.h $(top_srcdir)/./eval.h $(top_srcdir)/./stream.h $(top_srcdir)/./parser.h ./match.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./gc.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./regex.h $(top_srcdir)/./stream.h $(top_srcdir)/./parser.h $(top_srcdir)/./txr.h $(top_srcdir)/./utf8.h $(top_srcdir)/./filter.h $(top_srcdir)/./hash.h $(top_srcdir)/./debug.h $(top_srcdir)/./eval.h $(top_srcdir)/./match.h ./lib.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./gc.h $(top_srcdir)/./arith.h $(top_srcdir)/./rand.h $(top_srcdir)/./hash.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./stream.h $(top_srcdir)/./utf8.h $(top_srcdir)/./filter.h $(top_srcdir)/./eval.h $(top_srcdir)/./regex.h ./regex.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./parser.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./regex.h $(top_srcdir)/./txr.h $(top_srcdir)/./gc.h @@ -10,7 +10,7 @@ ./arith.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./gc.h $(top_srcdir)/./arith.h ./hash.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./gc.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./stream.h $(top_srcdir)/./hash.h ./utf8.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./utf8.h -./filter.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./hash.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./match.h $(top_srcdir)/./filter.h $(top_srcdir)/./gc.h $(top_srcdir)/./stream.h +./filter.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./hash.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./match.h $(top_srcdir)/./filter.h $(top_srcdir)/./gc.h $(top_srcdir)/./eval.h $(top_srcdir)/./stream.h ./eval.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./gc.h $(top_srcdir)/./arith.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./regex.h $(top_srcdir)/./stream.h $(top_srcdir)/./parser.h $(top_srcdir)/./hash.h $(top_srcdir)/./debug.h $(top_srcdir)/./match.h $(top_srcdir)/./rand.h $(top_srcdir)/./filter.h $(top_srcdir)/./txr.h $(top_srcdir)/./combi.h $(top_srcdir)/./eval.h ./rand.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./gc.h $(top_srcdir)/./arith.h $(top_srcdir)/./rand.h $(top_srcdir)/./eval.h ./combi.o: config.h $(top_srcdir)/./lib.h $(top_srcdir)/./signal.h $(top_srcdir)/./unwind.h $(top_srcdir)/./eval.h $(top_srcdir)/./hash.h $(top_srcdir)/./combi.h diff --git a/txr.1 b/txr.1 index 1a7a7e4c..b9a1e2e7 100644 --- a/txr.1 +++ b/txr.1 @@ -21,9 +21,9 @@ .\"IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED .\"WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -.TH "TXR" 1 2014-03-08 "Utility Commands" "TXR Text Processing Language" "Kaz Kylheku" +.TH "TXR" 1 2014-03-16 "Utility Commands" "TXR Text Processing Language" "Kaz Kylheku" .SH NAME -txr \- text processing language (version 85) +txr \- text processing language (version 86) .SH SYNOPSIS .B txr [ options ] query-file { data-file }* .sp diff --git a/txr.c b/txr.c index 5423c971..b6482c11 100644 --- a/txr.c +++ b/txr.c @@ -47,7 +47,7 @@ #include "eval.h" #include "txr.h" -const wchli_t *version = wli("85"); +const wchli_t *version = wli("86"); const wchar_t *progname = L"txr"; /* -- cgit v1.2.3