next up previous contents
Next: 2.2 Invoking the bootstrap Up: 2. Basic usage Previous: 2. Basic usage   Contents

2.1 Requirements

To be able to use the bootstrap compiler, one must first install SML/NJ (i.e., the interactive system that contains the compiler) as well as both ML-Yacc and ML-Lex.

It is further necessary to have all ML source code for the system available. If the basic installation did not install this source code, then one must now fetch all source archives and unpack them. (There is an option for the SML/NJ installer that lets it install all source trees automatically. However, by default this feature is turned off.)

The following list shows all required source packages. (Path names are shown relative to the SML/NJ installation directory.)

src/system
This archive contains the sources for the SML Standard Basis library as well as lots of ``glue'' code. The glue is used for assembling a complete system from all its other parts. Directory src/system must be the current working directory at the time the bootstrap compiler is started.
src/MLRISC
This is the implementation of the MLRISC backend (the low-level optimizer and code generator) used by SML/NJ.
src/cm
This source tree contains most of CM's (and CMB's) implementation.
src/compiler
This is the implementation of the frontend (parser, type checker, etc.) of the compiler as well as its high-level optimizer (FLINT).
src/ml-yacc
This source tree contains the implementation of ML-Yacc and its library ( $/ml-yacc-lib.cm). Technically, the sources of ML-Yacc itself are not needed (provided a working executable for ML-Yacc has been installed), but the library sources are.
src/smlnj-lib
This source tree hosts several sub-trees, each of which implements one of the libraries in the SML/NJ library collection. For bootstrap compilation, the following sub-trees are required:
src/smlnj-lib/Util
This directory holds the sources for $/smlnj-lib.cm.
src/smlnj-lib/PP
This directory holds the sourcse for $/pp-lib.cm, i.e., the pretty-printing library.
src/smlnj-lib/HTML
This directory holds the sources for $/html-lib.cm, a library for handling HTML files. The need for this library arises from the fact that $/pp-lib.cm statically depends on it. (The compiler does not actually use any services from this library.)


next up previous contents
Next: 2.2 Invoking the bootstrap Up: 2. Basic usage Previous: 2. Basic usage   Contents
Matthias Blume
2001-07-19