Add parallel functional compiler, Manticore

This commit is contained in:
Ryan Newton 2014-08-19 02:36:57 -04:00
parent 6cc889098c
commit ff6057d686
3 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#!/bin/bash
source $stdenv/setup
echo "Building Manticore research compiler."
set -xe
PATH=$smlnj/bin:$PATH
mkdir -p $out/bin
# Manticore seems to use the MLB files from the build tree,
# so for now we copy the whole build tree into the store:
cd $out/
tar xf $src
mv manticore* repo_checkout
cd repo_checkout/
# TODO: At the very least, this could probably be cut down to a subset
# of the repo.
${autoconf}/bin/autoheader -Iconfig
${autoconf}/bin/autoconf -Iconfig
./configure --prefix=$out
make build -j
make install

View File

@ -0,0 +1,28 @@
{ stdenv, fetchurl, coreutils, autoconf, automake, smlnj }:
stdenv.mkDerivation rec {
name = "manticore-${version}";
version = "2014.08.18";
builder = ./builder.sh;
src = fetchurl {
url = https://github.com/rrnewton/manticore_temp_mirror/archive/snapshot-20140818.tar.gz;
sha256 = "1x52xpj5gbcpqjqm6aw6ssn901f353zypj3d5scm8i3ad777y29d";
};
inherit stdenv coreutils autoconf automake smlnj;
meta = {
description = "Manticore: a parallel, pure variant of Standard ML";
longDescription = ''
Manticore is a high-level parallel programming language aimed at
general-purpose applications running on multi-core
processors. Manticore supports parallelism at multiple levels:
explicit concurrency and coarse-grain parallelism via CML-style
constructs and fine-grain parallelism via various light-weight
notations, such as parallel tuple expressions and NESL/Nepal-style
parallel array comprehensions.
'';
homepage = http://manticore.cs.uchicago.edu/;
};
}

View File

@ -3122,6 +3122,8 @@ let
});
llvmPackagesSelf = import ../development/compilers/llvm/3.4 { inherit newScope fetchurl; isl = isl_0_12; stdenv = libcxxStdenv; };
manticore = callPackage ../development/compilers/manticore { };
mentorToolchains = recurseIntoAttrs (
callPackage_i686 ../development/compilers/mentor {}
);