Incremental Recompilation for Standard ML of New Jersey Robert Harper, Peter Lee, Frank Pfenning, and Eugene Rollins The design and implementation of an incremental recompilation manager (IRM) for Standard ML of New Jersey (SML/NJ) is described. Truly separate compilation is difficult to implement correctly and efficiently for SML because one compilation unit may depend not only on the interface of another, but also on its implementation. In this paper we present an integrated compilation system based on the "visible compiler" primitives provided by SML/NJ that supports "smart recompilation" to minimize build time in most situations. Large systems are presented as hierarchical source groups. An automatic dependency analyzer determines constraints on the order in which sources must be considered. By abstracting away from the specifics of the SML/NJ compiler, the IRM readily generalizes to arbitrary "compilation tools" such as parser generators and embedded languages.