diff --git a/s48/module-system/README b/s48/module-system/README new file mode 100644 index 0000000..4d8c24b --- /dev/null +++ b/s48/module-system/README @@ -0,0 +1,85 @@ +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-stucture surflet} + +Creates a rt-structure object representing the structure which name +STRUCUTURE-NAME (a symbol). + + + +(load-structure rt-structure) --> unspecific + +Ensures that the definition of the unterlying 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. + + + + + + + + + + +