sunterlib/s48/module-system
Anthony Carrico 5682f5283f Automatically generate file DETAILS containing library details. 2003-03-11 06:13:58 +00:00
..
AUTHORS Automatically generate file DETAILS containing library details. 2003-03-11 06:13:58 +00:00
BLURB Automatically generate file DETAILS containing library details. 2003-03-11 06:13:58 +00:00
README Fixed typos 2003-02-20 22:40:23 +00:00
interfaces.scm Moved from rt-modules/ 2003-01-28 13:13:10 +00:00
overlapping-imports.scm
packages.scm Readded accidentally removed overlapping-imports?. 2003-02-12 10:12:23 +00:00
rt-module.scm Moved from rt-modules/ 2003-01-28 13:13:10 +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 surflet 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.