This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Source for wiki FactoringModuleProposals version 10

author

steven_ganz

comment


    

ipnr

67.188.102.79

name

FactoringModuleProposals

readonly

0

text

== Factoring Module Proposals ==

This is an attempt to factor R6RS, ModulesShinn, the `library` and `module` parts of ModulesAndPackagesArcfide, and ModulesGanz into features that they have or don't have, to make decisions easier.  I have neglected purely syntactic features like the names and ordering constraints of forms and keywords.  I've added columns for a few existing Schemes.

||Feature||r6rs||shinn||hsu-library||hsu-module||ganz||chicken||chez||PLT||
||Module type||Static||Static||Syntactic||Syntactic||Syntactic||Syntactic||Syntactic||Static||
||Top-level only||Yes||Yes||Yes||No||No||Yes||No||Yes||
||Name||List||List||List||Identifier||Identifier||Identifier||Identifier||||
||Anonymous self-importing modules||No||No||No||Yes||Yes||No||Yes||||
||File inclusion within module||In most cases||Yes||Yes||Yes||No||Yes||Yes||Yes||
||Body||Implicit||Explicit||Implicit||Implicit||Implicit||Implicit||Implicit||||
||Exports syntax forms?||Yes||Yes||Yes||Yes||Yes||Yes||Yes||Yes||
||Import qualifiers: `only` `except` `rename` `prefix`||Yes||Yes||Yes||Yes||Yes||Yes||Yes (also strip prefixes)||||
||Rename on export||Yes||Yes||Yes||Yes||No||No||No||||
||Macros can generate modules||No||No||Unclear||Yes||Unspecified restrictions||Yes||Yes||No||
||Support for `co-export`||No||No||Yes||Yes||No||No||No||||
||Implicit exports||Automatic||Must be explicit||Automatic/Overridable||Automatic/Overridable||Automatic/Overridable||Must be explicit||???||||
||Import into REPL||No||Yes||Yes||Yes||Yes||Yes||Yes||Yes||
||Phasing||Yes||No||No||No||No||Partial||Unclear||||
||Versioning||Yes||No||No||No||No||No||No||||
||Strict subset of R6RS||Obviously||Yes||Yes||No||No||No||No||No||
||Supports parameterization of modules by imports||No||No||No||No||Yes||No||No||Yes||

The difference between R6RS and R6RS-- is that R6RS-- does not have phasing or versioning.

time

2010-10-28 06:45:23

version

10