Using Andre van Tonder's syntax-case & library system on Gambit
There is a compile script written in Gambit scheme that will compile all the libraries together into a loadable library. The libraries are divided into 4 sets; each set being dependent on the previous layer.
- Core libraries
- The Gambit libraries are where all the extensions to r5rs are put
- the standard and base libraries.
- The srfi's that are implemented by gambit.
There are some general differences:
- You can't use Gambit's extended lambda syntax. Instead use srfi-89
See installation instructions for details on how to install and test the packages
The source of this project is available as a darcs2 repository or tarball.
General discussion mailing list: http://smyles.com/mailman/listinfo/r6gambit
Core libraries:
- (core primitives)
- (core primitive-macros)
- (core with-syntax)
- (core syntax-rules)
- (core let)
- (core derived)
- (core identifier-syntax)
- (core quasisyntax)
- (core quasiquote)
- (core let-values)
- (core records)
- (core bytevectors)
- (core hashtables)
- (r5rs)
Gambit libraries:
- (gambit threads)
- (gambit exceptions)
- (gambit extensions)
- (gambit records procedural)
- (gambit records inspection)
- (gambit records)
- (gambit files)
- (gambit io)
- (gambit io readtable)
- (gambit programs)
- (gambit time)
- (gambit will)
- (gambit hashing)
- (gambit table)
- (gambit debug)
- (gambit bytevectors)
R6RS libraries implemented:
- (rnrs base)
- (rnrs unicode)
- (rnrs bytevectors)
- (rnrs lists)
- (rnrs sorting)
- (rnrs control)
- (rnrs records inspection)
- (rnrs conditions)
- (rnrs exceptions)
- (rnrs files)
- (rnrs programs)
- (rnrs arithmetic fixnums)
- (rnrs arithmetic bitwise)
- (rnrs syntax-case)
- (rnrs hashtables (6))
- (rnrs enums (6))
- (rnrs eval)
- (rnrs mutable-pairs)
- (rnrs mutable-strings)
- (rnrs r5rs)
R6RS libraries (incomplete):
- (rnrs records procedural)
- (rnrs records syntactic (6))
- (rnrs io ports)
- (rnrs io simple)
- (rnrs arithmetic flonums)
- (rnrs)
SRFI libraries:
- (srfi :2)
- (srfi :4)
- (srfi :6)
- (srfi :8)
- (srfi :9)
- (srfi :18)
- (srfi :21)
- (srfi :23)
- (srfi :27)
- (srfi :39)
- (srfi :66)
- (srfi :69)
- (srfi :88)
- (srfi :89)
- (srfi :99)
TODO:
- Finish importing all gambit api into gambit libraries.
- Implement all R6RS api
- Remove warnings when loading the R6RS compiled library
- Create a error handler that prints R6RS conditions in repl.
- Integrate gambit and r6rs repl
- Create R6RS mode for Gambit that loads this library
- Implement a compile-library and compile-program functions.
- Implement a packaging standard