diff --git a/pkgs/development/compilers/opa/default.nix b/pkgs/development/compilers/opa/default.nix index 5e648c9de4a..8e70ca8dac2 100644 --- a/pkgs/development/compilers/opa/default.nix +++ b/pkgs/development/compilers/opa/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { sha256 = "1qs91rq9xrafv2mf2v415k8lv91ab3ycz0xkpjh1mng5ca3pjlf3"; }; - patches = [ ./ocaml-4.03.patch ]; + patches = [ ./ocaml-4.03.patch ./ocaml-4.04.patch ]; # Paths so the opa compiler code generation will use the same programs as were # used to build opa. diff --git a/pkgs/development/compilers/opa/ocaml-4.04.patch b/pkgs/development/compilers/opa/ocaml-4.04.patch new file mode 100644 index 00000000000..45cae411fb3 --- /dev/null +++ b/pkgs/development/compilers/opa/ocaml-4.04.patch @@ -0,0 +1,75 @@ +diff --git a/compiler/libbsl/bslLib.ml b/compiler/libbsl/bslLib.ml +index b9f75bd1..171af065 100644 +--- a/compiler/libbsl/bslLib.ml ++++ b/compiler/libbsl/bslLib.ml +@@ -726,7 +726,7 @@ struct + let root elt = !(elt.root) + let elt_name elt = elt.name + let elts e = e +- let children = List.map (fun e -> e.name, e) ++ let children m = List.map (fun e -> e.name, e) m + let is_root e = Path.is_root e.pwd + + let parent e = +diff --git a/compiler/passes/surfaceAstDependencies.ml b/compiler/passes/surfaceAstDependencies.ml +index f4354a3f..81253d32 100644 +--- a/compiler/passes/surfaceAstDependencies.ml ++++ b/compiler/passes/surfaceAstDependencies.ml +@@ -66,7 +66,6 @@ open SurfaceAst + + (* shorthands *) + module SAH = SurfaceAstHelper +-module C = SurfaceAstCons.ExprIdentCons + module D = SurfaceAstDecons + module S = SurfaceAst + +diff --git a/compiler/passes/surfaceAstPasses.ml b/compiler/passes/surfaceAstPasses.ml +index 10edf5cb..00de59fa 100644 +--- a/compiler/passes/surfaceAstPasses.ml ++++ b/compiler/passes/surfaceAstPasses.ml +@@ -25,7 +25,6 @@ open SurfaceAstPassesTypes + + (* alias *) + module C = SurfaceAstCons.ExprIdentCons +-module CS = SurfaceAstCons.StringCons + + + +diff --git a/compiler/qmlslicer/qmlSimpleSlicer.ml b/compiler/qmlslicer/qmlSimpleSlicer.ml +index 2eebd96b..04ce77c8 100644 +--- a/compiler/qmlslicer/qmlSimpleSlicer.ml ++++ b/compiler/qmlslicer/qmlSimpleSlicer.ml +@@ -17,7 +17,6 @@ + *) + module Format = Base.Format + module List = Base.List +-module String = Base.String + module Q = QmlAst + module Package = ObjectFiles.Package + +diff --git a/ocamllib/libbase/baseObj.mli b/ocamllib/libbase/baseObj.mli +index da2d9736..82d72963 100644 +--- a/ocamllib/libbase/baseObj.mli ++++ b/ocamllib/libbase/baseObj.mli +@@ -21,7 +21,7 @@ type t = Obj.t + external repr : 'a -> t = "%identity" + external obj : t -> 'a = "%identity" + external magic : 'a -> 'b = "%identity" +-external is_block : t -> bool = "caml_obj_is_block" ++val [@inline always] is_block : t -> bool + external is_int : t -> bool = "%obj_is_int" + external tag : t -> int = "caml_obj_tag" + external set_tag : t -> int -> unit = "caml_obj_set_tag" +diff --git a/ocamllib/libbase/baseString.ml b/ocamllib/libbase/baseString.ml +index 640ce2fa..6931c608 100644 +--- a/ocamllib/libbase/baseString.ml ++++ b/ocamllib/libbase/baseString.ml +@@ -20,7 +20,7 @@ + (* depends *) + module Char = BaseChar + +-include Bytes ++include String + + let compare_int (a:int) b = Pervasives.compare a b + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 72fdc8cbbc4..a6f8762abcb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10827,7 +10827,7 @@ in ocsigen-i18n = callPackage ../development/tools/ocaml/ocsigen-i18n { }; opa = callPackage ../development/compilers/opa { - ocamlPackages = ocaml-ng.ocamlPackages_4_03; + ocamlPackages = ocaml-ng.ocamlPackages_4_04; }; opaline = callPackage ../development/tools/ocaml/opaline { };