aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2019-07-03 12:54:37 +0200
committerEmilio Jesus Gallego Arias2019-07-08 13:18:47 +0200
commitdda7d129dba6c90d642cd99cd989e5f13c0eb4b4 (patch)
tree23fdc06a01b17e81c0c03831e675bcc2b0bb94e7 /lib
parent437063a0c745094c5693d1c5abba46ce375d69c6 (diff)
[core] [api] Support OCaml 4.08
The changes are large due to `Pervasives` deprecation: - the `Pervasives` module has been deprecated in favor of `Stdlib`, we have opted for introducing a few wrapping functions in `Util` and just unqualified the rest of occurrences. We avoid the shims as in the previous attempt. - a bug regarding partial application have been fixed. - some formatting functions have been deprecated, but previous versions don't include a replacement, thus the warning has been disabled. We may want to clean up things a bit more, in particular w.r.t. modules once we can move to OCaml 4.07 as the minimum required version. Note that there is a clash between 4.08.0 modules `Option` and `Int` and Coq's ones. It is not clear if we should resolve that clash or not, see PR #10469 for more discussion. On the good side, OCaml 4.08.0 does provide a few interesting functionalities, including nice new warnings useful for devs.
Diffstat (limited to 'lib')
-rw-r--r--lib/future.ml2
-rw-r--r--lib/pp.ml4
-rw-r--r--lib/util.ml7
-rw-r--r--lib/util.mli7
4 files changed, 17 insertions, 3 deletions
diff --git a/lib/future.ml b/lib/future.ml
index f6e9cee140..01fb7d0297 100644
--- a/lib/future.ml
+++ b/lib/future.ml
@@ -68,7 +68,7 @@ and 'a computation = 'a comput ref
let unnamed = "unnamed"
let create ?(name=unnamed) ?(uuid=UUID.fresh ()) f x =
- ref (Ongoing (name, CEphemeron.create (uuid, f, Pervasives.ref x)))
+ ref (Ongoing (name, CEphemeron.create (uuid, f, ref x)))
let get x =
match !x with
| Finished v -> unnamed, UUID.invalid, id, ref (Val v)
diff --git a/lib/pp.ml b/lib/pp.ml
index 542e5f6ecd..2f780677d9 100644
--- a/lib/pp.ml
+++ b/lib/pp.ml
@@ -197,9 +197,9 @@ let pp_with ft pp =
| Ppcmd_print_break(m,n) -> pp_print_break ft m n
| Ppcmd_force_newline -> pp_force_newline ft ()
| Ppcmd_comment coms -> List.iter (pr_com ft) coms
- | Ppcmd_tag(tag, s) -> pp_open_tag ft tag;
+ | Ppcmd_tag(tag, s) -> pp_open_tag ft tag [@warning "-3"];
pp_cmd s;
- pp_close_tag ft ()
+ pp_close_tag ft () [@warning "-3"]
in
try pp_cmd pp
with reraise ->
diff --git a/lib/util.ml b/lib/util.ml
index bac06b5701..61678f7669 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -8,6 +8,13 @@
(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
+type 'a pervasives_ref = 'a ref
+let pervasives_ref = ref
+let pervasives_compare = compare
+let (!) = (!)
+let (+) = (+)
+let (-) = (-)
+
(* Mapping under pairs *)
let on_fst f (a,b) = (f a,b)
diff --git a/lib/util.mli b/lib/util.mli
index 8ccb4b3f08..b6347126e0 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -8,6 +8,13 @@
(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
+type 'a pervasives_ref = 'a ref
+val pervasives_ref : 'a -> 'a ref
+val pervasives_compare : 'a -> 'a -> int
+val (!) : 'a ref -> 'a
+val (+) : int -> int -> int
+val (-) : int -> int -> int
+
(** This module contains numerous utility functions on strings, lists,
arrays, etc. *)