2021-01-23 13:15:07 +00:00
|
|
|
{ lib, stdenv, fetchFromGitHub, which, ocamlPackages }:
|
2014-10-28 16:21:55 +00:00
|
|
|
|
2018-04-23 08:16:03 +01:00
|
|
|
let version = "5.0"; in
|
2014-10-28 16:21:55 +00:00
|
|
|
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
|
2019-08-13 22:52:01 +01:00
|
|
|
pname = "eff";
|
|
|
|
inherit version;
|
2014-10-28 16:21:55 +00:00
|
|
|
|
2018-04-23 08:16:03 +01:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "matijapretnar";
|
|
|
|
repo = "eff";
|
|
|
|
rev = "v${version}";
|
|
|
|
sha256 = "1fslfj5d7fhj3f7kh558b8mk5wllwyq4rnhfkyd96fpy144sdcka";
|
2014-10-28 16:21:55 +00:00
|
|
|
};
|
|
|
|
|
2020-06-21 06:33:19 +01:00
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace setup.ml --replace js_of_ocaml.ocamlbuild js_of_ocaml-ocamlbuild
|
|
|
|
'';
|
|
|
|
|
2018-04-23 08:16:03 +01:00
|
|
|
buildInputs = [ which ] ++ (with ocamlPackages; [
|
|
|
|
ocaml findlib ocamlbuild menhir js_of_ocaml js_of_ocaml-ocamlbuild
|
|
|
|
]);
|
2014-10-28 16:21:55 +00:00
|
|
|
|
|
|
|
doCheck = true;
|
|
|
|
checkTarget = "test";
|
|
|
|
|
2021-01-23 13:15:07 +00:00
|
|
|
meta = with lib; {
|
2020-04-01 02:11:51 +01:00
|
|
|
homepage = "https://www.eff-lang.org";
|
2014-10-28 16:21:55 +00:00
|
|
|
description = "A functional programming language based on algebraic effects and their handlers";
|
|
|
|
longDescription = ''
|
|
|
|
Eff is a functional language with handlers of not only exceptions,
|
|
|
|
but also of other computational effects such as state or I/O. With
|
|
|
|
handlers, you can simply implement transactions, redirections,
|
|
|
|
backtracking, multi-threading, and much more...
|
|
|
|
'';
|
|
|
|
license = licenses.bsd2;
|
2018-04-23 08:16:03 +01:00
|
|
|
inherit (ocamlPackages.ocaml.meta) platforms;
|
2014-10-28 16:21:55 +00:00
|
|
|
maintainers = [ maintainers.jirkamarsik ];
|
|
|
|
};
|
|
|
|
}
|