Git Product home page Git Product logo

aliceml's Introduction

Overview

Alice ML is a functional programming language based on Standard ML, extended with rich support for concurrent, distributed, and constraint programming. Alice ML extends Standard ML with several new features:

  • Futures: laziness and light-weight concurrency with implicit data-flow synchronisation
  • Higher-order modules: higher-order functors and abstract signatures
  • Packages: integrating static with dynamic typing and first class modules
  • Pickling: higher-order type-safe, generic & platform-independent persistence
  • Components: platform-independence and type-safe dynamic import & export of modules
  • Distribution: type-safe cross-platform remote functions and network mobility
  • Constraints: solving combinatorical problems using constraint propagation and programmable search

More about Alice ML is available from the original project page: http://www.ps.uni-saarland.de/alice/

Building on Linux

The following packages were required to build on Ubuntu 19.10:

$ sudo apt-get install smlnj smlnj-runtime ml-lex ml-lpt ml-yacc     
$ sudo apt-get install g++ libsqlite3-dev libgtk2.0-dev libgmp-dev \
     gawk libtool libgnomecanvas2-dev gtk2-engines-pixbuf \
     libxml2-dev autoconf texinfo

To build:

$ git clone git://github.com/aliceml/aliceml
$ cd aliceml
$ git submodule init
$ git submodule update

$ cd make
$ make setup
#...add directory displayed to the PATH...
$ export PATH=/path/displayed/in/setup:$PATH
$ make all

The final system will be in the distro subdirectory and instructions are printed at the end of make all on how to add to the PATH and run.

Building on Mac OS X

Support for building on Mac OS X is in the early stages and slightly more manual than building on Linux due to errors I haven't worked out. Help from Mac OS X users would be useful.

The following packages were used from Homebrew:

$ brew install smlnj gmp libgnomecanvas gtk+ gawk

To build:

$ git clone git://github.com/aliceml/aliceml
$ cd aliceml/make
$ export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig
$ make setup
#...add directory displayed to the PATH...
$ export PATH=/path/displayed/in/setup:$PATH
$ make all

On my machine the make all fails some time in the build when compiling NativeLibs.cc with this error:

distro/bin/seamtool: line 63: echo: write error: Resource temporarily unavailable

The build can be continued with:

$ PATH=/path/to/aliceml/distro/bin:$PATH make -C ../alice/sources/lib/gtk/seam/
$ make all

The final system will be in the distro subdirectory and instructions are printed at the end of make all on how to add to the PATH and run.

Original Source

This git repository was created by converting Gareth Smith's mercurial repositories to git with minor bitrot fixes. Instructions for building Gareth's original code is from a post on the Alice ML mailing list. Note that Gareth's repository contains many changes to the original Alice ML CVS repository but is the only one I've found buildable on modern Linux systems.

During the make setup process the source to gecode will be downloaded.

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.