sunterlib/s48/module-system
Martin Gasbichler 4680d4e2e5 Set version number to 1.0 2004-03-27 06:31:46 +00:00
..
AUTHORS Changed to new package system. 2004-03-10 17:23:45 +00:00
BLURB Automatically generate file DETAILS containing library details. 2003-03-11 06:13:58 +00:00
NEWS Changed to new package system. 2004-03-10 17:23:45 +00:00
README Add rt-structure->environment. 2003-04-23 08:30:47 +00:00
overlapping-imports.scm
packages.scm Moved package and interface definition to packages.scm. Generate load scripts. 2004-03-14 22:59:57 +00:00
pkg-def.scm Set version number to 1.0 2004-03-27 06:31:46 +00:00
rt-module.scm Add rt-structure->environment. 2003-04-23 08:30:47 +00:00

README

The structure OVERLAPPING-IMPORTS extends the module system with a
facility to check for duplicates entries within the imported names of
a module. After loading the package you can add the form

(optimize overlapping-imports?)

to the definition of the structure you want to monitor, e.g.

config> (define-structure foo (export f)
		(open scheme srfi-1) 
		(begin (define f 23)) 
		(optimize overlapping-imports?))
; no values returned
config> ,load-package foo

Warning: Structure has undefined exports
         #{Structure 153 srfi-1}
         (for-each)

Warning: package has overlapping imports
         #{Package 181 foo}
         (assoc (srfi-1 scheme))
         (for-each (srfi-1 scheme))
         (member (srfi-1 scheme))
         (map (srfi-1 scheme))



The structure RT-MODULES provides run-time access to the Scheme 48
module system.


(load-config-file file-name) --> unspecific

Loads config file containing structure definition. This is the same as

,config ,load file-name

in the REPL.


(reify-structure structure-name) --> rt-structure

Creates a rt-structure object representing the structure which name
STRUCTURE-NAME (a symbol).



(load-structure rt-structure) --> unspecific

Ensures that the definition of the underlying structure has been
loaded. This is the same as

,load-package structure

in the REPL.



(rt-structure-binding rt-structure name) --> value

Gets the binding for NAME (a symbol) from a rt-structure.


(lambda-interface interface-name body ...) --> value of body     SYNTAX

A variation of lambda which uses the exported names from interface
INTERFACE-NAME as the names of the parameters.


(with-names-from-rt-structure rt-structure interface body ...) --> value of body    SYNTAX

Evaluate body with the names from INTERFACE bound to the bindings
provided by RT-STRUCTURE.


(rt-structure->environment rt-structure) --> environment

Turns RT-STRUCTURE into an object suitable as second argument to EVAL.