1{ stdenv, fetchFromGitHub, coreutils, autoreconfHook, smlnj }:
2
3let
4 rev = "592a5714595b4448b646a7d49df04c285668c2f8";
5in stdenv.mkDerivation rec {
6 name = "manticore-${version}";
7 version = "2014.08.18";
8
9 src = fetchFromGitHub {
10 owner = "rrnewton";
11 repo = "manticore_temp_mirror";
12 sha256 = "1snwlm9a31wfgvzb80y7r7yvc6n0k0bi675lqwzll95as7cdswwi";
13 inherit rev;
14 };
15
16 enableParallelBuilding = false;
17
18 nativeBuildInputs = [ autoreconfHook ];
19
20 buildInputs = [ coreutils smlnj ];
21
22 autoreconfFlags = "-Iconfig -vfi";
23
24 unpackPhase = ''
25 mkdir -p $out
26 cd $out
27 unpackFile $src
28 mv manticore_temp_mirror-${rev}-src repo_checkout
29 cd repo_checkout
30 chmod u+w . -R
31 '';
32
33 postPatch = ''
34 patchShebangs .
35 substituteInPlace configure.ac --replace 'MANTICORE_ROOT=`pwd`' 'MANTICORE_ROOT=$out/repo_checkout'
36 '';
37
38 preInstall = "mkdir -p $out/bin";
39
40 meta = {
41 description = "A parallel, pure variant of Standard ML";
42
43 longDescription = ''
44 Manticore is a high-level parallel programming language aimed at
45 general-purpose applications running on multi-core
46 processors. Manticore supports parallelism at multiple levels:
47 explicit concurrency and coarse-grain parallelism via CML-style
48 constructs and fine-grain parallelism via various light-weight
49 notations, such as parallel tuple expressions and NESL/Nepal-style
50 parallel array comprehensions.
51 '';
52
53 homepage = http://manticore.cs.uchicago.edu/;
54 };
55}