Updated README to fix #1 address software location updates.
Thanks to @barak for pointing out that there was a Scheme to C compiler with a very similar name that predated my little sample compiler. The original Scheme->C compiler started at HP back in 1989 and is currently maintained by @barak. README.md A lot has happened since I originally wrote this little compiler. Amongst other things, Chez Scheme has been open sourced, and the nanopass framework has been moved under its own project team page and ported to Racket. I've updated the links in the README to reflect this. README.md
This commit is contained in:
parent
91d15c78eb
commit
56bb1d2b35
64
README.md
64
README.md
|
@ -10,11 +10,18 @@ There is still much to be done. More tests are needed and a few passes are
|
||||||
still not documented, and I still have not tested the boehm collector, though
|
still not documented, and I still have not tested the boehm collector, though
|
||||||
I hope to do so soon.
|
I hope to do so soon.
|
||||||
|
|
||||||
|
Bartlett's Scheme->C
|
||||||
|
=====================
|
||||||
|
This should not be confused with Bartlett's Fabled Scheme->C compiler,
|
||||||
|
available at http://scheme2c.alioth.debian.org/, with a clone of the source
|
||||||
|
repository at https://github.com/barak/scheme2c/. (Nod to @barak for pointing
|
||||||
|
this out!)
|
||||||
|
|
||||||
Required Libraries
|
Required Libraries
|
||||||
===================
|
===================
|
||||||
There are two required git repositories to run this compiler. This repository
|
There are two required git repositories to run this compiler. This repository
|
||||||
(of course), and the nanopass framework repository at
|
(of course), and the nanopass framework repository at
|
||||||
github.com/akeep/nanopass-framework.
|
https://github.com/nanopass/nanopass-framework-scheme/.
|
||||||
|
|
||||||
You will also need one of the supported host compilers listed in the next
|
You will also need one of the supported host compilers listed in the next
|
||||||
section.
|
section.
|
||||||
|
@ -28,20 +35,19 @@ Framework in order to operate.
|
||||||
|
|
||||||
Getting Chez Scheme
|
Getting Chez Scheme
|
||||||
--------------------
|
--------------------
|
||||||
A free version of the Chez Scheme interpreter, Petite Chez Scheme, is
|
Chez Scheme is available at http://github.com/cisco/ChezScheme/ with
|
||||||
available for download on http://www.scheme.com/. Generally, it is easiest
|
documentaton at http://cisco.github.io/ChezScheme/.
|
||||||
to install the non-threaded version that is available for your machine, and
|
|
||||||
use the 64-bit version, if it is supported on your platform.
|
|
||||||
|
|
||||||
Running on Chez Scheme
|
Running on Chez Scheme
|
||||||
-----------------------
|
-----------------------
|
||||||
In the `scheme-to-c` directory start `petite` using the `--libdirs` command
|
In the `scheme-to-c` directory start `scheme` using the `--libdirs` command
|
||||||
line switch to tell `petite` where to find the `nanopass-framework` directory:
|
line switch to tell `scheme` where to find the `nanopass-framework-scheme`
|
||||||
|
directory:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ petite --libdirs .:<path to nanopass-framework>
|
$ scheme --libdirs .:<path to nanopass-framework-scheme>
|
||||||
Petite Chez Scheme Version 8.4
|
Chez Scheme Version 9.4.1
|
||||||
Copyright (c) 1985-2011 Cadence Research Systems
|
Copyright 1984-2016 Cisco Systems, Inc.
|
||||||
|
|
||||||
> (import (c))
|
> (import (c))
|
||||||
> (my-tiny-compile '(+ 4 5))
|
> (my-tiny-compile '(+ 4 5))
|
||||||
|
@ -51,9 +57,9 @@ Copyright (c) 1985-2011 Cadence Research Systems
|
||||||
You can run the tests as:
|
You can run the tests as:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ petite --libdirs .:<path to nanopass-framework>
|
$ scheme --libdirs .:<path to nanopass-framework-scheme>
|
||||||
Petite Chez Scheme Version 8.4
|
Chez Scheme Version 9.4.1
|
||||||
Copyright (c) 1985-2011 Cadence Research Systems
|
Copyright 1984-2016 Cisco Systems, Inc.
|
||||||
|
|
||||||
> (import (tests))
|
> (import (tests))
|
||||||
> (run-tests)
|
> (run-tests)
|
||||||
|
@ -79,17 +85,17 @@ the path to run `ikarus`.
|
||||||
|
|
||||||
Running on Ikarus
|
Running on Ikarus
|
||||||
------------------
|
------------------
|
||||||
When running on `ikarus` you will also need to add the `nanopass-framework`
|
When running on `ikarus` you will also need to add the
|
||||||
directory to the path in order to run the new compiler. This can be done with
|
`nanopass-framework-scheme` directory to the path in order to run the new
|
||||||
an environment variable, but I generally find it easier to do this on the
|
compiler. This can be done with an environment variable, but I generally find
|
||||||
`ikarus` REPL as follows:
|
it easier to do this on the `ikarus` REPL as follows:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ ikarus
|
$ ikarus
|
||||||
Ikarus Scheme version 0.0.4-rc1+, 64-bit (revision 1870, build 2013-10-16)
|
Ikarus Scheme version 0.0.4-rc1+, 64-bit (revision 1870, build 2013-10-16)
|
||||||
Copyright (c) 2006-2009 Abdulaziz Ghuloum
|
Copyright (c) 2006-2009 Abdulaziz Ghuloum
|
||||||
|
|
||||||
> (library-path (cons "../nanopass-framework" (library-path)))
|
> (library-path (cons "../nanopass-framework-scheme" (library-path)))
|
||||||
> (import (c))
|
> (import (c))
|
||||||
> (my-tiny-compiler '(+ 4 5))
|
> (my-tiny-compiler '(+ 4 5))
|
||||||
9
|
9
|
||||||
|
@ -102,7 +108,7 @@ $ ikarus
|
||||||
Ikarus Scheme version 0.0.4-rc1+, 64-bit (revision 1870, build 2013-10-16)
|
Ikarus Scheme version 0.0.4-rc1+, 64-bit (revision 1870, build 2013-10-16)
|
||||||
Copyright (c) 2006-2009 Abdulaziz Ghuloum
|
Copyright (c) 2006-2009 Abdulaziz Ghuloum
|
||||||
|
|
||||||
> (library-path (cons "../nanopass-framework" (library-path)))
|
> (library-path (cons "../nanopass-framework-scheme" (library-path)))
|
||||||
> (import (tests))
|
> (import (tests))
|
||||||
> (run-tests)
|
> (run-tests)
|
||||||
running test 0:
|
running test 0:
|
||||||
|
@ -127,15 +133,17 @@ shell out to run `gcc`.
|
||||||
Running on Vicare
|
Running on Vicare
|
||||||
------------------
|
------------------
|
||||||
Similar to Ikarus and Chez Scheme, Vicare also needs to be informed of where
|
Similar to Ikarus and Chez Scheme, Vicare also needs to be informed of where
|
||||||
to find the `nanopass-framework` directory. Vicare also needs to be told to
|
to find the `nanopass-framework-scheme` directory. Vicare also needs to be
|
||||||
look for additional Scheme file extensions, since I am using `.ss` instead of
|
told to look for additional Scheme file extensions, since I am using `.ss`
|
||||||
the more recently introduced `.sls` for R6RS Scheme libraries. Here we can
|
instead of the more recently introduced `.sls` for R6RS Scheme libraries. Here
|
||||||
use the `--more-file-extensions` and two calls to the `--search-path` command
|
we can use the `--more-file-extensions` and two calls to the `--search-path`
|
||||||
line flag, one to search in the `nanopass-framework` directory and one in the
|
command line flag, one to search in the `nanopass-framework-scheme` directory
|
||||||
current directory, `.`, which is otherwise not included.
|
and one in the current directory, `.`, which is otherwise not included.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ vicare --more-file-extensions --search-path ../nanopass-framework --search-path .
|
$ vicare --more-file-extensions \
|
||||||
|
--search-path ../nanopass-framework-scheme \
|
||||||
|
--search-path .
|
||||||
Vicare Scheme version 0.3d1, 64-bit
|
Vicare Scheme version 0.3d1, 64-bit
|
||||||
Revision no-branch/no-commit
|
Revision no-branch/no-commit
|
||||||
Build 2013-10-15
|
Build 2013-10-15
|
||||||
|
@ -151,7 +159,9 @@ vicare> (my-tiny-compile '(+ 4 5))
|
||||||
We can also run the tests under Vicare as:
|
We can also run the tests under Vicare as:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ vicare --more-file-extensions --search-path ../nanopass-framework --search-path .
|
$ vicare --more-file-extensions \
|
||||||
|
--search-path ../nanopass-framework-scheme \
|
||||||
|
--search-path .
|
||||||
Vicare Scheme version 0.3d1, 64-bit
|
Vicare Scheme version 0.3d1, 64-bit
|
||||||
Revision no-branch/no-commit
|
Revision no-branch/no-commit
|
||||||
Build 2013-10-15
|
Build 2013-10-15
|
||||||
|
|
Loading…
Reference in New Issue
Block a user