diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix index 51d0a9ed7b90..031aac03eccd 100644 --- a/pkgs/development/compilers/koka/default.nix +++ b/pkgs/development/compilers/koka/default.nix @@ -4,19 +4,25 @@ , parsec, process, regex-compat, text, time }: let - version = "2.3.6"; + version = "2.3.8"; src = fetchFromGitHub { owner = "koka-lang"; repo = "koka"; rev = "v${version}"; - sha256 = "sha256-AibS/HudJKFQZlTxGD5LfwjBawIy1xwO2Hm8qzAUP2M="; + sha256 = "sha256-4a9UwtiWq9eFpNHpcrlhYUwzXcr1EXFMjBmDFYP933U="; fetchSubmodules = true; }; kklib = stdenv.mkDerivation { pname = "kklib"; inherit version; src = "${src}/kklib"; + patches = [ ./kklib-mimalloc-macos-fix.diff ]; nativeBuildInputs = [ cmake ]; + outputs = [ "out" "dev" ]; + postInstall = '' + mkdir -p ''${!outputDev}/share/koka/v${version} + cp -a ../../kklib ''${!outputDev}/share/koka/v${version} + ''; }; inherit (pkgsHostTarget.targetPackages.stdenv) cc; runtimeDeps = [ @@ -40,7 +46,7 @@ mkDerivation rec { postInstall = '' mkdir -p $out/share/koka/v${version} cp -a lib $out/share/koka/v${version} - cp -a kklib $out/share/koka/v${version} + ln -s ${kklib.dev}/share/koka/v${version}/kklib $out/share/koka/v${version} wrapProgram "$out/bin/koka" \ --set CC "${lib.getBin cc}/bin/${cc.targetPrefix}cc" \ --prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}" diff --git a/pkgs/development/compilers/koka/kklib-mimalloc-macos-fix.diff b/pkgs/development/compilers/koka/kklib-mimalloc-macos-fix.diff new file mode 100644 index 000000000000..7d77bfd18afb --- /dev/null +++ b/pkgs/development/compilers/koka/kklib-mimalloc-macos-fix.diff @@ -0,0 +1,10 @@ +--- kklib/mimalloc/src/random.c 1969-12-31 18:00:01.000000000 -0600 ++++ kklib/mimalloc/src/random.c.new 2022-01-16 19:43:54.000000000 -0600 +@@ -195,6 +195,7 @@ + #elif defined(__APPLE__) + #include + #if defined(MAC_OS_X_VERSION_10_10) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_10 ++#include + #include + #endif + static bool os_random_buf(void* buf, size_t buf_len) {