-The reference implementation of Pixley, `pixley.pix`, is written in 122
-lines of Pixley (or, if you prefer, 122 lines of Scheme; and if you prefer
-more Scheme-ly metrics, it consists of 405 instances of 53 unique symbols
+The reference implementation of Pixley, `pixley.pix`, is written in 124
+lines of Pixley (or, if you prefer, 124 lines of Scheme; and if you prefer
+more Scheme-ly metrics, it consists of 413 instances of 54 unique symbols
`pixley.pix` does not include a lexical processor: the Pixley program to
be interpreted must be made available to the interpreter as a native
* A few other standalone Pixley examples, including `reverse.pix`,
which reverses the given list.
+### Pixley 2.0 revision 2012.02xx ###
+While there were no changes to the language in revision 2012.02xx, this is
+a fairly major revision to the Pixley distribution, so let's list what's
+* The Bourne shell scripts `pixley.sh` and `scheme.sh` were replaced by a
+ single script `tower.sh`. The idea behind this script is that it lets
+ you constuct a "tower of interpreters" from a sequence of text files
+ which contain S-expressions. The first such S-expression is interpreted
+ as Scheme, and may evaluate to a function value; the second such will be
+ interpreted by that function, and may evaluate to another function value,
+ and so forth, until there is an S-expression that evaluates to something
+ besides a function value (and that result will be printed to standard
+ output and `tower.sh` will terminate.)
+* `tower.sh` officially supports three implementations of Scheme that can
+ be used as the base interpreter: `plt-r5rs` from the Racket distribution,
+ `tinyscheme`, and `miniscm` version 0.85p1 (from our fork of the project
+ on GitHub.) Support for Scheme implementations is (more or less)
+ capability-based, so adding support for other implementations should not
+ be difficult (especially if they are similar to the three already
+* The test suite was put into Falderal 0.6 format and now uses `tower.sh`
+ to run each test case. By default, it uses `plt-r5rs`, but can be told
+ to use any of the Scheme implementations that `tower.sh` supports.
+ (Note: there is currently a failure when running one of the tests on a
+ Pixley interpreter on a Pixley interpreter on `miniscm` that I have yet
+* To match the expectations of `tower.sh`, the Pixley self-interpreter was
+ refactored to evaluate to a function value of one argument. It was also
+ simplified slightly, removing an unnecessary nested `cond`.
+* Various dialects of Pixley have been defined and described, and collected
+ in the `dialect` directory of the distribution. The dialects include
+ Pifxley, which supports an `if` construct instead of `cond`; there is a
+ Pixley interpreter written in Pifxley, and a Pifxley self-interpreter.
+ There is also a dialect called Crabwell which allows values to be bound
+ to, not just symbols, but arbitrary S-expressions.
+* A bug (a missing case) was fixed in the P-Normalizer.
+* The main Pixley documentation (what you're reading now) was converted
+* Source code in the Pixley distribution was placed under a BSD-style
Keep Smiling! (I could never stand those "Home Sweet Home" folks.)