5 Adding Support for New Implementations
Broadly speaking, for purposes of porting there are four categories of Scheme module systems in current use:
No Modules (Stalin)
First-Class Interpreter Modules (most interpreters)
Syntactic Modules (anything using psyntax modules)
Module Languages (Bigloo, MzScheme, Common-Scheme)
Systems without modules always have some form of include file, and may also allow separate compilation, however all symbols share the same namespace. If you want to try to use these implementations with Common-Scheme you will have to choose your variable names carefully.
Interpreters with first class modules should generally have no problem
porting the common-module
form, since they can directly
manipulate and query modules in macro expansions.
Systems whose modules are syntax can generally be extended by loading
the common-module
module first and then expanding into the native
module syntax.
Schemes who use a module language separate from Scheme (like
Common-Scheme itself) will either need for that language to support the
common-module
form natively or to use some form of trivial
preprocessor.