lol
1{ stdenv, fetchFromGitHub, coreutils, autoreconfHook, smlnj }:
2
3let
4 rev = "7376cb20ba5285a6b076a73c821e4743809c1d9d";
5in stdenv.mkDerivation {
6 pname = "manticore";
7 version = "2019.12.03";
8
9 src = fetchFromGitHub {
10 owner = "ManticoreProject";
11 repo = "manticore";
12 sha256 = "17h3ar7d6145dyrm006r3gd5frk3v4apjk383n78dh4vlniv1ay2";
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 source 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}