R6RS

From Gambit wiki

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
Using Andre van Tonder's [http://www.het.brown.edu/people/andre/macros syntax-case & library system] on gambit
+
Using Andre van Tonder's [http://www.het.brown.edu/people/andre/macros syntax-case & library system] on Gambit
-
There is a R6RS distribution located at [[media:gambit-r6rs.tgz|gambit-r6rs.tgz]]. 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 3 layers; each layer being dependent on the previous layer.
+
There is a R6RS distribution located at [[media:gambit-r6rs.tgz|gambit-r6rs.tgz]]. 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 3 layers; each layer being dependent on the previous layer.
-
  1. The gambit libraries are where all the extensions to r5rs are put
+
  1. The Gambit libraries are where all the extensions to r5rs are put
  2. the standard and base libraries.
  2. the standard and base libraries.
  3. The srfi's that are implemented by gambit.
  3. The srfi's that are implemented by gambit.
Line 75: Line 75:
   * Create a error handler that prints R6RS conditions in repl.
   * Create a error handler that prints R6RS conditions in repl.
   * Integrate gambit and r6rs repl
   * Integrate gambit and r6rs repl
-
   * Create R6RS mode for gambit that loads this library
+
   * Create R6RS mode for Gambit that loads this library
   * Implement a compile-library and compile-program functions.
   * Implement a compile-library and compile-program functions.
   * Implement a packaging standard
   * Implement a packaging standard

Revision as of 21:01, 7 April 2008

Using Andre van Tonder's syntax-case & library system on Gambit

There is a R6RS distribution located at gambit-r6rs.tgz. 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 3 layers; each layer being dependent on the previous layer.

1. The Gambit libraries are where all the extensions to r5rs are put
2. the standard and base libraries.
3. 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

Gambit libraries:

(gambit threads)
(gambit exceptions)
(gambit extensions)
(gambit files)
(gambit io)
(gambit io readtable)
(gambit programs)
(gambit time)
(gambit will)
(gambit debug)
(gambit bytevectors)

R6RS libraries implemented:

(rnrs base)
(rnrs lists)
(rnrs sorting)
(rnrs control)
(rnrs records procedural)
(rnrs records inspection)
(rnrs conditions)
(rnrs exceptions)
(rnrs files)
(rnrs programs)
(rnrs arithmetic fixnums)
(rnrs arithmetic bitwise)
(rnrs syntax-case)
(rnrs eval)
(rnrs mutable-pairs)
(rnrs mutable-strings)
(rnrs r5rs)

R6RS libraries (incomplete):

 (rnrs unicode)
 (rnrs bytevectors)
 (rnrs io ports)
 (rnrs io simple)
 (rnrs arithmetic flonums)
 (rnrs)
 

R6RS libraries missing:

 (rnrs records syntactic (6))
 (rnrs hashtables (6))
 (rnrs enums (6))

SRFI libraries:

(srfi-2)
(srfi-4)
(srfi-6)
(srfi-8)
(srfi-9)
(srfi-18)
(srfi-21)
(srfi-23)
(srfi-27)
(srfi-39)
(srfi-88)
(srfi-89)

TODO:

 * Finish importing all gambit api into gambit libraries.
 * Implement all R6RS api
 * 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
Personal tools
documentation