summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--RELNOTES88
-rwxr-xr-xconfigure2
-rw-r--r--txr.14
-rw-r--r--txr.c2
-rw-r--r--txr.vim218
6 files changed, 214 insertions, 112 deletions
diff --git a/ChangeLog b/ChangeLog
index 68cf168e..2fcb2460 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2014-02-26 Kaz Kylheku <kaz@kylheku.com>
+ Version 81
+
+ * txr.c (version): Bumped.
+
+ * txr.1: Bumped version and set date.
+
+ * configure (txr_ver): Bumped.
+
+ * RELNOTES, txr.vim: Updated.
+
+2014-02-26 Kaz Kylheku <kaz@kylheku.com>
+
* parser.l (regex_parse, lisp_parse): Better formatting
for the context string that serves in place of a filename.
diff --git a/RELNOTES b/RELNOTES
index 1bf0c7dd..68e00550 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,91 @@
+ TXR 81
+ 2014-02-25
+
+
+ Features
+
+ - Calls to stream opening functions can omit the mode parameter,
+ which defaults to "r".
+
+ - New functions for accessing environment variables from TXR Lisp,
+ augmenting the @(next :env) method in TXR pattern language.
+
+ - New variables *args* and *full-args* for accessing the
+ partial and full command line.
+
+ - New functions macro-form-p, macroexpand and macroexpand-1.
+
+ - Implemented special variables (dynamic scope). All global variables
+ defined with defvar and all the predefined variables are special,
+ with the symbols being attributed for special binding similarly
+ to Common Lisp.
+
+ - Implemented the macrolet operator for binding local macros.
+ The macroexpand and macro-form-p functions work correctly with
+ the environment from a macrolet.
+
+ - Implemented symbol macros: global symbol macros via defsymacro,
+ and local macros via symacrolet. Local symbol maros are shadowed
+ properly by lexical bindings, and are expanded properly in
+ situations where they are used as assignment places by the
+ set operator, and related operators.
+
+ - Introduced the (. expr) syntax which is equivalent to expr.
+ Handy for writing a function argument list that accepts
+ only trailing parameters as (lambda (. rest) ...)
+ rather than (lambda rest ...).
+
+ - New functions prinl and pprinl, which are like print and pprint,
+ but add a newline.
+
+ - Added new Unix filesystem access functions: symlink, link, mkdir,
+ readlink, mknod. Also makedev, minor and major.
+
+
+
+ Bugs
+
+ - Fixed broken seek-to-end-p boolean parameter in open-tail,
+ a regression in TXR 71.
+
+ - Fixed a regression in the debugger, also introduced in TXR 71,
+ causing it not to print the data line being processed in a horizontal
+ scanning context.
+
+ - Fixed premature opening of data sources in the TXR pattern language.
+ Opening files is now delayed until a data consuming directive
+ needs to match data. The previous kludgy approach recognized only the
+ @(next) directive, and only one occurrence of it.
+
+ - Fixed incorrect square root calculation over bignums. It was
+ not computing the last bit of the result and so could be off by
+ one.
+
+ - Numerous bugfixes in form expansion, in particular handling of
+ variable bindings and function and macro parameter lists.
+
+ - Global macro bindings make a symbol fboundp. Also, symbol-function
+ retrieves information about a global macro.
+
+ - Fixed several bugs in quasiquote, including the handling of
+ `(... . ,form) in quasiquote.
+
+ - Fixed get-string-from-stream throwing an inappropriate internal error on
+ type mismatch.
+
+ - Fixed the neglect to expand Lisp forms in the argument lists
+ of the directives of the pattern matching language.
+
+ - Added the neglected s-ifsock variable, which is part of the Unix
+ filesystem interface, corresponding to S_IFSOCK.
+
+ - Fixed some instances of source code line number not propagating
+ through code transformations.
+
+ - Fixed numerous formatting issues in the documentation, and omissions.
+
+
+
TXR 80
2014-02-17
diff --git a/configure b/configure
index dc8a6291..b727aac6 100755
--- a/configure
+++ b/configure
@@ -387,7 +387,7 @@ fi
#
-txr_ver=80
+txr_ver=81
#
# The all important banner.
diff --git a/txr.1 b/txr.1
index ef9600c0..820e5d09 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-02-17 "Utility Commands" "Txr Text Processing Language" "Kaz Kylheku"
+.TH "TXR" 1 2014-02-25 "Utility Commands" "Txr Text Processing Language" "Kaz Kylheku"
.SH NAME
-txr \- text processing language (version 80)
+txr \- text processing language (version 81)
.SH SYNOPSIS
.B txr [ options ] query-file { data-file }*
.sp
diff --git a/txr.c b/txr.c
index d2ca6f23..56ab6340 100644
--- a/txr.c
+++ b/txr.c
@@ -47,7 +47,7 @@
#include "eval.h"
#include "txr.h"
-const wchli_t *version = wli("80");
+const wchli_t *version = wli("81");
const wchar_t *progname = L"txr";
val self_path, prog_args_full, prog_args;
diff --git a/txr.vim b/txr.vim
index 268fcbad..437a8fe6 100644
--- a/txr.vim
+++ b/txr.vim
@@ -47,119 +47,121 @@ syn keyword txl_keyword contained asin assoc assql atan
syn keyword txl_keyword contained atan2 atom bignump block
syn keyword txl_keyword contained boundp break-str call car
syn keyword txl_keyword contained cat-str cat-vec catch cdr
-syn keyword txl_keyword contained ceil chain chr-isalnum chr-isalpha
-syn keyword txl_keyword contained chr-isascii chr-iscntrl chr-isdigit chr-isgraph
-syn keyword txl_keyword contained chr-islower chr-isprint chr-ispunct chr-isspace
-syn keyword txl_keyword contained chr-isupper chr-isxdigit chr-num chr-str
-syn keyword txl_keyword contained chr-str-set chr-tolower chr-toupper chrp
-syn keyword txl_keyword contained close-stream closelog collect-each collect-each*
-syn keyword txl_keyword contained comb compl-span-str cond cons
-syn keyword txl_keyword contained conses conses* consp copy-alist
-syn keyword txl_keyword contained copy-cons copy-hash copy-list copy-str
-syn keyword txl_keyword contained copy-vec cos count-if countq
-syn keyword txl_keyword contained countql countqual cum-norm-dist daemon
-syn keyword txl_keyword contained dec defmacro defsymacro defun
-syn keyword txl_keyword contained defvar del delete-package do
-syn keyword txl_keyword contained dohash downcase-str dwim each
-syn keyword txl_keyword contained each* env env-hash eq
-syn keyword txl_keyword contained eql equal errno error
-syn keyword txl_keyword contained eval evenp exit exp
-syn keyword txl_keyword contained expand expt exptmod fboundp
-syn keyword txl_keyword contained fifth find find-if find-package
-syn keyword txl_keyword contained first fixnump flatten flatten*
-syn keyword txl_keyword contained flip flo-int flo-str floatp
-syn keyword txl_keyword contained floor flush-stream for for*
-syn keyword txl_keyword contained force format fourth fun
-syn keyword txl_keyword contained func-get-env func-get-form func-set-env functionp
-syn keyword txl_keyword contained gcd generate gensym get-byte
-syn keyword txl_keyword contained get-char get-hash-userdata get-line get-list-from-stream
-syn keyword txl_keyword contained get-sig-handler get-string-from-stream gethash group-by
-syn keyword txl_keyword contained hash hash-alist hash-construct hash-count
-syn keyword txl_keyword contained hash-diff hash-eql hash-equal hash-isec
-syn keyword txl_keyword contained hash-keys hash-pairs hash-uni hash-update
-syn keyword txl_keyword contained hash-update-1 hash-values hashp identity
-syn keyword txl_keyword contained if iff iffi inc
-syn keyword txl_keyword contained inhash int-flo int-str integerp
-syn keyword txl_keyword contained intern interp-fun-p isqrt keep-if
-syn keyword txl_keyword contained keep-if* keywordp lambda 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 lcons-fun ldiff length
-syn keyword txl_keyword contained length-list length-str length-str-< length-str-<=
-syn keyword txl_keyword contained length-str-> length-str->= length-vec let
-syn keyword txl_keyword contained let* lisp-parse list list*
-syn keyword txl_keyword contained list-str list-vector listp log
-syn keyword txl_keyword contained log-alert log-auth log-authpriv log-cons
-syn keyword txl_keyword contained log-crit log-daemon log-debug log-emerg
-syn keyword txl_keyword contained log-err log-info log-ndelay log-notice
-syn keyword txl_keyword contained log-nowait log-odelay log-perror log-pid
-syn keyword txl_keyword contained log-user log-warning 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 make-catenated-stream make-hash make-lazy-cons
-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 mapcar mapcar*
+syn keyword txl_keyword contained ceil chain chdir chr-isalnum
+syn keyword txl_keyword contained chr-isalpha chr-isascii chr-iscntrl chr-isdigit
+syn keyword txl_keyword contained chr-isgraph chr-islower chr-isprint chr-ispunct
+syn keyword txl_keyword contained chr-isspace chr-isupper chr-isxdigit chr-num
+syn keyword txl_keyword contained chr-str chr-str-set chr-tolower chr-toupper
+syn keyword txl_keyword contained chrp close-stream closelog collect-each
+syn keyword txl_keyword contained collect-each* comb compl-span-str cond
+syn keyword txl_keyword contained cons conses conses* consp
+syn keyword txl_keyword contained copy-alist copy-cons copy-hash copy-list
+syn keyword txl_keyword contained copy-str copy-vec cos count-if
+syn keyword txl_keyword contained countq countql countqual cum-norm-dist
+syn keyword txl_keyword contained daemon dec defmacro defsymacro
+syn keyword txl_keyword contained defun defvar del delete-package
+syn keyword txl_keyword contained do dohash downcase-str dwim
+syn keyword txl_keyword contained each each* env env-hash
+syn keyword txl_keyword contained eq eql equal errno
+syn keyword txl_keyword contained error eval evenp exit
+syn keyword txl_keyword contained exp expand expt exptmod
+syn keyword txl_keyword contained fboundp fifth find find-if
+syn keyword txl_keyword contained find-package first fixnump flatten
+syn keyword txl_keyword contained flatten* flip flo-int flo-str
+syn keyword txl_keyword contained floatp floor flush-stream for
+syn keyword txl_keyword contained for* force format fourth
+syn keyword txl_keyword contained fun func-get-env func-get-form func-set-env
+syn keyword txl_keyword contained functionp gcd generate gensym
+syn keyword txl_keyword contained get-byte get-char get-hash-userdata get-line
+syn keyword txl_keyword contained get-list-from-stream get-sig-handler get-string-from-stream gethash
+syn keyword txl_keyword contained group-by 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 identity if iff iffi
+syn keyword txl_keyword contained inc inhash int-flo int-str
+syn keyword txl_keyword contained integerp intern interp-fun-p isqrt
+syn keyword txl_keyword contained keep-if keep-if* keywordp lambda
+syn keyword txl_keyword contained lazy-str lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list
+syn keyword txl_keyword contained lazy-stream-cons lazy-stringp lcons-fun 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 logand logior lognot logtest
+syn keyword txl_keyword contained logtrunc logxor macro-form-p macro-time
+syn keyword txl_keyword contained macroexpand macroexpand-1 macrolet major
+syn keyword txl_keyword contained make-catenated-stream make-hash make-lazy-cons 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 makedev mapcar mapcar*
syn keyword txl_keyword contained maphash mappend mappend* mask
syn keyword txl_keyword contained match-fun match-regex match-regex-right match-str
syn keyword txl_keyword contained match-str-tree max memq memql
-syn keyword txl_keyword contained memqual merge min mkstring
-syn keyword txl_keyword contained mod multi-sort n-choose-k n-perm-k
-syn keyword txl_keyword contained none not nreverse null
-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-pipe open-process open-tail openlog
-syn keyword txl_keyword contained or orf packagep perm
-syn keyword txl_keyword contained pop pos pos-if posq
-syn keyword txl_keyword contained posql posqual pprinl pprint
-syn keyword txl_keyword contained prinl print prog1 progn
-syn keyword txl_keyword contained prop proper-listp push pushhash
-syn keyword txl_keyword contained put-byte put-char put-line put-string
+syn keyword txl_keyword contained memqual merge min minor
+syn keyword txl_keyword contained mkdir mknod mkstring mod
+syn keyword txl_keyword contained multi-sort n-choose-k n-perm-k none
+syn keyword txl_keyword contained not nreverse null num-chr
+syn keyword txl_keyword contained num-str numberp oddp op
+syn keyword txl_keyword contained open-command open-directory open-file open-pipe
+syn keyword txl_keyword contained open-process open-tail openlog or
+syn keyword txl_keyword contained orf packagep perm pop
+syn keyword txl_keyword contained pos pos-if posq posql
+syn keyword txl_keyword contained posqual pprinl pprint prinl
+syn keyword txl_keyword contained print prog1 progn prop
+syn keyword txl_keyword contained proper-listp push pushhash put-byte
+syn keyword txl_keyword contained put-char put-line put-string pwd
syn keyword txl_keyword contained qquote quasi quote rand
syn keyword txl_keyword contained random random-fixnum random-state-p range
-syn keyword txl_keyword contained range* rcomb read 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 return return-from
-syn keyword txl_keyword contained reverse rlcp rperm rplaca
-syn keyword txl_keyword contained rplacd 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-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-regex
-syn keyword txl_keyword contained search-str search-str-tree second seek-stream
-syn keyword txl_keyword contained set set-diff set-hash-userdata set-sig-handler
-syn keyword txl_keyword contained sethash setlogmask sig-abrt sig-alrm
-syn keyword txl_keyword contained sig-bus sig-check sig-chld sig-cont
-syn keyword txl_keyword contained sig-fpe sig-hup sig-ill sig-int
-syn keyword txl_keyword contained sig-io sig-iot sig-kill sig-lost
-syn keyword txl_keyword contained sig-pipe sig-poll sig-prof sig-pwr
-syn keyword txl_keyword contained sig-quit sig-segv sig-stkflt sig-stop
-syn keyword txl_keyword contained sig-sys sig-term sig-trap sig-tstp
-syn keyword txl_keyword contained sig-ttin sig-ttou sig-urg sig-usr1
-syn keyword txl_keyword contained sig-usr2 sig-vtalrm sig-winch sig-xcpu
-syn keyword txl_keyword contained sig-xfsz sin sixth size-vec
-syn keyword txl_keyword contained some sort source-loc source-loc-str
-syn keyword txl_keyword contained span-str splice split-str split-str-set
-syn keyword txl_keyword contained sqrt stat stream-get-prop stream-set-prop
-syn keyword txl_keyword contained streamp string-cmp string-extend string-lt
-syn keyword txl_keyword contained stringp sub sub-list sub-str
-syn keyword txl_keyword contained sub-vec symacrolet symbol-function symbol-name
-syn keyword txl_keyword contained symbol-package symbol-value symbolp syslog
-syn keyword txl_keyword contained tan third throw throwf
-syn keyword txl_keyword contained time time-fields-local time-fields-utc time-string-local
-syn keyword txl_keyword contained time-string-utc time-usec tok-str tostring
-syn keyword txl_keyword contained tostringp tree-bind tree-case tree-find
-syn keyword txl_keyword contained trim-str trunc typeof unget-byte
-syn keyword txl_keyword contained unget-char unquote upcase-str update
-syn keyword txl_keyword contained url-decode url-encode usleep uw-protect
-syn keyword txl_keyword contained vec vec-push vec-set-length vecref
-syn keyword txl_keyword contained vector vector-list vectorp with-saved-vars
-syn keyword txl_keyword contained zerop
+syn keyword txl_keyword contained range* 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 return
+syn keyword txl_keyword contained return-from reverse rlcp rperm
+syn keyword txl_keyword contained rplaca rplacd s-ifblk s-ifchr
+syn keyword txl_keyword contained s-ifdir s-ififo s-iflnk s-ifmt
+syn keyword txl_keyword contained s-ifreg s-ifsock s-irgrp s-iroth
+syn keyword txl_keyword contained s-irusr s-irwxg s-irwxo s-irwxu
+syn keyword txl_keyword contained s-isgid s-isuid s-isvtx s-iwgrp
+syn keyword txl_keyword contained s-iwoth s-iwusr s-ixgrp s-ixoth
+syn keyword txl_keyword contained s-ixusr search-regex search-str search-str-tree
+syn keyword txl_keyword contained second seek-stream set set-diff
+syn keyword txl_keyword contained set-hash-userdata set-sig-handler sethash setlogmask
+syn keyword txl_keyword contained sig-abrt sig-alrm sig-bus sig-check
+syn keyword txl_keyword contained sig-chld sig-cont sig-fpe sig-hup
+syn keyword txl_keyword contained sig-ill sig-int sig-io sig-iot
+syn keyword txl_keyword contained sig-kill sig-lost sig-pipe sig-poll
+syn keyword txl_keyword contained sig-prof sig-pwr sig-quit sig-segv
+syn keyword txl_keyword contained sig-stkflt sig-stop sig-sys sig-term
+syn keyword txl_keyword contained sig-trap sig-tstp sig-ttin sig-ttou
+syn keyword txl_keyword contained sig-urg sig-usr1 sig-usr2 sig-vtalrm
+syn keyword txl_keyword contained sig-winch sig-xcpu sig-xfsz sin
+syn keyword txl_keyword contained sixth size-vec some sort
+syn keyword txl_keyword contained source-loc source-loc-str span-str splice
+syn keyword txl_keyword contained split-str split-str-set sqrt stat
+syn keyword txl_keyword contained stream-get-prop stream-set-prop streamp string-cmp
+syn keyword txl_keyword contained string-extend string-lt stringp sub
+syn keyword txl_keyword contained sub-list sub-str sub-vec symacrolet
+syn keyword txl_keyword contained symbol-function symbol-name symbol-package symbol-value
+syn keyword txl_keyword contained symbolp symlink syslog tan
+syn keyword txl_keyword contained third throw throwf time
+syn keyword txl_keyword contained time-fields-local time-fields-utc time-string-local time-string-utc
+syn keyword txl_keyword contained time-usec tok-str tostring tostringp
+syn keyword txl_keyword contained tree-bind tree-case tree-find trim-str
+syn keyword txl_keyword contained trunc typeof unget-byte unget-char
+syn keyword txl_keyword contained unquote upcase-str update url-decode
+syn keyword txl_keyword contained url-encode usleep uw-protect vec
+syn keyword txl_keyword contained vec-push vec-set-length vecref vector
+syn keyword txl_keyword contained vector-list vectorp with-saved-vars zerop
syn match txr_error "@[\t ]*[*]\?[\t ]*."
syn match txr_nested_error "[^\t `]\+" contained