[Pkg-ocaml-maint-commits] [utop] 01/04: New upstream version 1.19.3
Hilko Bengen
bengen at moszumanska.debian.org
Thu Sep 15 07:35:55 UTC 2016
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to branch master
in repository utop.
commit 53572f6abb8d17754f12625a85b83ab98e8e19c5
Author: Hilko Bengen <bengen at debian.org>
Date: Thu Sep 15 09:28:47 2016 +0200
New upstream version 1.19.3
---
.travis.yml | 11 +++
CHANGES.md | 5 ++
Makefile | 2 +
README.md | 2 +
_oasis | 2 +-
_tags | 2 +-
myocamlbuild.ml | 174 ++++++++++++++++++++++++++++++++++++++++--
opam | 5 +-
setup.ml | 73 ++++++++++++------
src/lib/META | 6 +-
src/lib/uTop.cppo.ml | 5 ++
src/lib/uTop_complete.cppo.ml | 24 +++++-
src/lib/uTop_main.cppo.ml | 22 +++++-
13 files changed, 289 insertions(+), 44 deletions(-)
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..7e8a190
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,11 @@
+language: c
+sudo: required
+install: wget https://raw.githubusercontent.com/ocaml/ocaml-ci-scripts/master/.travis-opam.sh
+script: bash -ex .travis-opam.sh
+env:
+ - OCAML_VERSION=4.01
+ - OCAML_VERSION=4.02
+ - OCAML_VERSION=4.03
+os:
+ - linux
+ - osx
diff --git a/CHANGES.md b/CHANGES.md
index 29c133a..df0c01a 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+1.19.3 (2016-08-15)
+-------------------
+
+* fix compatibility with 4.04.0+beta1
+
1.19.2 (2016-04-25)
-------------------
diff --git a/Makefile b/Makefile
index df0146f..247b87b 100644
--- a/Makefile
+++ b/Makefile
@@ -37,12 +37,14 @@ all: $(SETUP)
./$(SETUP) -all $(ALLFLAGS)
install: $(SETUP) setup.data
+ ocamlfind remove utop 2>/dev/null || true
./$(SETUP) -install $(INSTALLFLAGS)
uninstall: $(SETUP) setup.data
./$(SETUP) -uninstall $(UNINSTALLFLAGS)
reinstall: $(SETUP) setup.data
+ ocamlfind remove utop 2>/dev/null || true
./$(SETUP) -reinstall $(REINSTALLFLAGS)
clean: $(SETUP)
diff --git a/README.md b/README.md
index 1e35928..73fb7a0 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,8 @@ sensitive completion, colors, and more.
It integrates with the tuareg and typerex modes in Emacs.
+[](https://travis-ci.org/diml/utop)
+
Installation via opam
---------------------
diff --git a/_oasis b/_oasis
index 6447f17..bf2f918 100644
--- a/_oasis
+++ b/_oasis
@@ -5,7 +5,7 @@
OASISFormat: 0.4
OCamlVersion: >= 4.01
Name: utop
-Version: 1.19.2
+Version: 1.19.3
LicenseFile: LICENSE
License: BSD-3-clause
Authors: Jeremie Dimino
diff --git a/_tags b/_tags
index c62b7d7..f04e322 100644
--- a/_tags
+++ b/_tags
@@ -3,7 +3,7 @@
<src/**/*.ml{,i}>: cppo_V_OCAML, cppo_interact, package(compiler-libs)
<src/camlp5/**/*.ml{,i}>: use_camlp5
-<**/*.ml>: warn(-3-40)
+<**/*.ml>: warn(-3-40 at 8)
# OASIS_START
# DO NOT EDIT (digest: 0e8c977c59cd4b29b0e0ba0f7c9f1d20)
diff --git a/myocamlbuild.ml b/myocamlbuild.ml
index 05d8998..e7c7b7a 100644
--- a/myocamlbuild.ml
+++ b/myocamlbuild.ml
@@ -8,7 +8,7 @@
*)
(* OASIS_START *)
-(* DO NOT EDIT (digest: 368184321b7bf53d664ff01896f75167) *)
+(* DO NOT EDIT (digest: f68667f1e12528c7f5c9b0cee2c6ae4b) *)
module OASISGettext = struct
(* # 22 "src/oasis/OASISGettext.ml" *)
@@ -38,6 +38,166 @@ module OASISGettext = struct
end
+module OASISString = struct
+(* # 22 "src/oasis/OASISString.ml" *)
+
+
+ (** Various string utilities.
+
+ Mostly inspired by extlib and batteries ExtString and BatString libraries.
+
+ @author Sylvain Le Gall
+ *)
+
+
+ let nsplitf str f =
+ if str = "" then
+ []
+ else
+ let buf = Buffer.create 13 in
+ let lst = ref [] in
+ let push () =
+ lst := Buffer.contents buf :: !lst;
+ Buffer.clear buf
+ in
+ let str_len = String.length str in
+ for i = 0 to str_len - 1 do
+ if f str.[i] then
+ push ()
+ else
+ Buffer.add_char buf str.[i]
+ done;
+ push ();
+ List.rev !lst
+
+
+ (** [nsplit c s] Split the string [s] at char [c]. It doesn't include the
+ separator.
+ *)
+ let nsplit str c =
+ nsplitf str ((=) c)
+
+
+ let find ~what ?(offset=0) str =
+ let what_idx = ref 0 in
+ let str_idx = ref offset in
+ while !str_idx < String.length str &&
+ !what_idx < String.length what do
+ if str.[!str_idx] = what.[!what_idx] then
+ incr what_idx
+ else
+ what_idx := 0;
+ incr str_idx
+ done;
+ if !what_idx <> String.length what then
+ raise Not_found
+ else
+ !str_idx - !what_idx
+
+
+ let sub_start str len =
+ let str_len = String.length str in
+ if len >= str_len then
+ ""
+ else
+ String.sub str len (str_len - len)
+
+
+ let sub_end ?(offset=0) str len =
+ let str_len = String.length str in
+ if len >= str_len then
+ ""
+ else
+ String.sub str 0 (str_len - len)
+
+
+ let starts_with ~what ?(offset=0) str =
+ let what_idx = ref 0 in
+ let str_idx = ref offset in
+ let ok = ref true in
+ while !ok &&
+ !str_idx < String.length str &&
+ !what_idx < String.length what do
+ if str.[!str_idx] = what.[!what_idx] then
+ incr what_idx
+ else
+ ok := false;
+ incr str_idx
+ done;
+ if !what_idx = String.length what then
+ true
+ else
+ false
+
+
+ let strip_starts_with ~what str =
+ if starts_with ~what str then
+ sub_start str (String.length what)
+ else
+ raise Not_found
+
+
+ let ends_with ~what ?(offset=0) str =
+ let what_idx = ref ((String.length what) - 1) in
+ let str_idx = ref ((String.length str) - 1) in
+ let ok = ref true in
+ while !ok &&
+ offset <= !str_idx &&
+ 0 <= !what_idx do
+ if str.[!str_idx] = what.[!what_idx] then
+ decr what_idx
+ else
+ ok := false;
+ decr str_idx
+ done;
+ if !what_idx = -1 then
+ true
+ else
+ false
+
+
+ let strip_ends_with ~what str =
+ if ends_with ~what str then
+ sub_end str (String.length what)
+ else
+ raise Not_found
+
+
+ let replace_chars f s =
+ let buf = Buffer.create (String.length s) in
+ String.iter (fun c -> Buffer.add_char buf (f c)) s;
+ Buffer.contents buf
+
+ let lowercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'A' && c <= 'Z') then
+ Char.chr (Char.code c + 32)
+ else
+ c)
+
+ let uncapitalize_ascii s =
+ if s <> "" then
+ (lowercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
+
+ let uppercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'a' && c <= 'z') then
+ Char.chr (Char.code c - 32)
+ else
+ c)
+
+ let capitalize_ascii s =
+ if s <> "" then
+ (uppercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
+
+end
+
module OASISExpr = struct
(* # 22 "src/oasis/OASISExpr.ml" *)
@@ -138,7 +298,7 @@ module OASISExpr = struct
end
-# 132 "myocamlbuild.ml"
+# 292 "myocamlbuild.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)
@@ -243,7 +403,7 @@ module BaseEnvLight = struct
end
-# 237 "myocamlbuild.ml"
+# 397 "myocamlbuild.ml"
module MyOCamlbuildFindlib = struct
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
@@ -525,7 +685,7 @@ module MyOCamlbuildBase = struct
| nm, [], intf_modules ->
ocaml_lib nm;
let cmis =
- List.map (fun m -> (String.uncapitalize m) ^ ".cmi")
+ List.map (fun m -> (OASISString.uncapitalize_ascii m) ^ ".cmi")
intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^nm^".cma"] cmis
| nm, dir :: tl, intf_modules ->
@@ -538,7 +698,7 @@ module MyOCamlbuildBase = struct
["compile"; "infer_interface"; "doc"])
tl;
let cmis =
- List.map (fun m -> dir^"/"^(String.uncapitalize m)^".cmi")
+ List.map (fun m -> dir^"/"^(OASISString.uncapitalize_ascii m)^".cmi")
intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^dir^"/"^nm^".cma"]
cmis)
@@ -612,7 +772,7 @@ module MyOCamlbuildBase = struct
end
-# 606 "myocamlbuild.ml"
+# 766 "myocamlbuild.ml"
open Ocamlbuild_plugin;;
let package_default =
{
@@ -628,7 +788,7 @@ let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false}
let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;
-# 623 "myocamlbuild.ml"
+# 783 "myocamlbuild.ml"
(* OASIS_STOP *)
let () =
diff --git a/opam b/opam
index c4e8423..78b4a8c 100644
--- a/opam
+++ b/opam
@@ -6,7 +6,10 @@ homepage: "https://github.com/diml/utop"
bug-reports: "https://github.com/diml/utop/issues"
dev-repo: "git://github.com/diml/utop.git"
build: [
- ["./configure" "--prefix" prefix "--%{camlp4:enable}%-camlp4"]
+ ["./configure"
+ "--prefix" prefix
+ "--%{camlp4:enable}%-camlp4"
+ "--%{ppx_tools:enable}%-interact"]
[make]
]
install: [
diff --git a/setup.ml b/setup.ml
index 31154c6..09172c0 100644
--- a/setup.ml
+++ b/setup.ml
@@ -8,9 +8,9 @@
*)
(* OASIS_START *)
-(* DO NOT EDIT (digest: 90e07e2bd390d9f6d9b6a480cadbaa2c) *)
+(* DO NOT EDIT (digest: 8e5cfe23708be275159e82f4ad56c6c9) *)
(*
- Regenerated by OASIS v0.4.5
+ Regenerated by OASIS v0.4.6
Visit http://oasis.forge.ocamlcore.org for more information and
documentation about functions used in this file.
*)
@@ -253,6 +253,33 @@ module OASISString = struct
String.iter (fun c -> Buffer.add_char buf (f c)) s;
Buffer.contents buf
+ let lowercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'A' && c <= 'Z') then
+ Char.chr (Char.code c + 32)
+ else
+ c)
+
+ let uncapitalize_ascii s =
+ if s <> "" then
+ (lowercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
+
+ let uppercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'a' && c <= 'z') then
+ Char.chr (Char.code c - 32)
+ else
+ c)
+
+ let capitalize_ascii s =
+ if s <> "" then
+ (uppercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
end
@@ -322,19 +349,15 @@ module OASISUtils = struct
let compare_csl s1 s2 =
- String.compare (String.lowercase s1) (String.lowercase s2)
+ String.compare (OASISString.lowercase_ascii s1) (OASISString.lowercase_ascii s2)
module HashStringCsl =
Hashtbl.Make
(struct
type t = string
-
- let equal s1 s2 =
- (String.lowercase s1) = (String.lowercase s2)
-
- let hash s =
- Hashtbl.hash (String.lowercase s)
+ let equal s1 s2 = (compare_csl s1 s2) = 0
+ let hash s = Hashtbl.hash (OASISString.lowercase_ascii s)
end)
module SetStringCsl =
@@ -372,7 +395,7 @@ module OASISUtils = struct
else
buf
in
- String.lowercase buf
+ OASISString.lowercase_ascii buf
end
@@ -478,7 +501,7 @@ module PropList = struct
order = Queue.create ();
name_norm =
(if case_insensitive then
- String.lowercase
+ OASISString.lowercase_ascii
else
fun s -> s);
}
@@ -1829,13 +1852,13 @@ module OASISUnixPath = struct
let capitalize_file f =
let dir = dirname f in
let base = basename f in
- concat dir (String.capitalize base)
+ concat dir (OASISString.capitalize_ascii base)
let uncapitalize_file f =
let dir = dirname f in
let base = basename f in
- concat dir (String.uncapitalize base)
+ concat dir (OASISString.uncapitalize_ascii base)
end
@@ -2897,7 +2920,7 @@ module OASISFileUtil = struct
end
-# 2893 "setup.ml"
+# 2916 "setup.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)
@@ -3002,7 +3025,7 @@ module BaseEnvLight = struct
end
-# 2998 "setup.ml"
+# 3021 "setup.ml"
module BaseContext = struct
(* # 22 "src/base/BaseContext.ml" *)
@@ -5413,7 +5436,7 @@ module BaseSetup = struct
end
-# 5409 "setup.ml"
+# 5432 "setup.ml"
module InternalConfigurePlugin = struct
(* # 22 "src/plugins/internal/InternalConfigurePlugin.ml" *)
@@ -5852,8 +5875,8 @@ module InternalInstallPlugin = struct
let make_fnames modul sufx =
List.fold_right
begin fun sufx accu ->
- (String.capitalize modul ^ sufx) ::
- (String.uncapitalize modul ^ sufx) ::
+ (OASISString.capitalize_ascii modul ^ sufx) ::
+ (OASISString.uncapitalize_ascii modul ^ sufx) ::
accu
end
sufx
@@ -6277,7 +6300,7 @@ module InternalInstallPlugin = struct
end
-# 6273 "setup.ml"
+# 6296 "setup.ml"
module OCamlbuildCommon = struct
(* # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" *)
@@ -6655,7 +6678,7 @@ module OCamlbuildDocPlugin = struct
end
-# 6651 "setup.ml"
+# 6674 "setup.ml"
module CustomPlugin = struct
(* # 22 "src/plugins/custom/CustomPlugin.ml" *)
@@ -6803,7 +6826,7 @@ module CustomPlugin = struct
end
-# 6799 "setup.ml"
+# 6822 "setup.ml"
open OASISTypes;;
let setup_t =
@@ -7018,7 +7041,7 @@ let setup_t =
alpha_features = ["ocamlbuild_more_args"];
beta_features = [];
name = "utop";
- version = "1.19.2";
+ version = "1.19.3";
license =
OASISLicense.DEP5License
(OASISLicense.DEP5Unit
@@ -7410,8 +7433,8 @@ let setup_t =
plugin_data = []
};
oasis_fn = Some "_oasis";
- oasis_version = "0.4.5";
- oasis_digest = Some "\139\014N\240a\b\031\249\252?\189mW\239U\219";
+ oasis_version = "0.4.6";
+ oasis_digest = Some "\127i\169Qp,p\139\"u\1626-A\155\222";
oasis_exec = None;
oasis_setup_args = [];
setup_update = false
@@ -7419,7 +7442,7 @@ let setup_t =
let setup () = BaseSetup.setup setup_t;;
-# 7416 "setup.ml"
+# 7439 "setup.ml"
(* OASIS_STOP *)
let search_compiler_libs () =
diff --git a/src/lib/META b/src/lib/META
index 4cf731f..a2afd18 100644
--- a/src/lib/META
+++ b/src/lib/META
@@ -1,6 +1,6 @@
# OASIS_START
-# DO NOT EDIT (digest: 5ee7ad8b3e06661169d4cc65822e5b1f)
-version = "1.19.2"
+# DO NOT EDIT (digest: caf72eeee0d14b56758efd7d92090083)
+version = "1.19.3"
description = "utop configuration"
requires = "findlib lambda-term"
archive(byte) = "utop.cma"
@@ -9,7 +9,7 @@ archive(native) = "utop.cmxa"
archive(native, plugin) = "utop.cmxs"
exists_if = "utop.cma"
package "camlp4" (
- version = "1.19.2"
+ version = "1.19.3"
description = "Camlp4 integration"
requires = "utop camlp4"
archive(syntax, preprocessor) = "utop-camlp4.cma"
diff --git a/src/lib/uTop.cppo.ml b/src/lib/uTop.cppo.ml
index c7d69c9..230eb6d 100644
--- a/src/lib/uTop.cppo.ml
+++ b/src/lib/uTop.cppo.ml
@@ -268,6 +268,11 @@ let parse_default parse str eos_is_error =
Error ([mkloc loc],
Printf.sprintf "Error: broken invariant in parsetree: %s" s)
#endif
+#if OCAML_VERSION >= (4, 03, 0)
+ | Syntaxerr.Invalid_package_type (loc, s) ->
+ Error ([mkloc loc],
+ Printf.sprintf "Invalid package type: %s" s)
+#endif
end
| Syntaxerr.Escape_error | Parsing.Parse_error ->
Error ([mkloc (Location.curr lexbuf)],
diff --git a/src/lib/uTop_complete.cppo.ml b/src/lib/uTop_complete.cppo.ml
index bdeaeaa..939d558 100644
--- a/src/lib/uTop_complete.cppo.ml
+++ b/src/lib/uTop_complete.cppo.ml
@@ -428,6 +428,16 @@ let add_names_of_type decl acc =
acc
#endif
+#if OCAML_VERSION >= (4, 04, 0)
+let path_of_mty_alias = function
+ | Mty_alias (_, path) -> path
+ | _ -> assert false
+#elif OCAML_VERSION >= (4, 02, 0)
+let path_of_mty_alias = function
+ | Mty_alias path -> path
+ | _ -> assert false
+#endif
+
let rec names_of_module_type = function
| Mty_signature decls ->
List.fold_left
@@ -458,7 +468,8 @@ let rec names_of_module_type = function
| None -> String_set.empty
end
#if OCAML_VERSION >= (4, 02, 0)
- | Mty_alias path -> begin
+ | Mty_alias _ as mty_alias -> begin
+ let path = path_of_mty_alias mty_alias in
match lookup_env Env.find_module path !Toploop.toplevel_env with
| None -> String_set.empty
| Some { md_type = module_type } -> names_of_module_type module_type
@@ -497,7 +508,8 @@ let rec fields_of_module_type = function
| None -> String_set.empty
end
#if OCAML_VERSION >= (4, 02, 0)
- | Mty_alias path -> begin
+ | Mty_alias _ as mty_alias -> begin
+ let path = path_of_mty_alias mty_alias in
match lookup_env Env.find_module path !Toploop.toplevel_env with
| None -> String_set.empty
| Some { md_type = module_type } -> fields_of_module_type module_type
@@ -569,6 +581,10 @@ let list_global_names () =
| Env.Env_functor_arg(summary, id) ->
loop (add (Ident.name id) acc) summary
#endif
+#if OCAML_VERSION >= (4, 04, 0)
+ | Env.Env_constraints (summary, _) ->
+ loop acc summary
+#endif
| Env.Env_open(summary, path) ->
match try Some (Path_map.find path !local_names_by_path) with Not_found -> None with
| Some names ->
@@ -634,6 +650,10 @@ let list_global_fields () =
loop (add (Ident.name id) acc) summary
| Env.Env_cltype(summary, id, _) ->
loop (add (Ident.name id) acc) summary
+#if OCAML_VERSION >= (4, 04, 0)
+ | Env.Env_constraints (summary, _) ->
+ loop acc summary
+#endif
| Env.Env_open(summary, path) ->
match try Some (Path_map.find path !local_fields_by_path) with Not_found -> None with
| Some fields ->
diff --git a/src/lib/uTop_main.cppo.ml b/src/lib/uTop_main.cppo.ml
index bf134e4..5b4b923 100644
--- a/src/lib/uTop_main.cppo.ml
+++ b/src/lib/uTop_main.cppo.ml
@@ -93,6 +93,12 @@ let parse_input_multi input =
in
(result, Buffer.contents buf)
+#if OCAML_VERSION >= (4, 04, 0)
+let ast_impl_kind = Pparse.Structure
+#elif OCAML_VERSION >= (4, 02, 0)
+let ast_impl_kind = Config.ast_impl_magic_number
+#endif
+
let parse_and_check input eos_is_error =
let buf = Buffer.create 32 in
let preprocess input =
@@ -101,7 +107,7 @@ let parse_and_check input eos_is_error =
| UTop.Value (Parsetree.Ptop_def pstr) ->
begin try
let pstr = Pparse.apply_rewriters ~tool_name:"ocaml"
- Config.ast_impl_magic_number pstr in
+ ast_impl_kind pstr in
UTop.Value (Parsetree.Ptop_def pstr)
with Pparse.Error error ->
Pparse.report_error Format.str_formatter error;
@@ -136,7 +142,7 @@ let is_accept : LTerm_read_line.action -> bool = function
| Accept -> true
| action -> action == UTop.end_and_accept_current_phrase
-(* Read a phrase. If the result is a value, it is guaranteed to by a
+(* Read a phrase. If the result is a value, it is guaranteed to be a
valid phrase (i.e. typable and compilable). It also returns
warnings printed parsing. *)
class read_phrase ~term = object(self)
@@ -490,6 +496,14 @@ let rewrite_rules = [
}
]
+#if OCAML_VERSION >= (4, 04, 0)
+let lookup_type longident env =
+ let path = Env.lookup_type longident env in
+ (path, Env.find_type path env)
+#else
+let lookup_type = Env.lookup_type
+#endif
+
let rule_path rule =
match rule.path_to_rewrite with
| Some _ as x -> x
@@ -497,7 +511,7 @@ let rule_path rule =
try
let env = !Toploop.toplevel_env in
let path =
- match Env.lookup_type rule.type_to_rewrite env with
+ match lookup_type rule.type_to_rewrite env with
| path, { Types.type_kind = Types.Type_abstract
; Types.type_private = Asttypes.Public
; Types.type_manifest = Some ty
@@ -1063,7 +1077,7 @@ let typeof sid =
in
let out_sig_item =
try
- let (path, ty_decl) = Env.lookup_type id env in
+ let (path, ty_decl) = lookup_type id env in
let id = Ident.create (Path.name path) in
Some (Printtyp.tree_of_type_declaration id ty_decl Types.Trec_not)
with Not_found ->
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/utop.git
More information about the Pkg-ocaml-maint-commits
mailing list