Organization of a Module

A module is organized as a collection of source files (extension .scm) and a module control file (extension .mcf). The source files are logically concatenated by the module compiler so that there is no encapsulation between different source files in a module. The module control file indicates the order of the concatenation of the source files. This order may be important, since a binding, such as a macro, may be created in one file and used in another.[1]

The source files are ordinary RScheme files that can be understood by the interactive on-line compiler. Typically, you would use the procedure load to add the contents of these source files to your interactive RScheme environement during the development phase. Loading the source files does not involve the module compiler at all. Instead the on-line interactive compiler translates the source to some interal form (e.g. bytecodes) that can be executed relatively fast. The on-line interactive compiler is faster than the off-line module compiler, so that in a phase of frequent modifications to source code you can rapidly test new versions of your code. However, the off-line compiler produced much faster executable code, so that when you are reasonably sure that your program is bug-free, you typically use the off-line module compiler on your code in order to produce fast executable code.

Notes

[1]

Although normal variables, which are used to contain function and data values, may occur in any order