about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/interpreters/rakudo
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/rakudo')
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/default.nix29
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix25
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix29
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/zef.nix34
4 files changed, 117 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
new file mode 100644
index 000000000000..0c708cd3171e
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, perl, icu, zlib, gmp, lib, nqp }:
+
+stdenv.mkDerivation rec {
+  pname = "rakudo";
+  version = "2020.08.2";
+
+  src = fetchurl {
+    url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
+    sha256 = "16qsq6alvk2x44x39j2fzxigvm5cvmz85i0nkjcw0wz29yyf8lch";
+  };
+
+  buildInputs = [ icu zlib gmp perl ];
+  configureScript = "perl ./Configure.pl";
+  configureFlags = [
+    "--backends=moar"
+    "--with-nqp=${nqp}/bin/nqp"
+  ];
+
+  # Some tests fail on Darwin
+  doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    description = "Raku implementation on top of Moar virtual machine";
+    homepage    = "https://www.rakudo.org";
+    license     = licenses.artistic2;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
new file mode 100644
index 000000000000..702fccd7b6bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, perl
+, CoreServices, ApplicationServices }:
+
+stdenv.mkDerivation rec {
+  pname = "moarvm";
+  version = "2020.08";
+
+  src = fetchurl {
+    url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
+    sha256 = "1gq7z4z5lnkai01721waawkkal82sdmyra05nnbfb1986mq5xpiy";
+   };
+
+  buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
+  doCheck = false; # MoarVM does not come with its own test suite
+
+  configureScript = "${perl}/bin/perl ./Configure.pl";
+
+  meta = with stdenv.lib; {
+    description = "VM with adaptive optimization and JIT compilation, built for Rakudo";
+    homepage    = "https://www.moarvm.org/";
+    license     = licenses.artistic2;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
new file mode 100644
index 000000000000..3f5f7afcfed4
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, perl, lib, moarvm }:
+
+stdenv.mkDerivation rec {
+  pname = "nqp";
+  version = "2020.08.2";
+
+  src = fetchurl {
+    url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
+    sha256 = "14zr1swprxl284k0h1w72pcypj24sga15170ylaqjb8wxy8h1mqw";
+  };
+
+  buildInputs = [ perl ];
+
+  configureScript = "${perl}/bin/perl ./Configure.pl";
+  configureFlags = [
+    "--backends=moar"
+    "--with-moar=${moarvm}/bin/moar"
+  ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Not Quite Perl -- a lightweight Raku-like environment for virtual machines";
+    homepage    = "https://github.com/perl6/nqp";
+    license     = licenses.artistic2;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
new file mode 100644
index 000000000000..c82053446933
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rakudo, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "zef";
+  version = "0.8.5";
+
+  src = fetchFromGitHub {
+    owner = "ugexe";
+    repo = "zef";
+    rev = "v${version}";
+    sha256 = "17a5ns0ph8626q3b4wv9v2n0zqmhqbqyzjzxa387kr19qs933yy6";
+  };
+
+  buildInputs = [ rakudo makeWrapper ];
+
+  installPhase = ''
+    mkdir -p "$out"
+    # TODO: Find better solution. zef stores cache stuff in $HOME with the
+    # default config.
+    env HOME=$TMPDIR ${rakudo}/bin/raku -I. ./bin/zef --/depends --/test-depends --/build-depends --install-to=$out install .
+  '';
+
+  postFixup =''
+    wrapProgram $out/bin/zef --prefix RAKUDOLIB , "inst#$out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Raku / Perl6 Module Management";
+    homepage    = "https://github.com/ugexe/zef";
+    license     = licenses.artistic2;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ sgo ];
+  };
+}