Updated readme.
[scheme.forth.jl.git] / README.md
index 52b4b6f..7f18e76 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,11 +8,13 @@ life as a fairly direct port of Peter Micheaux's [Bootstrap
 Scheme](https://github.com/petermichaux/bootstrap-scheme) (as described in
 [this wonderful series of blog
 posts](http://peter.michaux.ca/articles/scheme-from-scratch-introduction)) from
-C to forth, but also includes variadic compound function support, mark-sweep
-garbage collection, quasiquotation, and a basic (non-hygienic) macro
-system.
+C to forth, but also includes pre-evaluation syntactic analysis, variadic
+compound function support, mark-sweep garbage collection, quasiquotation, a
+basic (non-hygienic) macro system and first-class continuations via
+`call-with-current-continuation`.
 
-In future, I plan to also implement a more complete numerical tower to bring it closer to
+In future, I plan to also implement reified continuations and a more
+complete numerical tower to bring it closer to
 [R5RS](http://www.schemers.org/Documents/Standards/R5RS/).
 
 The goal is for the interpreter to be complete enough to be used to complete
@@ -21,9 +23,9 @@ the majority of the exercises found in [SICP](http://sarabander.github.io/sicp/)
 Running the interpreter
 =======================
 
-To run this Scheme interpreter, first open Julia from the src directory contained
-in this repository.  If you've not done so already, install forth.jl using the
-following command:
+To run this Scheme interpreter, first open Julia (**version >=0.6**) from the src
+directory contained in this repository.  If you've not done so already, install
+forth.jl using the following command:
 
     julia> Pkg.clone("https://github.com/tgvaughan/forth.jl")
 
@@ -75,8 +77,15 @@ You'll then be greeted by the following prompt:
     ;; M-Eval input:
 
 At this point you can start entering Scheme commands... but be prepared to wait
-a _long_ time for the result.  For instance, the following example from SICP
-defines and demonstrates a recursive list append procedure:
+a while for each result.  After all, when evaluating commands in the MCE you are
+running a program in a Scheme interpreter running inside another Scheme
+interpreter which is itself running on a Forth system that is implemented atop
+a virtual register machine running in the Julia numerical computing
+environment.  **That's four levels of abstraction more than a native Julia
+program experiences**, so some delay is to be expected!
+
+For instance, the following example from SICP defines and demonstrates a
+recursive list append procedure:
 
     (define (append x y)
        (if (null? x)
@@ -93,10 +102,7 @@ defines and demonstrates a recursive list append procedure:
      ;;; M-Eval value:
      (a b c d e f)
 
-Be prepared to wait 20 min or more for the final result to be printed.  (Given
-that at this point we have a program running in a Scheme interpreter running
-inside another Scheme interpreter which is itself running on a Forth system
-that is implemented in Julia, this should not be a surprise.)
+You may have to wait a minute or so for the final result to be printed.
 
 License
 =======