diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix new file mode 100644 index 000000000000..087b0ad1153b --- /dev/null +++ b/pkgs/development/compilers/koka/default.nix @@ -0,0 +1,54 @@ +{ stdenv, buildPackages, cmake, gnumake, makeWrapper, mkDerivation, fetchFromGitHub +, alex, array, base, bytestring, cond, containers, directory, extra +, filepath, haskeline, hpack, hspec, hspec-core, json, lib, mtl +, parsec, process, regex-compat, text, time }: + +let + version = "2.1.1"; + src = fetchFromGitHub { + owner = "koka-lang"; + repo = "koka"; + rev = "v${version}"; + sha256 = "sha256-cq+dljfTKJh5NgwQfxQQP9jRcg2PQxxBVEgQ59ll36o="; + fetchSubmodules = true; + }; + kklib = stdenv.mkDerivation { + pname = "kklib"; + inherit version; + src = "${src}/kklib"; + nativeBuildInputs = [ cmake ]; + }; + runtimeDeps = [ + buildPackages.stdenv.cc + buildPackages.stdenv.cc.bintools.bintools + gnumake + cmake + ]; +in +mkDerivation rec { + pname = "koka"; + inherit version src; + isLibrary = false; + isExecutable = true; + libraryToolDepends = [ hpack ]; + executableHaskellDepends = [ + array base bytestring cond containers directory haskeline mtl + parsec process text time kklib + ]; + executableToolDepends = [ alex makeWrapper ]; + postInstall = '' + mkdir -p $out/share/koka/v${version} + cp -a lib $out/share/koka/v${version} + cp -a contrib $out/share/koka/v${version} + cp -a kklib $out/share/koka/v${version} + wrapProgram "$out/bin/koka" \ + --set CC "${lib.getBin buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" \ + --prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}" + ''; + doCheck = false; + prePatch = "hpack"; + description = "Koka language compiler and interpreter"; + homepage = "https://github.com/koka-lang/koka"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ siraben sternenseemann ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4a391a2710f8..e0f37eda9df3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10742,6 +10742,8 @@ in knightos-z80e = callPackage ../development/tools/knightos/z80e { }; + koka = haskellPackages.callPackage ../development/compilers/koka { }; + kotlin = callPackage ../development/compilers/kotlin { }; lazarus = callPackage ../development/compilers/fpc/lazarus.nix {