1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 perl,
6}:
7
8stdenv.mkDerivation rec {
9 pname = "moarvm";
10 version = "2025.06";
11
12 # nixpkgs-update: no auto update
13 src = fetchFromGitHub {
14 owner = "moarvm";
15 repo = "moarvm";
16 rev = version;
17 hash = "sha256-QtJ8cLAbsFJ26wkfQCbIMVU1ArWlAXjsQ/RJbQ0wRNo=";
18 fetchSubmodules = true;
19 };
20
21 postPatch = ''
22 patchShebangs .
23 ''
24 + lib.optionalString stdenv.hostPlatform.isDarwin ''
25 substituteInPlace Configure.pl \
26 --replace '`/usr/bin/arch`' '"${stdenv.hostPlatform.darwinArch}"' \
27 --replace '/usr/bin/arch' "$(type -P true)" \
28 --replace '/usr/' '/nope/'
29 substituteInPlace 3rdparty/dyncall/configure \
30 --replace '`sw_vers -productVersion`' '"11.0"'
31 '';
32
33 buildInputs = [ perl ];
34 doCheck = false; # MoarVM does not come with its own test suite
35
36 configureScript = "${perl}/bin/perl ./Configure.pl";
37
38 meta = {
39 description = "VM with adaptive optimization and JIT compilation, built for Rakudo";
40 homepage = "https://moarvm.org";
41 license = lib.licenses.artistic2;
42 maintainers = with lib.maintainers; [
43 thoughtpolice
44 sgo
45 prince213
46 ];
47 mainProgram = "moar";
48 platforms = lib.platforms.unix;
49 };
50}