8000 GitHub - amuletml/amulet: An ML-like functional programming language
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Oct 18, 2021. It is now read-only.

amuletml/amulet

Repository files navigation

Amulet is no longer under development. If you're interested in other languages which compile to Lua, do check out this list.

Amulet

Amulet is a simple functional programming language in the ML tradition, with support for higher-rank parametric polymorphic types and row-polymorphic records, pattern matching with algebraic data types, and tail recursion elimination.

Build Status

Installation

Installation instructions

For your convenience, we provide pre-built tarballs for x86_64 Linux that are compiled every night from the master branch (as part of the nightly build job, linked above). Install them with the magic install script:

curl https://amulet.works/install.sh | env CHANNEL=nightly sh -

Building from Source

Make sure you have a functional Haskell toolchain including Stack. Since Amulet has a lot of object files (around 125 for the amc executable, not counting all of the Haskell dependencies that are shipped as .a static l 7FA4 ibraries), we use the LLVM lld linker in the Cabal file.

If you do not wish to use lld, remove all the ghc-options: stanzas from the amuletml.cabal file; This sed command should do the trick, too.

sed -re 's;-optl-fuse-ld=lld;;g' -i amuletml.cabal

Amulet ships with its own set of libraries. Make sure they are installed. amc will look for its libraries in one of the following directories:

${AMC_LIBRARY_PATH}
$(dirname $(which amc))/lib
$(dirname $(which amc))/../lib

The script tools/quickinstall.sh will take care of building and installing the libraries, using Stack.

0