summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-02-27 21:21:33 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-02-27 21:21:33 -0800
commit200ce0286922a5cb3ebc1b13744bb1e5d3f4b0d9 (patch)
treeaabf8ffce76cda9e3ca3885bd645f9549a466164
parentfa7f323c2bdbcd307bf16b09cf635cf8e10d412b (diff)
downloadtxr-200ce0286922a5cb3ebc1b13744bb1e5d3f4b0d9.tar.gz
txr-200ce0286922a5cb3ebc1b13744bb1e5d3f4b0d9.tar.bz2
txr-200ce0286922a5cb3ebc1b13744bb1e5d3f4b0d9.zip
Version 82.txr-82
-rw-r--r--ChangeLog14
-rw-r--r--RELNOTES32
-rwxr-xr-xconfigure2
-rw-r--r--txr.122
-rw-r--r--txr.c2
-rw-r--r--txr.vim216
6 files changed, 174 insertions, 114 deletions
diff --git a/ChangeLog b/ChangeLog
index eaec4a4f..a6833ca4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2014-02-26 Kaz Kylheku <kaz@kylheku.com>
+
+ Version 82
+
+ * txr.c (version): Bumped.
+
+ * txr.1: Bumped version, set date, improved the documentation
+ for the copy function and copy-list, and fixed the
+ an instance where the delay macro was called a function.
+
+ * configure (txr_ver): Bumped.
+
+ * RELNOTES, txr.vim: Updated.
+
2014-02-27 Kaz Kylheku <kaz@kylheku.com>
* txr.1: Typos, grammar and formatting fixes mailed in
diff --git a/RELNOTES b/RELNOTES
index 68e00550..f6c396f1 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,35 @@
+ TXR 82
+ 2014-02-27
+
+
+ Features
+
+ - Intuitive behavior in various sequence processing in the library:
+ don't try to output a string if the resulting items are not characters,
+ and then fail; make a list.
+
+ - All operators that were implemented as special code expanding hacks
+ in the TXR Lisp code walker are have been converted to intrinsic
+ macros. Only a few bona-fide special forms are subject to minor
+ code transformations.
+
+ - New generation macro called "gun". (gun (read-line stream))
+ produces a lazy list of lines from a stream. gun, which stands
+ for "generate until nil", evaluates the enclosed expression while that
+ expression produces non-nil values, and makes a lazy list out of them.
+
+ - New function copy, for copying sequences.
+
+ - Documentation improvements thanks to Roman Mishin.
+
+ Bugs
+
+ - Regression fix: error thrown on valid floating point constants.
+
+ - Doc bugs: documentation was missing for the delay operator
+ and the length function.
+
+
TXR 81
2014-02-25
diff --git a/configure b/configure
index b727aac6..63ce7f17 100755
--- a/configure
+++ b/configure
@@ -387,7 +387,7 @@ fi
#
-txr_ver=81
+txr_ver=82
#
# The all important banner.
diff --git a/txr.1 b/txr.1
index b567a7ed..ef44288c 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-25 "Utility Commands" "TXR Text Processing Language" "Kaz Kylheku"
+.TH "TXR" 1 2014-02-27 "Utility Commands" "TXR Text Processing Language" "Kaz Kylheku"
.SH NAME
-txr \- text processing language (version 81)
+txr \- text processing language (version 82)
.SH SYNOPSIS
.B txr [ options ] query-file { data-file }*
.sp
@@ -6915,7 +6915,11 @@ If <list> is an atom, it is simply returned.
Otherwise, <list> is a cons cell, and copy-list returns
(cons (car <list>) (copy-list (cdr <list>))) except that recursion
-is not used.
+is not necessarily used.
+
+Note that the object (car <list>) is not deeply copied, but only
+propagated by reference into the new list. copy-list produces
+a new list structure out of the same items that are in <list>.
.TP
Dialect Note:
@@ -8109,7 +8113,7 @@ Syntax:
.TP
Description:
-The force function accepts a promise object produced by the delay function.
+The force function accepts a promise object produced by the delay macro.
The first time force is invoked <promise>, the promise expression
is evaluated (in its original lexical environment, regardless of where
in the program the force call takes place). The value of the expression is
@@ -9385,6 +9389,16 @@ returns nil. If <sequence> is a list, it returns (copy-list <sequence>);
if <sequence> is a string, it returns (copy-str <sequence>); and
if <sequence> is a vector, it returns (copy-vec <sequence>).
+Except in the case when <sequence> is nil, copy returns a value that
+is distinct from (not eq to) <sequence>. This is different from
+the behavior of [<sequence> 0..t] or (sub <sequence> 0 t), which recognize
+that they need not make a copy of <sequence>, and just return it.
+
+Note however, that the elements of the returned sequence may be
+eq to elements of the original sequence. In other words, copy is
+a deeper copy than just duplicating the <sequence> value itself,
+but it is not a deep copy.
+
.SS Function sub
.TP
diff --git a/txr.c b/txr.c
index 56ab6340..9a3c79f7 100644
--- a/txr.c
+++ b/txr.c
@@ -47,7 +47,7 @@
#include "eval.h"
#include "txr.h"
-const wchli_t *version = wli("81");
+const wchli_t *version = wli("82");
const wchar_t *progname = L"txr";
val self_path, prog_args_full, prog_args;
diff --git a/txr.vim b/txr.vim
index 0335ef9a..d3005786 100644
--- a/txr.vim
+++ b/txr.vim
@@ -55,114 +55,114 @@ 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 delay
-syn keyword txl_keyword contained delete-package do dohash downcase-str
-syn keyword txl_keyword contained dwim each each* env
-syn keyword txl_keyword contained env-hash eq eql equal
-syn keyword txl_keyword contained errno error eval evenp
-syn keyword txl_keyword contained exit exp expand expt
-syn keyword txl_keyword contained exptmod fboundp fifth find
-syn keyword txl_keyword contained find-if find-package first fixnump
-syn keyword txl_keyword contained flatten flatten* flip flo-int
-syn keyword txl_keyword contained flo-str floatp floor flush-stream
-syn keyword txl_keyword contained for for* force format
-syn keyword txl_keyword contained fourth fun func-get-env func-get-form
-syn keyword txl_keyword contained func-set-env functionp gcd gen
-syn keyword txl_keyword contained generate gensym get-byte get-char
-syn keyword txl_keyword contained get-hash-userdata get-line get-list-from-stream get-sig-handler
-syn keyword txl_keyword contained get-string-from-stream gethash group-by gun
-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* link lisp-parse list
-syn keyword txl_keyword contained list* list-str list-vector listp
-syn keyword txl_keyword contained log log-alert log-auth log-authpriv
-syn keyword txl_keyword contained log-cons log-crit log-daemon log-debug
-syn keyword txl_keyword contained log-emerg log-err log-info log-ndelay
-syn keyword txl_keyword contained log-notice log-nowait log-odelay log-perror
-syn keyword txl_keyword contained log-pid log-user log-warning 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-hash make-lazy-cons make-package make-random-state
-syn keyword txl_keyword contained make-similar-hash make-string-byte-input-stream make-string-input-stream make-string-output-stream
-syn keyword txl_keyword contained make-strlist-output-stream make-sym make-time make-time-utc
-syn keyword txl_keyword contained makedev mapcar mapcar* 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 memq memql memqual
-syn keyword txl_keyword contained merge min minor mkdir
-syn keyword txl_keyword contained mknod mkstring mod multi-sort
-syn keyword txl_keyword contained n-choose-k n-perm-k none not
-syn keyword txl_keyword contained nreverse null num-chr num-str
-syn keyword txl_keyword contained numberp oddp op open-command
-syn keyword txl_keyword contained open-directory open-file open-pipe open-process
-syn keyword txl_keyword contained open-tail openlog or orf
-syn keyword txl_keyword contained packagep perm pop pos
-syn keyword txl_keyword contained pos-if posq posql posqual
-syn keyword txl_keyword contained pprinl pprint prinl print
-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-string pwd qquote
-syn keyword txl_keyword contained quasi quote rand random
-syn keyword txl_keyword contained random-fixnum random-state-p range range*
-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 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-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-regex search-str search-str-tree second
-syn keyword txl_keyword contained seek-stream set set-diff set-hash-userdata
-syn keyword txl_keyword contained set-sig-handler sethash setlogmask 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
-syn keyword txl_keyword contained sig-lost sig-pipe sig-poll sig-prof
-syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
-syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
-syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
-syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
-syn keyword txl_keyword contained sig-xcpu sig-xfsz sin sixth
-syn keyword txl_keyword contained size-vec some sort source-loc
-syn keyword txl_keyword contained source-loc-str span-str splice split-str
-syn keyword txl_keyword contained split-str-set sqrt stat stream-get-prop
-syn keyword txl_keyword contained stream-set-prop streamp string-cmp string-extend
-syn keyword txl_keyword contained string-lt stringp sub sub-list
-syn keyword txl_keyword contained sub-str sub-vec symacrolet symbol-function
-syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
-syn keyword txl_keyword contained symlink syslog tan third
-syn keyword txl_keyword contained throw throwf time time-fields-local
-syn keyword txl_keyword contained time-fields-utc time-string-local time-string-utc time-usec
-syn keyword txl_keyword contained tok-str tostring tostringp tree-bind
-syn keyword txl_keyword contained tree-case tree-find trim-str trunc
-syn keyword txl_keyword contained typeof unget-byte unget-char unquote
-syn keyword txl_keyword contained upcase-str update url-decode url-encode
-syn keyword txl_keyword contained usleep uw-protect vec vec-push
-syn keyword txl_keyword contained vec-set-length vecref vector vector-list
-syn keyword txl_keyword contained vectorp with-saved-vars zerop
+syn keyword txl_keyword contained copy copy-alist copy-cons copy-hash
+syn keyword txl_keyword contained copy-list copy-str copy-vec cos
+syn keyword txl_keyword contained count-if countq countql countqual
+syn keyword txl_keyword contained cum-norm-dist daemon dec defmacro
+syn keyword txl_keyword contained defsymacro defun defvar del
+syn keyword txl_keyword contained delay delete-package do dohash
+syn keyword txl_keyword contained downcase-str dwim each each*
+syn keyword txl_keyword contained env env-hash eq eql
+syn keyword txl_keyword contained equal errno error eval
+syn keyword txl_keyword contained evenp exit exp expand
+syn keyword txl_keyword contained expt exptmod fboundp fifth
+syn keyword txl_keyword contained find find-if find-package first
+syn keyword txl_keyword contained fixnump flatten flatten* flip
+syn keyword txl_keyword contained flo-int flo-str floatp floor
+syn keyword txl_keyword contained flush-stream for for* force
+syn keyword txl_keyword contained format fourth fun func-get-env
+syn keyword txl_keyword contained func-get-form func-set-env functionp gcd
+syn keyword txl_keyword contained gen 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 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 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 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 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