2020-12-02 01:01:50 +01:00
|
|
|
with import <nixpkgs> {};
|
|
|
|
|
|
|
|
let
|
|
|
|
ocamlPackages = pkgs.recurseIntoAttrs pkgs.ocamlPackages_latest;
|
|
|
|
ocamlVersion = (builtins.parseDrvName ocamlPackages.ocaml.name).version;
|
|
|
|
findlibSiteLib = "${ocamlPackages.findlib}/lib/ocaml/${ocamlVersion}/site-lib";
|
|
|
|
ocamlInit = pkgs.writeText "ocamlinit" ''
|
|
|
|
let () =
|
|
|
|
try Topdirs.dir_directory "${findlibSiteLib}"
|
|
|
|
with Not_found -> ()
|
|
|
|
;;
|
|
|
|
|
|
|
|
#use "topfind";;
|
|
|
|
#thread;;
|
|
|
|
#require "core";;
|
|
|
|
#require "core.syntax";;
|
|
|
|
'';
|
|
|
|
in
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
name = "rwo-shell";
|
|
|
|
src = null;
|
|
|
|
buildInputs = with ocamlPackages;
|
|
|
|
[ ocaml
|
|
|
|
core
|
|
|
|
core_extended
|
|
|
|
findlib
|
|
|
|
utop
|
2020-12-06 01:10:02 +01:00
|
|
|
dune
|
2020-12-02 01:01:50 +01:00
|
|
|
];
|
|
|
|
shellHook = ''
|
|
|
|
alias utop="utop -init ${ocamlInit}"
|
|
|
|
alias ocaml="ocaml -init ${ocamlInit}"
|
|
|
|
'';
|
|
|
|
}
|