SML# Document Version 4.0.0
32 The SML# Source Distribution Package

32.2 The SML# Source Tree

The SML# source directory src consists of the following directories and files.

  • Directories

    • SML# compiler source

      basis/ the Standard ML Basis Library
      compiler/ the SML# compiler
      config/ the library to access system parameter set by configure
      ffi/ the support library for direct C interface
      llvm/ the LLVM code generation library
      runtime/ the runtime system
      sql/ the SQL integration support library
      thread/ the thread support library
      unix-utils/ the library for UNIX basic commands
    • SML# tools

      smlformat/ smlformatthe pretty printer generator
      smlunit/ the unit test library

      These are general purpose tools we have developed for SML#. Since they are relatively small system independent of the SML# compiler, we omit their description in this current document.

    • third-party codes

      ml-lex/ a lexer generator
      ml-yacc/ a parser generator
      smlnj/ smlnj source files used in basis/
      smlnj-lib/ smlnj utility library

      These third-party codes are ported to SML#. They are are included here with their licenses. make system compiles them with SML# source code to build the SML# system. This document does not describe these code.

  • Files

    basis.smi the interface file of the Standard ML Basis Library
    builtin.smi the interface file to bind builtin data
    config.mk definition of environment variables of the compiler command
    config.mk.in the template file of config.mk
    config.sed the sed script to generate config.mk
    ffi.smi the interface file of the direct C interface
    foreach.smi the interface file of data parallel execution
    json.smi the interface file of JSON support
    ml-yacc-lib.smi the interface file of the smlyacc library
    prelude.smi the interface file of interactive mode
    reifyTy.smi the interface file for reflection
    smlformat-lib.smi the interface file of the smlformat library
    smlnj-lib.smi the interface file of smlnj-lib
    smlunit-lib.smi the interface file of smlunit
    sql.smi the interface file of the SQL integration support
    thread.smi the interface file of the thread support