OSDN Git Service

README for Chicken Scheme.
authorsforman <sforman@hushmail.com>
Sun, 20 Aug 2023 17:24:29 +0000 (10:24 -0700)
committersforman <sforman@hushmail.com>
Sun, 20 Aug 2023 17:24:29 +0000 (10:24 -0700)
implementations/scheme-chicken/README.md [new file with mode: 0644]

diff --git a/implementations/scheme-chicken/README.md b/implementations/scheme-chicken/README.md
new file mode 100644 (file)
index 0000000..c2b9c6a
--- /dev/null
@@ -0,0 +1,29 @@
+# Thun
+
+This version is written in [Chicken Scheme](http://www.call-cc.org/).
+This is my first Scheme code (first Lisp code, for that matter) so
+there's probably a lot of non-idomatic stuff, but it seems to work.
+
+It doesn't do the error messages yet.  Scheme code for list manipulation
+is so elegant that it's kind of a shame to make clunky versions just to
+customize the error messages.  But if I don't then this interpreter won't
+conform to the test suite (as it exists as of this writing.)
+
+
+I like Scheme.  It seems like an excellent target language for compiling
+Joy code, which can then, of course, be compiled to C and thence to
+machine code.  I don't know why I didn't try it sooner.
+
+
+## Build
+
+Build with `make` to generate a `joy` binary.
+
+The `defs.txt` file is converted into a `defs.scm` Scheme source file by
+a little utility script `generate_defs.scm`, and then that is included in
+the main `joy.scm` compilation using the `-prologue` option of the `csc`
+Chicken Scheme compiler.  It's a little clunky, but it seems to work.
+Definitions are stored as string literals and converted to Joy
+expressions during start up of the compiled binary. It would be nice to
+push the conversion and even the entry into the hashtable into compile
+time.