diff options
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/rakudo')
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 ]; + }; +} |