summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-01-23 07:25:57 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-01-23 07:25:57 -0800
commit094df64b6c3362f01f44d108f0d5fa4c102341b8 (patch)
tree440f5557241aaf136de375b988a0845648c0a7d1
parentb1685e72fab5291ef2755d1e89ca729c05dc443e (diff)
downloadtxr-094df64b6c3362f01f44d108f0d5fa4c102341b8.tar.gz
txr-094df64b6c3362f01f44d108f0d5fa4c102341b8.tar.bz2
txr-094df64b6c3362f01f44d108f0d5fa4c102341b8.zip
Version 76txr-76
-rw-r--r--ChangeLog14
-rw-r--r--RELNOTES35
-rwxr-xr-xconfigure2
-rw-r--r--dep.mk2
-rw-r--r--genvim.txr1
-rw-r--r--txr.14
-rw-r--r--txr.c2
-rw-r--r--txr.vim176
8 files changed, 144 insertions, 92 deletions
diff --git a/ChangeLog b/ChangeLog
index 508a3a4a..377bcff9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2014-01-23 Kaz Kylheku <kaz@kylheku.com>
+ Version 76
+
+ * txr.c (version): Bumped.
+
+ * txr.1: Bumped version and set date.
+
+ * configure (txr_ver): Bumped.
+
+ * RELNOTES, txr.vim, dep.mk: Updated.
+
+ * genvim.txr: Add missing op and do.
+
+2014-01-23 Kaz Kylheku <kaz@kylheku.com>
+
* eval.c (expand_op): Takes sym argument to distinguish op and do.
The dwim operator is deleted when the symbol is do.
(expand): Expand do_s form with expand_op, not only op_s. Pass down
diff --git a/RELNOTES b/RELNOTES
index f7ff3a35..55da3f05 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,38 @@
+ TXR 76
+ 2014-01-23
+
+
+ Features
+
+ - New time functions: time-fields-local and time-fields-utc for obtaining
+ broken-down time from Epoch seconds.
+
+ - New group-by function for constructing a hash from a list when the
+ list elements can be partitioned into equivalence classes tied to keys,
+ rather than treated individually.
+
+ - Sweeping changes in TXR List to allow vectors and strings to be manipulated
+ in many situations as if they were lists. Functions like car, cdr and
+ mapcar work on strings and vectors.
+
+ - New command line options -e and -p for evaluating TXR Lisp expressions
+ more conveniently from the command line.
+
+ - The and, or and if special operators are now also provided as functions,
+ so they can be indirected upon functionally.
+
+ - New functions conses and conses*, useful for iterating over a list
+ similarly to Common Lisp's maplist function.
+
+ - New do operator (unrelated to @(do) directive) similar to op, but
+ geared toward doing imperative things involving special operators.
+
+ Bugs
+
+ - @(require ...) directive was not expanding its forms prior to evaluation.
+
+
+
TXR 75
2014-01-16
diff --git a/configure b/configure
index 8f0bf7c4..ac6f38ac 100755
--- a/configure
+++ b/configure
@@ -387,7 +387,7 @@ fi
#
-txr_ver=75
+txr_ver=76
#
# The all important banner.
diff --git a/dep.mk b/dep.mk
index 50e6ee78..27bc8311 100644
--- a/dep.mk
+++ b/dep.mk
@@ -1,4 +1,4 @@
-./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)/./txr.h
+./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
./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
diff --git a/genvim.txr b/genvim.txr
index a9791c1a..2d9e7f62 100644
--- a/genvim.txr
+++ b/genvim.txr
@@ -36,6 +36,7 @@ void eval_init(void)
@(do (set [txr-sym 0..0] '("rep" "end" "and" "or"
"catch" "finally"
"until" "last")))
+@(do (set [txl-sym 0..0] '("do" "op")))@# Doo...wop! :)
@(set (txr-sym txl-sym) (@(sortuniq txr-sym) @(sortuniq txl-sym)))
@(output)
" VIM Syntax file for txr
diff --git a/txr.1 b/txr.1
index 3430bd6a..f3b8696c 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-01-16 "Utility Commands" "Txr Text Processing Language" "Kaz Kylheku"
+.TH "TXR" 1 2014-01-23 "Utility Commands" "Txr Text Processing Language" "Kaz Kylheku"
.SH NAME
-txr \- text processing language (version 75)
+txr \- text processing language (version 76)
.SH SYNOPSIS
.B txr [ options ] query-file { data-file }*
.sp
diff --git a/txr.c b/txr.c
index b1aca2e7..3dd8ec77 100644
--- a/txr.c
+++ b/txr.c
@@ -47,7 +47,7 @@
#include "eval.h"
#include "txr.h"
-const wchli_t *version = wli("75");
+const wchli_t *version = wli("76");
const wchar_t *progname = L"txr";
val self_path;
diff --git a/txr.vim b/txr.vim
index b18a0ea2..a0f7137c 100644
--- a/txr.vim
+++ b/txr.vim
@@ -53,95 +53,97 @@ 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* compl-span-str cond cons
-syn keyword txl_keyword contained consp 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 defun
-syn keyword txl_keyword contained defvar del delete-package dohash
-syn keyword txl_keyword contained downcase-str dwim each each*
-syn keyword txl_keyword contained eq eql equal errno
-syn keyword txl_keyword contained error eval evenp exit
-syn keyword txl_keyword contained exp 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 functionp gcd
+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 defun defvar del
+syn keyword txl_keyword contained delete-package do dohash downcase-str
+syn keyword txl_keyword contained dwim each each* eq
+syn keyword txl_keyword contained eql equal errno error
+syn keyword txl_keyword contained eval evenp exit exp
+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 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 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-values hashp identity
-syn keyword txl_keyword contained if iff iffi inc
-syn keyword txl_keyword contained int-flo int-str integerp intern
-syn keyword txl_keyword contained interp-fun-p isqrt keep-if keep-if*
-syn keyword txl_keyword contained keywordp lambda 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 lcons-fun ldiff length length-list
-syn keyword txl_keyword contained length-str length-str-< length-str-<= length-str->
-syn keyword txl_keyword contained length-str->= length-vec let let*
-syn keyword txl_keyword contained lisp-parse 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 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 maphash mappend mappend* mask
-syn keyword txl_keyword contained match-fun match-regex match-str match-str-tree
-syn keyword txl_keyword contained max memq memql memqual
-syn keyword txl_keyword contained merge min 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 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 pop pprint 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 qquote quasi
-syn keyword txl_keyword contained quote rand random random-fixnum
-syn keyword txl_keyword contained random-state-p range range* read
-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* remq remq* remql
-syn keyword txl_keyword contained remql* remqual remqual* repeat
-syn keyword txl_keyword contained replace replace-list replace-str replace-vec
-syn keyword txl_keyword contained rest return return-from reverse
-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-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 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-string-local time-string-utc time-usec
+syn keyword txl_keyword contained get-string-from-stream gethash group-by hash
+syn keyword txl_keyword contained hash-alist hash-construct hash-count hash-diff
+syn keyword txl_keyword contained hash-eql hash-equal hash-isec hash-keys
+syn keyword txl_keyword contained hash-pairs hash-uni hash-values hashp
+syn keyword txl_keyword contained identity if iff iffi
+syn keyword txl_keyword contained inc 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-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 logand logior lognot
+syn keyword txl_keyword contained logtest logtrunc logxor make-hash
+syn keyword txl_keyword contained make-lazy-cons make-package make-random-state make-similar-hash
+syn keyword txl_keyword contained make-string-byte-input-stream make-string-input-stream make-string-output-stream make-strlist-output-stream
+syn keyword txl_keyword contained make-sym make-time make-time-utc mapcar
+syn keyword txl_keyword contained mapcar* maphash mappend mappend*
+syn keyword txl_keyword contained mask match-fun match-regex 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 pop
+syn keyword txl_keyword contained pprint 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 qquote quasi quote rand
+syn keyword txl_keyword contained random random-fixnum random-state-p range
+syn keyword txl_keyword contained range* read real-time-stream-p reduce-left
+syn keyword txl_keyword contained reduce-right ref refset regex-compile
+syn keyword txl_keyword contained regex-parse regexp regsub rehome-sym
+syn keyword txl_keyword contained remhash remove-if remove-if* remq
+syn keyword txl_keyword contained remq* remql remql* remqual
+syn keyword txl_keyword contained remqual* repeat replace replace-list
+syn keyword txl_keyword contained replace-str replace-vec rest return
+syn keyword txl_keyword contained return-from reverse rplaca rplacd
+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-irgrp
+syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
+syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
+syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
+syn keyword txl_keyword contained s-ixoth s-ixusr search-regex search-str
+syn keyword txl_keyword contained search-str-tree second seek-stream set
+syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler sethash
+syn keyword txl_keyword contained setlogmask sig-abrt sig-alrm sig-bus
+syn keyword txl_keyword contained sig-check sig-chld sig-cont sig-fpe
+syn keyword txl_keyword contained sig-hup sig-ill sig-int sig-io
+syn keyword txl_keyword contained sig-iot sig-kill sig-lost sig-pipe
+syn keyword txl_keyword contained sig-poll sig-prof sig-pwr sig-quit
+syn keyword txl_keyword contained sig-segv sig-stkflt sig-stop sig-sys
+syn keyword txl_keyword contained sig-term sig-trap sig-tstp sig-ttin
+syn keyword txl_keyword contained sig-ttou sig-urg sig-usr1 sig-usr2
+syn keyword txl_keyword contained sig-vtalrm sig-winch sig-xcpu sig-xfsz
+syn keyword txl_keyword contained sin sixth size-vec some
+syn keyword txl_keyword contained sort source-loc source-loc-str span-str
+syn keyword txl_keyword contained splice split-str split-str-set sqrt
+syn keyword txl_keyword contained stat stream-get-prop stream-set-prop streamp
+syn keyword txl_keyword contained string-cmp string-extend string-lt stringp
+syn keyword txl_keyword contained sub sub-list sub-str sub-vec
+syn keyword txl_keyword contained symbol-function symbol-name symbol-package symbol-value
+syn keyword txl_keyword contained symbolp 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-find
syn keyword txl_keyword contained trim-str trunc typeof unget-byte
syn keyword txl_keyword contained unget-char unquote upcase-str url-decode