Core GSPC abstract machine implementation for Global Script

root

This is a project to build a family of pure-functional languages.

The general idea is to do everything the right way, not the popular way.
This is more work (a lot more work!), but this project is just for fun / exploration.

All the code here uses the environment variable $GLOBALSCRIPT to find the path to this directory,
so make sure that's pointing at the right place to run the code.

Before setting this up, you need to:

1. Install https://9fans.github.io/plan9port/ somewhere, and make sure the PLAN9 environment variable points there;
2. Set the $GLOBALSCRIPT_REPO environment variable to a convenient directory on your system; and
3. Install https://hub.darcs.net/jcast/globalscript-spec in $GLOBALSCRIPT_REPO/gs-spec.tar.gz.

If anything has to be compromised, the most important things to keep are:

1. Functional purity all the way down, even at run time
   (make a run-time distinction between thunks that represent pure expressions
   and closures that represent I/O code).
2. Extensibility all the way down;
   make it easy for third parties to write their own languages as part of this.

This is *alpha quality* software.
It works for me on my machine; it hasn't been tested on anything else.
Use at your own risk.