Code Monkey home page Code Monkey logo

Standard ML of New Jersey

This is the main development repository for SML/NJ. We are currently reworking many components of the system, so it is not very stable. For most uses, we recommend the legacy version of the system.

As of the 2023.1 release, this version is known to work on AMD64 (a.k.a. x86-64) hardware running Linux or macOS.


Contents


Building From Source

The process for building the system from source code has changed.

  1. clone the repository

    git clone [email protected]:smlnj/smlnj.git
  2. cd to the cloned repository and get the boot files

    cd smlnj
    curl -O https://smlnj.org/dist/working/$VERSION/boot.amd64-unix.tgz

    where $VERSION is the version that you are building (e.g., 2023.1).

    We plan to incorporate this step into the build.sh script in the near future.

  3. build the installation

    ./build.sh

    Use build.sh -h to see the list of options accepted by the build script.

    As before, you can modify the config/targets file to add/remove components from the build.

After successful running of the build.sh script, bin/sml will be the interactive system.

Recompiling the System

The process of recompiling the system from source code is fairly similar to before.

  1. Switch to the system directory and run the cmb-make command:

    cd system
    ./cmb-make ../bin/sml

    The "../bin/sml" argument is optional; if omitted, then the sml command in the user's PATH will be used. Once can also specify a different path to an sml command, when appropriate.

  2. Bootstrap the system

    ./makeml
  3. Install the system

    ./installml -clean -boot

    The -boot option is new (and optional); it causes the existing boot files in the root directory (e.g., boot.amd64-unix.tgz) to be replaced by the files generated by the cmb-make command.

  4. Rebuild the libraries and tools

    cd ..
    ./build.sh

Standard ML of New Jersey's Projects

.github icon .github

Profile project for SML/NJ organization

legacy icon legacy

This project is the old version of Standard ML of New Jersey that continues to support older systems (e.g., 32-bit machines).

smlnj-llvm-14 icon smlnj-llvm-14

Clone of the LLVM sources with patches to support the JWA calling convention

smlnj-llvm-16 icon smlnj-llvm-16

Clone of the LLVM 16.0.x sources with patches to support the JWA calling convention

smlnj-llvm-18.1 icon smlnj-llvm-18.1

Clone of the LLVM 18.1.x sources with patches to support the JWA calling convention

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.