56 lines
1.4 KiB
Plaintext
56 lines
1.4 KiB
Plaintext
|
|
The _r6rs_ collection contains support for things that might become
|
|
part of the R6RS standard.
|
|
|
|
|
|
To write an R6RS library:
|
|
|
|
#reader(lib "library.ss" "r6rs")
|
|
(library "name" ....)
|
|
|
|
where "name" matches the containing file name without the file path or
|
|
suffix. Note that the #reader line adjusts reader syntax in addition
|
|
to converting `library' to `module'.
|
|
|
|
|
|
To evaluate R6RS `library' and `import' forms at the REPL (or with
|
|
`load', etc):
|
|
|
|
> (require (lib "library-repl.ss" "r6rs"))
|
|
|
|
or start MzScheme as
|
|
|
|
% mzscheme -L library-repl.ss r6rs
|
|
|
|
|
|
In either mode, to import a collection-based module to to reference
|
|
other libraries installed in the collection tree, use
|
|
|
|
"scheme://<collection>/...<collection>/<file>"
|
|
|
|
instead of
|
|
|
|
(lib "<file>" "<collection>" ... "<collection>")
|
|
|
|
A "scheme://" URI must have at least one <collection> and a <file> to
|
|
be translated to a `lib' reference. If the indicated collection does
|
|
not exist, a path is invented based on the "mzlib" collection; this
|
|
supports absolute URIs that name `library's entered in the REPL.
|
|
|
|
|
|
Limitations:
|
|
|
|
- doesn't enforce that a for-run import isn't also
|
|
a for-expand import in a different import-spec
|
|
|
|
- reader adjusts only string, character, and quoted-symbol
|
|
syntax (as in SRFI-75), for now
|
|
|
|
|
|
To appear:
|
|
|
|
- a tool to take a sequence of `library' declarations and
|
|
copy them into the collection tree (adjusting the
|
|
declared library name as necessary, and adding the #reader
|
|
line)
|