summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-10-05 22:43:05 -0500
committerGitHub <noreply@github.com>2018-10-05 22:43:05 -0500
commite78eacd6cdd5d01025623de659466429b33287e7 (patch)
treee4f28fc8ed7805b12733c99f394bf1bbab5841a6 /pkgs
parentdeee27973eabdb2346eeb5c727bdf98dadd538ce (diff)
parent5e5e3d8864d928adc19ddb6ee6df8b1183648778 (diff)
downloadnixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.tar
nixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.tar.gz
nixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.tar.bz2
nixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.tar.lz
nixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.tar.xz
nixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.tar.zst
nixpkgs-e78eacd6cdd5d01025623de659466429b33287e7.zip
Merge pull request #46770 from jluttine/carp-init
carp: init at unstable-2018-09-15
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/carp/default.nix47
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/compilers/carp/default.nix b/pkgs/development/compilers/carp/default.nix
new file mode 100644
index 00000000000..65f0481a801
--- /dev/null
+++ b/pkgs/development/compilers/carp/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, makeWrapper, clang, haskellPackages }:
+
+haskellPackages.mkDerivation rec {
+
+  pname = "carp";
+  version = "unstable-2018-09-15";
+
+  src = fetchFromGitHub {
+    owner = "carp-lang";
+    repo = "Carp";
+    rev = "cf9286c35cab1c170aa819f7b30b5871b9e812e6";
+    sha256 = "1k6kdxbbaclhi40b9p3fgbkc1x6pc4v0029xjm6gny6pcdci2cli";
+  };
+
+  buildDepends = [ makeWrapper ];
+
+  executableHaskellDepends = with haskellPackages; [
+    HUnit blaze-markup blaze-html split cmdargs
+  ];
+
+  isExecutable = true;
+
+  # The carp executable must know where to find its core libraries and other
+  # files. Set the environment variable CARP_DIR so that it points to the root
+  # of the Carp repo. See:
+  # https://github.com/carp-lang/Carp/blob/master/docs/Install.md#setting-the-carp_dir
+  #
+  # Also, clang must be available run-time because carp is compiled to C which
+  # is then compiled with clang.
+  postInstall = ''
+    wrapProgram $out/bin/carp                                  \
+      --set CARP_DIR $src                                      \
+      --prefix PATH : ${clang}/bin
+    wrapProgram $out/bin/carp-header-parse                     \
+      --set CARP_DIR $src                                      \
+      --prefix PATH : ${clang}/bin
+  '';
+
+  description = "A statically typed lisp, without a GC, for real-time applications";
+  homepage    = https://github.com/carp-lang/Carp;
+  license     = stdenv.lib.licenses.asl20;
+  maintainers = with stdenv.lib.maintainers; [ jluttine ];
+
+  # Windows not (yet) supported.
+  platforms   = with stdenv.lib.platforms; unix ++ darwin;
+
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6ad32adc5c4..a9e372cfc6f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2346,6 +2346,8 @@ with pkgs;
 
   buildEmscriptenPackage = callPackage ../development/em-modules/generic { };
 
+  carp = callPackage ../development/compilers/carp { };
+
   emscriptenVersion = "1.37.36";
 
   emscripten = callPackage ../development/compilers/emscripten { };