summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--RELNOTES62
-rwxr-xr-xconfigure2
-rw-r--r--eval.c2
-rw-r--r--rand.c2
-rw-r--r--rand.h2
-rw-r--r--txr.14
-rw-r--r--txr.c2
8 files changed, 88 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 9e2e1661..42165e0c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
2012-02-25 Kaz Kylheku <kaz@kylheku.com>
+ Version 58
+
+ * txr.c (version): Bumped.
+
+ * txr.1: Bumped version and set date.
+
+ * configure (txr_ver): Bumped.
+
+ * RELNOTES: Updated.
+
+ * eval.c (eval_init): Updated.
+
+ * rand.c (rand): Function renamed to rnd due to a clash with
+ standard C library (that does not show up when compiling as C++).
+
+ * rand.h (rand): Declaration renamed to rnd.
+
+2012-02-25 Kaz Kylheku <kaz@kylheku.com>
+
* parser.l (source_loc_str): Missing function re-written.
(Accidentally originally written in lex.yy.c file!)
(parse_reset): If file can't be opened, try adding .txr suffix
diff --git a/RELNOTES b/RELNOTES
index 6a57b0c7..a4ff6507 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,65 @@
+ TXR 58
+ 2011-02-25
+
+
+ Features
+
+ - Exception handling exposed in TXR Lisp.
+
+ - range* function similar to range, but for generating a range with the
+ endpoint excluded.
+
+ - TXR Lisp can invoke a function in the pattern language now using
+ the new match-fun function.
+
+ - Braced variable syntax in @(output) extended to support arbitrary
+ expressions in place of the variable name. The expressions are converted
+ to text and then treated the same way as a variable substitution.
+ Indexing is allowed, and field-formatting takes place.
+ Moreover, these expressions are code-walked by @(repeat) and @(rep) to look
+ for embedded variables.
+
+ - New TXR Lisp functions ref, refset, sub and replace.
+
+ - Indexing and range extraction in brace substitution in @(output) clauses is
+ now generic over lists, vectors and strings.
+
+ - Optional arguments introduced into TXR Lisp, in defun and lambdas,
+ with a simple syntax involving a colon. Numerous intrinsic functions
+ have been converted such that some previously required arguments
+ are now optional.
+
+ - Sort function that was previously for lists only is now generic over
+ vectors and strings.
+
+ - New del operator in TXR Lisp can delete elements of sequences or hashes
+ which are denoted using the bracket syntax.
+
+ - Range indexing has "floating zero" behavior now so that for
+ example [seq -2 0] means the "last two elements": when the start of
+ the range is negative, then a zero end is treated as length plus one.
+
+ - TXR programs can now be split into multiple modules, using the load
+ directive to load and run code.
+
+ Bugs
+
+ - range function terminates lazy list when the sequence overshoots
+ the final value.
+
+ - Variable that holds nil is treated as a list in (set [var x..y] ...)
+ range assignment.
+
+ - Vestigial (t . obj) representation in exception handling code removed.
+
+ - TXR now does not not dump bindings if any output occured on a stream
+ connected to the C stdout stream. Previously, it suppressed printing
+ of bindings if @(output) was carried out on the *std-output* stream.
+
+ - Function remhash was found to be buggy and rewritten.
+
+
+
TXR 57
2011-02-14
diff --git a/configure b/configure
index 8bcb254b..e46f1518 100755
--- a/configure
+++ b/configure
@@ -357,7 +357,7 @@ fi
#
-txr_ver=57
+txr_ver=58
#
# The all important banner.
diff --git a/eval.c b/eval.c
index fe385826..9347b708 100644
--- a/eval.c
+++ b/eval.c
@@ -2307,7 +2307,7 @@ void eval_init(void)
reg_fun(intern(lit("random-state-p"), user_package), func_n1(random_state_p));
reg_fun(intern(lit("random-fixnum"), user_package), func_n1(random_fixnum));
reg_fun(intern(lit("random"), user_package), func_n2(random));
- reg_fun(intern(lit("rand"), user_package), func_n2o(rand, 1));
+ reg_fun(intern(lit("rand"), user_package), func_n2o(rnd, 1));
reg_fun(intern(lit("range"), user_package), func_n0v(rangev));
reg_fun(intern(lit("range*"), user_package), func_n0v(range_star_v));
diff --git a/rand.c b/rand.c
index ca78c8ad..30708ab7 100644
--- a/rand.c
+++ b/rand.c
@@ -241,7 +241,7 @@ invalid:
modulus, nao);
}
-val rand(val modulus, val state)
+val rnd(val modulus, val state)
{
return random(state, modulus);
}
diff --git a/rand.h b/rand.h
index 9ff55396..2a1f164b 100644
--- a/rand.h
+++ b/rand.h
@@ -30,5 +30,5 @@ val make_random_state(val seed);
val random_state_p(val obj);
val random_fixnum(val state);
val random(val state, val modulus);
-val rand(val modulus, val state);
+val rnd(val modulus, val state);
void rand_init(void);
diff --git a/txr.1 b/txr.1
index aa290163..7adeee9b 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 2012-02-14 "Utility Commands" "Txr Text Processing Language" "Kaz Kylheku"
+.TH "TXR" 1 2012-02-25 "Utility Commands" "Txr Text Processing Language" "Kaz Kylheku"
.SH NAME
-txr \- text processing language (version 57)
+txr \- text processing language (version 58)
.SH SYNOPSIS
.B txr [ options ] query-file { data-file }*
.sp
diff --git a/txr.c b/txr.c
index 2c7080f6..82308db0 100644
--- a/txr.c
+++ b/txr.c
@@ -43,7 +43,7 @@
#include "debug.h"
#include "txr.h"
-const wchli_t *version = wli("57");
+const wchli_t *version = wli("58");
const wchar_t *progname = L"txr";
const wchar_t *spec_file = L"stdin";