tarot code for viewing

rain 9e4ea8a0f6 new hand written parser 3 months ago
apps 9688c4aa38 0 3 months ago
build 9688c4aa38 0 3 months ago
compiler 9e4ea8a0f6 new hand written parser 3 months ago
qcode 9688c4aa38 0 3 months ago
scripts 9688c4aa38 0 3 months ago
test 9688c4aa38 0 3 months ago
vm 9688c4aa38 0 3 months ago
.gitignore 8300bc15fa code 3 months ago
README.txt 9688c4aa38 0 3 months ago
TODO.txt 9688c4aa38 0 3 months ago
standard-functions.scm 9688c4aa38 0 3 months ago

README.txt

environment variable TAROTPATH should be set to the folder that contains this text file.

$TAROTPATH/vm/vm
cd $TAROTPATH/vm ; make # to build it

$TAROTPATH/compiler
is the source code of the compiler and standard library

$TAROTPATH/qcode-1
all of the standard library .q files.

$TAROTPATH/qcode-2
loaded next, contains parser.q and compiler.q

$TAROTPATH/qcode
build scripts

$TAROTPATH/build
temporary build products

## Test Directory Structure
test/
src/ contains Scheme source code to tests
run/ contains compiled qcode files
out/ contains the actual output of running the .q file
exp/ contains the expected output of running the .q file

## PITFALLS

the load order of .q files is important
if a global is used before it is defined (as opposed to just referred to in a lambda) the value will be #f
aliases like (define foo bar) may have to be eta-expanded if load order is unlucky