diff --git a/pkgs/development/compilers/manticore/builder.sh b/pkgs/development/compilers/manticore/builder.sh new file mode 100755 index 00000000000..8fb4ab850eb --- /dev/null +++ b/pkgs/development/compilers/manticore/builder.sh @@ -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 diff --git a/pkgs/development/compilers/manticore/default.nix b/pkgs/development/compilers/manticore/default.nix new file mode 100644 index 00000000000..a954591de44 --- /dev/null +++ b/pkgs/development/compilers/manticore/default.nix @@ -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/; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3810074111c..200881c916a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 {} );