summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-08-05 19:31:22 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-08-05 19:31:22 -0700
commit3ef6cb7a6bc3e9ec77ad5ef590f1c7ad8164659a (patch)
tree594464d461b2cf4b447f8976ed5bc4d9bd80437e
parent33832ea317f8fc57c251e0dce04b67760a378bac (diff)
downloadtxr-3ef6cb7a6bc3e9ec77ad5ef590f1c7ad8164659a.tar.gz
txr-3ef6cb7a6bc3e9ec77ad5ef590f1c7ad8164659a.tar.bz2
txr-3ef6cb7a6bc3e9ec77ad5ef590f1c7ad8164659a.zip
Version 94.txr-94
-rw-r--r--ChangeLog12
-rw-r--r--RELNOTES45
-rwxr-xr-xconfigure2
-rw-r--r--dep.mk2
-rw-r--r--share/txr/stdlib/ver.txr2
-rw-r--r--txr.14
-rw-r--r--txr.vim150
7 files changed, 138 insertions, 79 deletions
diff --git a/ChangeLog b/ChangeLog
index cd9503ef..e1218788 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2014-08-05 Kaz Kylheku <kaz@kylheku.com>
+ Version 94.
+
+ * RELNOTES: Updated.
+
+ * configure, txr.1: Bumped version.
+
+ * share/txr/stdlib/ver.txr: Likewise
+
+ * txr.vim, dep.mk: Updated.
+
+2014-08-05 Kaz Kylheku <kaz@kylheku.com>
+
* rand.c (make_random_state): Make the seeding behavior
portable when the seed is a fixnum or bignum. The goal is that the same
values of seed should produce the same random sequences on any
diff --git a/RELNOTES b/RELNOTES
index e363882a..7b82ef41 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,48 @@
+ TXR 94
+ 2014-08-05
+
+
+ Features
+
+ - New functions: giterate, partition-by, uniq.
+
+ - reduce-left and reduce-right correctly work on strings and vectors.
+
+ - quasiquote splices can now occur in string quasiliterals, directly
+ as `xyz @,foo`, `xyz @{,foo}`, `xyz @,(foo)` etc. Previously this
+ syntax was rejected, requiring workarounds like (let ((x ,foo)) `xyz @x`).
+
+ - POSIX functions exposed: getpid, getppid, kill, setitimer, getitimer.
+
+ - The parser is now re-entrant. This means that macro expanders can
+ safely recurse into the parser, for instance with regex-parse
+ or read.
+
+ Bugs
+
+ - @(output) blocks were discovered not to be applying filters to the results
+ of embedded TXR Lisp evaluations.
+
+ - n-perm-k function was broken for values of k equal to 1.
+
+ - Fixed situations when exceptions with bogus messages are issued when the
+ arithmetic +, - and * functions are called with wrong type arguments.
+
+ - Fixed grossly incorrect documentation of the repeat function, to
+ reflect actual syntax and behavior.
+
+ - Fixed situations in which some signal handlers that don't need to
+ execute on a separate stack might do so.
+
+ - Put in a guard against async signal nesting: a situation when
+ an asynchronous signal handler performs some blocking operation
+ which enables async signal handling triggering re-entrancy.
+
+ - Fixed platform-dependent behaviors in random number seeding
+ (make-random-state function).
+
+
+
TXR 93
2014-07-22
diff --git a/configure b/configure
index 33c87103..97a05671 100755
--- a/configure
+++ b/configure
@@ -408,7 +408,7 @@ fi
#
-txr_ver=93
+txr_ver=94
#
# The all important banner.
diff --git a/dep.mk b/dep.mk
index 65612db8..023e9bb7 100644
--- a/dep.mk
+++ b/dep.mk
@@ -1,5 +1,5 @@
./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)/./regex.h $(top_srcdir)/./arith.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
+./lex.yy.o: config.h $(top_srcdir)/./lib.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.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
diff --git a/share/txr/stdlib/ver.txr b/share/txr/stdlib/ver.txr
index b2164ffe..c81fc1a0 100644
--- a/share/txr/stdlib/ver.txr
+++ b/share/txr/stdlib/ver.txr
@@ -1 +1 @@
-@(do (defvar *lib-version* 93))
+@(do (defvar *lib-version* 94))
diff --git a/txr.1 b/txr.1
index 2f9efc99..eb43b4f8 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-07-21 "Utility Commands" "TXR Text Processing Language" "Kaz Kylheku"
+.TH "TXR" 1 2014-08-05 "Utility Commands" "TXR Text Processing Language" "Kaz Kylheku"
.SH NAME
-txr \- text processing language (version 93)
+txr \- text processing language (version 94)
.SH SYNOPSIS
.B txr [ options ] query-file { data-file }*
.sp
diff --git a/txr.vim b/txr.vim
index 03440c0f..62b7379a 100644
--- a/txr.vim
+++ b/txr.vim
@@ -80,80 +80,82 @@ syn keyword txl_keyword contained fun func-get-env func-get-form func-set-env
syn keyword txl_keyword contained functionp gcd gen generate
syn keyword txl_keyword contained gensym get-byte get-char get-hash-userdata
syn keyword txl_keyword contained get-line get-lines get-list-from-stream get-sig-handler
-syn keyword txl_keyword contained get-string get-string-from-stream gethash giterate
-syn keyword txl_keyword contained group-by gun hash hash-alist
-syn keyword txl_keyword contained hash-construct hash-count hash-diff hash-eql
-syn keyword txl_keyword contained hash-equal hash-isec hash-keys hash-pairs
-syn keyword txl_keyword contained hash-uni hash-update hash-update-1 hash-values
-syn keyword txl_keyword contained hashp html-decode html-encode iapply
-syn keyword txl_keyword contained identity ido if iff
-syn keyword txl_keyword contained iffi inc inhash int-flo
-syn keyword txl_keyword contained int-str integerp intern interp-fun-p
-syn keyword txl_keyword contained interpose ip ipf isqrt
-syn keyword txl_keyword contained juxt keep-if keep-if* keywordp
-syn keyword txl_keyword contained labels lambda last lazy-str
-syn keyword txl_keyword contained lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons
-syn keyword txl_keyword contained lazy-stringp lbind lcons-fun lconsp
-syn keyword txl_keyword contained ldiff length length-list length-str
-syn keyword txl_keyword contained length-str-< length-str-<= length-str-> length-str->=
-syn keyword txl_keyword contained length-vec let let* link
-syn keyword txl_keyword contained lisp-parse list list* list-str
-syn keyword txl_keyword contained list-vector listp log log-alert
-syn keyword txl_keyword contained log-auth log-authpriv log-cons log-crit
-syn keyword txl_keyword contained log-daemon log-debug log-emerg log-err
-syn keyword txl_keyword contained log-info log-ndelay log-notice log-nowait
-syn keyword txl_keyword contained log-odelay log-perror log-pid log-user
-syn keyword txl_keyword contained log-warning log10 log2 logand
-syn keyword txl_keyword contained logior lognot logtest logtrunc
-syn keyword txl_keyword contained logxor macro-form-p macro-time macroexpand
-syn keyword txl_keyword contained macroexpand-1 macrolet major make-catenated-stream
-syn keyword txl_keyword contained make-env make-hash make-lazy-cons make-like
-syn keyword txl_keyword contained make-package make-random-state make-similar-hash make-string-byte-input-stream
-syn keyword txl_keyword contained make-string-input-stream make-string-output-stream make-strlist-output-stream make-sym
-syn keyword txl_keyword contained make-time make-time-utc make-trie makedev
-syn keyword txl_keyword contained mapcar mapcar* mapdo maphash
-syn keyword txl_keyword contained mappend mappend* mask match-fun
-syn keyword txl_keyword contained match-regex match-regex-right match-str match-str-tree
-syn keyword txl_keyword contained max member member-if memq
-syn keyword txl_keyword contained memql memqual merge min
-syn keyword txl_keyword contained minor mkdir mknod mkstring
-syn keyword txl_keyword contained mod multi multi-sort n-choose-k
-syn keyword txl_keyword contained n-perm-k nconc nilf none
-syn keyword txl_keyword contained not nreverse null nullify
-syn keyword txl_keyword contained num-chr num-str numberp oddp
-syn keyword txl_keyword contained op open-command open-directory open-file
-syn keyword txl_keyword contained open-files open-files* open-pipe open-process
-syn keyword txl_keyword contained open-tail openlog or orf
-syn keyword txl_keyword contained packagep partition-by perm pop
-syn keyword txl_keyword contained pos pos-if pos-max pos-min
-syn keyword txl_keyword contained posq posql posqual pprinl
-syn keyword txl_keyword contained pprint pprof prinl print
-syn keyword txl_keyword contained prof prog1 progn prop
-syn keyword txl_keyword contained proper-listp push pushhash put-byte
-syn keyword txl_keyword contained put-char put-line put-lines put-string
-syn keyword txl_keyword contained put-strings pwd qquote quasi
-syn keyword txl_keyword contained quasilist quote rand random
-syn keyword txl_keyword contained random-fixnum random-state-p range range*
-syn keyword txl_keyword contained range-regex rcomb read readlink
-syn keyword txl_keyword contained real-time-stream-p reduce-left reduce-right ref
-syn keyword txl_keyword contained refset regex-compile regex-parse regexp
-syn keyword txl_keyword contained regsub rehome-sym remhash remove-if
-syn keyword txl_keyword contained remove-if* remove-path remq remq*
-syn keyword txl_keyword contained remql remql* remqual remqual*
-syn keyword txl_keyword contained rename-path repeat replace replace-list
-syn keyword txl_keyword contained replace-str replace-vec rest ret
-syn keyword txl_keyword contained retf return return-from reverse
-syn keyword txl_keyword contained rlcp rperm rplaca rplacd
-syn keyword txl_keyword contained run s-ifblk s-ifchr s-ifdir
-syn keyword txl_keyword contained s-ififo s-iflnk s-ifmt s-ifreg
-syn keyword txl_keyword contained s-ifsock s-irgrp s-iroth s-irusr
-syn keyword txl_keyword contained s-irwxg s-irwxo s-irwxu s-isgid
-syn keyword txl_keyword contained s-isuid s-isvtx s-iwgrp s-iwoth
-syn keyword txl_keyword contained s-iwusr s-ixgrp s-ixoth s-ixusr
-syn keyword txl_keyword contained search search-regex search-str search-str-tree
-syn keyword txl_keyword contained second seek-stream select seqp
-syn keyword txl_keyword contained set set-diff set-hash-userdata set-sig-handler
-syn keyword txl_keyword contained sethash setlogmask sh sig-abrt
+syn keyword txl_keyword contained get-string get-string-from-stream gethash getitimer
+syn keyword txl_keyword contained getpid getppid giterate group-by
+syn keyword txl_keyword contained gun hash hash-alist hash-construct
+syn keyword txl_keyword contained hash-count hash-diff hash-eql hash-equal
+syn keyword txl_keyword contained hash-isec hash-keys hash-pairs hash-uni
+syn keyword txl_keyword contained hash-update hash-update-1 hash-values hashp
+syn keyword txl_keyword contained html-decode html-encode iapply identity
+syn keyword txl_keyword contained ido if iff iffi
+syn keyword txl_keyword contained inc inhash int-flo int-str
+syn keyword txl_keyword contained integerp intern interp-fun-p interpose
+syn keyword txl_keyword contained ip ipf isqrt itimer-prov
+syn keyword txl_keyword contained itimer-real itimer-virtual juxt keep-if
+syn keyword txl_keyword contained keep-if* keywordp kill labels
+syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
+syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
+syn keyword txl_keyword contained lbind lcons-fun lconsp ldiff
+syn keyword txl_keyword contained length length-list length-str length-str-<
+syn keyword txl_keyword contained length-str-<= length-str-> length-str->= length-vec
+syn keyword txl_keyword contained let let* link lisp-parse
+syn keyword txl_keyword contained list list* list-str list-vector
+syn keyword txl_keyword contained listp log log-alert log-auth
+syn keyword txl_keyword contained log-authpriv log-cons log-crit log-daemon
+syn keyword txl_keyword contained log-debug log-emerg log-err log-info
+syn keyword txl_keyword contained log-ndelay log-notice log-nowait log-odelay
+syn keyword txl_keyword contained log-perror log-pid log-user log-warning
+syn keyword txl_keyword contained log10 log2 logand logior
+syn keyword txl_keyword contained lognot logtest logtrunc logxor
+syn keyword txl_keyword contained macro-form-p macro-time macroexpand macroexpand-1
+syn keyword txl_keyword contained macrolet major make-catenated-stream make-env
+syn keyword txl_keyword contained make-hash make-lazy-cons make-like make-package
+syn keyword txl_keyword contained make-random-state make-similar-hash make-string-byte-input-stream make-string-input-stream
+syn keyword txl_keyword contained make-string-output-stream make-strlist-output-stream make-sym make-time
+syn keyword txl_keyword contained make-time-utc make-trie makedev mapcar
+syn keyword txl_keyword contained mapcar* mapdo maphash mappend
+syn keyword txl_keyword contained mappend* mask match-fun match-regex
+syn keyword txl_keyword contained match-regex-right match-str match-str-tree max
+syn keyword txl_keyword contained member member-if memq memql
+syn keyword txl_keyword contained memqual merge min minor
+syn keyword txl_keyword contained mkdir mknod mkstring mod
+syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
+syn keyword txl_keyword contained nconc nilf none not
+syn keyword txl_keyword contained nreverse null nullify num-chr
+syn keyword txl_keyword contained num-str numberp oddp op
+syn keyword txl_keyword contained open-command open-directory open-file open-files
+syn keyword txl_keyword contained open-files* open-pipe open-process open-tail
+syn keyword txl_keyword contained openlog or orf packagep
+syn keyword txl_keyword contained partition-by perm pop pos
+syn keyword txl_keyword contained pos-if pos-max pos-min posq
+syn keyword txl_keyword contained posql posqual pprinl pprint
+syn keyword txl_keyword contained pprof prinl print prof
+syn keyword txl_keyword contained prog1 progn prop proper-listp
+syn keyword txl_keyword contained push pushhash put-byte put-char
+syn keyword txl_keyword contained put-line put-lines put-string put-strings
+syn keyword txl_keyword contained pwd qquote quasi quasilist
+syn keyword txl_keyword contained quote rand random random-fixnum
+syn keyword txl_keyword contained random-state-p range range* range-regex
+syn keyword txl_keyword contained rcomb read readlink real-time-stream-p
+syn keyword txl_keyword contained reduce-left reduce-right ref refset
+syn keyword txl_keyword contained regex-compile regex-parse regexp regsub
+syn keyword txl_keyword contained rehome-sym remhash remove-if remove-if*
+syn keyword txl_keyword contained remove-path remq remq* remql
+syn keyword txl_keyword contained remql* remqual remqual* rename-path
+syn keyword txl_keyword contained repeat replace replace-list replace-str
+syn keyword txl_keyword contained replace-vec rest ret retf
+syn keyword txl_keyword contained return return-from reverse rlcp
+syn keyword txl_keyword contained rperm rplaca rplacd run
+syn keyword txl_keyword contained s-ifblk s-ifchr s-ifdir s-ififo
+syn keyword txl_keyword contained s-iflnk s-ifmt s-ifreg s-ifsock
+syn keyword txl_keyword contained s-irgrp s-iroth s-irusr s-irwxg
+syn keyword txl_keyword contained s-irwxo s-irwxu s-isgid s-isuid
+syn keyword txl_keyword contained s-isvtx s-iwgrp s-iwoth s-iwusr
+syn keyword txl_keyword contained s-ixgrp s-ixoth s-ixusr search
+syn keyword txl_keyword contained search-regex search-str search-str-tree second
+syn keyword txl_keyword contained seek-stream select seqp set
+syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler sethash
+syn keyword txl_keyword contained setitimer setlogmask sh sig-abrt
syn keyword txl_keyword contained sig-alrm sig-bus sig-check sig-chld
syn keyword txl_keyword contained sig-cont sig-fpe sig-hup sig-ill
syn keyword txl_keyword contained sig-int sig-io sig-iot sig-kill