This is an automated email from the git hooks/post-receive script. glondu pushed a commit to branch master in repository pcre-ocaml.
commit 01687ca4559adfec46aed232d762ba6df722e061 Author: Stephane Glondu <st...@glondu.net> Date: Wed Aug 3 13:44:37 2016 +0200 Imported Upstream version 7.1.3 --- API.odocl | 3 +- CHANGES.txt | 4 ++ _oasis | 13 ++-- _opam | 3 + _tags | 23 +++---- lib/META | 4 +- lib/pcre.ml | 6 +- lib/pcre.mldylib | 4 +- lib/pcre.mli | 5 +- lib/pcre.mllib | 4 +- myocamlbuild.ml | 88 ++++++++++++++----------- setup.ml | 191 ++++++++++++++++++++++++++++++++----------------------- 12 files changed, 204 insertions(+), 144 deletions(-) diff --git a/API.odocl b/API.odocl index 5ae3091..bbedec7 100644 --- a/API.odocl +++ b/API.odocl @@ -1,5 +1,4 @@ # OASIS_START -# DO NOT EDIT (digest: 1fccac817a4a90d09645de26a4001bb1) -lib/Pcre_compat +# DO NOT EDIT (digest: 0737cd5b0b209ea0a68006ea5f0cea6f) lib/Pcre # OASIS_STOP diff --git a/CHANGES.txt b/CHANGES.txt index a31be79..7e6efaa 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +2014-12-02: Fixed a limit handling bug in the full_split function. + + Thanks to Rudi Grinberg <rudi.grinb...@gmail.com> for the report! + 2014-10-23: Fixed string handling for new OCaml version 4.02 (String/Bytes modules). Requires new findlib version (>= 1.5). diff --git a/_oasis b/_oasis index 75a8410..7298173 100644 --- a/_oasis +++ b/_oasis @@ -1,6 +1,6 @@ OASISFormat: 0.4 Name: pcre-ocaml -Version: 7.1.2 +Version: 7.1.3 Synopsis: pcre-ocaml - bindings to the Perl Compatibility Regular Expressions library Description: pcre-ocaml offers library functions for string pattern matching and substitution, similar to the functionality offered by the Perl language. Authors: Markus Mottl <markus.mo...@gmail.com> @@ -24,11 +24,12 @@ Flag strict Default: true Library pcre - Path: lib - FindlibName: pcre - Modules: Pcre_compat, Pcre - CSources: pcre_stubs.c - BuildDepends: bytes + Path: lib + FindlibName: pcre + Modules: Pcre + InternalModules: Pcre_compat + CSources: pcre_stubs.c + BuildDepends: bytes CCOpt: -g -O2 -fPIC -DPIC if flag(strict) && ccomp_type(cc) CCOpt+: -Wall -pedantic -Wextra -Wunused -Wno-long-long diff --git a/_opam b/_opam new file mode 100644 index 0000000..fc967af --- /dev/null +++ b/_opam @@ -0,0 +1,3 @@ +depends: [ + "conf-libpcre" +] diff --git a/_tags b/_tags index 137110c..6d8e4b3 100644 --- a/_tags +++ b/_tags @@ -1,8 +1,9 @@ # OASIS_START -# DO NOT EDIT (digest: 7921ee7e2f586699a2e96170dbcd2955) +# DO NOT EDIT (digest: e8ea7a0cb697db9a87da65aed9094cf2) # Ignore VCS directories, you can use the same kind of rule outside # OASIS_START/STOP if you want to exclude directories that contains # useless stuff for the build process +true: annot, bin_annot <**/.svn>: -traverse <**/.svn>: not_hygienic ".bzr": -traverse @@ -15,31 +16,31 @@ "_darcs": not_hygienic # Library pcre "lib/pcre.cmxs": use_pcre -<lib/*.ml{,i}>: oasis_library_pcre_ccopt +<lib/*.ml{,i,y}>: oasis_library_pcre_ccopt "lib/pcre_stubs.c": oasis_library_pcre_ccopt <lib/pcre.{cma,cmxa}>: use_libpcre_stubs -<lib/*.ml{,i}>: pkg_bytes +<lib/*.ml{,i,y}>: pkg_bytes "lib/pcre_stubs.c": pkg_bytes # Executable cloc <examples/cloc/cloc.{native,byte}>: pkg_bytes <examples/cloc/cloc.{native,byte}>: use_pcre -<examples/cloc/*.ml{,i}>: pkg_bytes -<examples/cloc/*.ml{,i}>: use_pcre +<examples/cloc/*.ml{,i,y}>: pkg_bytes +<examples/cloc/*.ml{,i,y}>: use_pcre # Executable count_hash <examples/count_hash/count_hash.{native,byte}>: pkg_bytes <examples/count_hash/count_hash.{native,byte}>: use_pcre -<examples/count_hash/*.ml{,i}>: pkg_bytes -<examples/count_hash/*.ml{,i}>: use_pcre +<examples/count_hash/*.ml{,i,y}>: pkg_bytes +<examples/count_hash/*.ml{,i,y}>: use_pcre # Executable pcregrep <examples/pcregrep/pcregrep.{native,byte}>: pkg_bytes <examples/pcregrep/pcregrep.{native,byte}>: use_pcre -<examples/pcregrep/*.ml{,i}>: pkg_bytes -<examples/pcregrep/*.ml{,i}>: use_pcre +<examples/pcregrep/*.ml{,i,y}>: pkg_bytes +<examples/pcregrep/*.ml{,i,y}>: use_pcre # Executable subst <examples/subst/subst.{native,byte}>: pkg_bytes <examples/subst/subst.{native,byte}>: use_pcre -<examples/subst/*.ml{,i}>: pkg_bytes -<examples/subst/*.ml{,i}>: use_pcre +<examples/subst/*.ml{,i,y}>: pkg_bytes +<examples/subst/*.ml{,i,y}>: use_pcre # OASIS_STOP true: -traverse diff --git a/lib/META b/lib/META index 5972e00..92d5552 100644 --- a/lib/META +++ b/lib/META @@ -1,6 +1,6 @@ # OASIS_START -# DO NOT EDIT (digest: e848c4c6cf4b09451ff44023a647fd1a) -version = "7.1.2" +# DO NOT EDIT (digest: 59b2a55440f8d979082e531fcc6a6623) +version = "7.1.3" description = "pcre-ocaml - bindings to the Perl Compatibility Regular Expressions library" requires = "bytes" diff --git a/lib/pcre.ml b/lib/pcre.ml index 56ddc51..143d7a7 100644 --- a/lib/pcre.ml +++ b/lib/pcre.ml @@ -922,6 +922,10 @@ type split_result = Text of string | Group of int * string | NoGroup +let rec strip_all_empty_full = function + | Delim _ :: rest -> strip_all_empty_full rest + | l -> l + let full_split ?(iflags = 0) ?flags ?(rex = def_rex) ?pat ?(pos = 0) ?(max = 0) ?callout subj = let rex = match pat with Some str -> regexp str | _ -> rex in @@ -1026,7 +1030,7 @@ let full_split ?(iflags = 0) ?flags ?(rex = def_rex) ?pat Text (string_unsafe_sub subj pos (first - pos)) :: strs in loop (handle_subgroups (delim :: pre_strs)) (cnt - 1) last false in - List.rev (loop [] (max - 1) pos true) + List.rev (strip_all_empty_full (loop [] (max - 1) pos true)) (* Additional convenience functions useful in combination with this library *) diff --git a/lib/pcre.mldylib b/lib/pcre.mldylib index c3a8c6d..4cbdc74 100644 --- a/lib/pcre.mldylib +++ b/lib/pcre.mldylib @@ -1,5 +1,5 @@ # OASIS_START -# DO NOT EDIT (digest: 59510830006151db103f26a9abea6342) -Pcre_compat +# DO NOT EDIT (digest: f62d770404ce2a717ee34b73cd16eb4d) Pcre +Pcre_compat # OASIS_STOP diff --git a/lib/pcre.mli b/lib/pcre.mli index 89d7367..7f9fa44 100644 --- a/lib/pcre.mli +++ b/lib/pcre.mli @@ -855,9 +855,8 @@ val asplit : {!Pcre.split} but @return an array instead of a list. *) (** Result of a {!Pcre.full_split} *) -type split_result = Text of string (** Text part of splitted string *) - | Delim of string (** Delimiter part of splitted - string *) +type split_result = Text of string (** Text part of split string *) + | Delim of string (** Delimiter part of split string *) | Group of int * string (** Subgroup of matched delimiter (subgroup_nr, subgroup_str) *) | NoGroup (** Unmatched subgroup *) diff --git a/lib/pcre.mllib b/lib/pcre.mllib index c3a8c6d..4cbdc74 100644 --- a/lib/pcre.mllib +++ b/lib/pcre.mllib @@ -1,5 +1,5 @@ # OASIS_START -# DO NOT EDIT (digest: 59510830006151db103f26a9abea6342) -Pcre_compat +# DO NOT EDIT (digest: f62d770404ce2a717ee34b73cd16eb4d) Pcre +Pcre_compat # OASIS_STOP diff --git a/myocamlbuild.ml b/myocamlbuild.ml index 05943b3..94937a5 100644 --- a/myocamlbuild.ml +++ b/myocamlbuild.ml @@ -1,5 +1,5 @@ (* OASIS_START *) -(* DO NOT EDIT (digest: 13e9e48573d286dcfcbe652d6113e136) *) +(* DO NOT EDIT (digest: 0a2bbc688e326d6a5236c3ef397baf42) *) module OASISGettext = struct (* # 22 "src/oasis/OASISGettext.ml" *) @@ -249,6 +249,9 @@ module MyOCamlbuildFindlib = struct *) open Ocamlbuild_plugin + type conf = + { no_automatic_syntax: bool; + } (* these functions are not really officially exported *) let run_and_read = @@ -315,7 +318,7 @@ module MyOCamlbuildFindlib = struct (* This lists all supported packages. *) let find_packages () = - List.map before_space (split_nl & run_and_read "ocamlfind list") + List.map before_space (split_nl & run_and_read (exec_from_conf "ocamlfind" ^ " list")) (* Mock to list available syntaxes. *) @@ -338,7 +341,7 @@ module MyOCamlbuildFindlib = struct ] - let dispatch = + let dispatch conf = function | After_options -> (* By using Before_options one let command line options have an higher @@ -357,31 +360,39 @@ module MyOCamlbuildFindlib = struct * -linkpkg *) flag ["ocaml"; "link"; "program"] & A"-linkpkg"; - (* For each ocamlfind package one inject the -package option when - * compiling, computing dependencies, generating documentation and - * linking. *) - List.iter - begin fun pkg -> - let base_args = [A"-package"; A pkg] in - (* TODO: consider how to really choose camlp4o or camlp4r. *) - let syn_args = [A"-syntax"; A "camlp4o"] in - let args = - (* Heuristic to identify syntax extensions: whether they end in - ".syntax"; some might not. - *) - if Filename.check_suffix pkg "syntax" || - List.mem pkg well_known_syntax then - syn_args @ base_args - else - base_args - in - flag ["ocaml"; "compile"; "pkg_"^pkg] & S args; - flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S args; - flag ["ocaml"; "doc"; "pkg_"^pkg] & S args; - flag ["ocaml"; "link"; "pkg_"^pkg] & S base_args; - flag ["ocaml"; "infer_interface"; "pkg_"^pkg] & S args; - end - (find_packages ()); + if not (conf.no_automatic_syntax) then begin + (* For each ocamlfind package one inject the -package option when + * compiling, computing dependencies, generating documentation and + * linking. *) + List.iter + begin fun pkg -> + let base_args = [A"-package"; A pkg] in + (* TODO: consider how to really choose camlp4o or camlp4r. *) + let syn_args = [A"-syntax"; A "camlp4o"] in + let (args, pargs) = + (* Heuristic to identify syntax extensions: whether they end in + ".syntax"; some might not. + *) + if Filename.check_suffix pkg "syntax" || + List.mem pkg well_known_syntax then + (syn_args @ base_args, syn_args) + else + (base_args, []) + in + flag ["ocaml"; "compile"; "pkg_"^pkg] & S args; + flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S args; + flag ["ocaml"; "doc"; "pkg_"^pkg] & S args; + flag ["ocaml"; "link"; "pkg_"^pkg] & S base_args; + flag ["ocaml"; "infer_interface"; "pkg_"^pkg] & S args; + + (* TODO: Check if this is allowed for OCaml < 3.12.1 *) + flag ["ocaml"; "compile"; "package("^pkg^")"] & S pargs; + flag ["ocaml"; "ocamldep"; "package("^pkg^")"] & S pargs; + flag ["ocaml"; "doc"; "package("^pkg^")"] & S pargs; + flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs; + end + (find_packages ()); + end; (* Like -package but for extensions syntax. Morover -syntax is useless * when linking. *) @@ -546,12 +557,13 @@ module MyOCamlbuildBase = struct (* When ocaml link something that use the C library, then one need that file to be up to date. + This holds both for programs and for libraries. *) - dep ["link"; "ocaml"; "program"; tag_libstubs lib] - [dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)]; + dep ["link"; "ocaml"; tag_libstubs lib] + [dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)]; - dep ["compile"; "ocaml"; "program"; tag_libstubs lib] - [dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)]; + dep ["compile"; "ocaml"; tag_libstubs lib] + [dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)]; (* TODO: be more specific about what depends on headers *) (* Depends on .h files *) @@ -580,18 +592,18 @@ module MyOCamlbuildBase = struct () - let dispatch_default t = + let dispatch_default conf t = dispatch_combine [ dispatch t; - MyOCamlbuildFindlib.dispatch; + MyOCamlbuildFindlib.dispatch conf; ] end -# 594 "myocamlbuild.ml" +# 606 "myocamlbuild.ml" open Ocamlbuild_plugin;; let package_default = { @@ -649,9 +661,11 @@ let package_default = } ;; -let dispatch_default = MyOCamlbuildBase.dispatch_default package_default;; +let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false} + +let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;; -# 655 "myocamlbuild.ml" +# 669 "myocamlbuild.ml" (* OASIS_STOP *) let () = diff --git a/setup.ml b/setup.ml index 0b57ae9..e91016b 100644 --- a/setup.ml +++ b/setup.ml @@ -1,9 +1,9 @@ (* setup.ml generated for the first time by OASIS v0.3.0 *) (* OASIS_START *) -(* DO NOT EDIT (digest: 3bfa908443c327c2931963d6d884f765) *) +(* DO NOT EDIT (digest: 294a82317d4c55cce3f6c2ba6d1f39bd) *) (* - Regenerated by OASIS v0.4.4 + Regenerated by OASIS v0.4.5 Visit http://oasis.forge.ocamlcore.org for more information and documentation about functions used in this file. *) @@ -242,11 +242,9 @@ module OASISString = struct let replace_chars f s = - let buf = String.make (String.length s) 'X' in - for i = 0 to String.length s - 1 do - buf.[i] <- f s.[i] - done; - buf + let buf = Buffer.create (String.length s) in + String.iter (fun c -> Buffer.add_char buf (f c)) s; + Buffer.contents buf end @@ -1729,6 +1727,13 @@ module OASISFeatures = struct (fun () -> s_ "Allows the OASIS section comments and digest to be omitted in \ generated files.") + + let no_automatic_syntax = + create "no_automatic_syntax" alpha + (fun () -> + s_ "Disable the automatic inclusion of -syntax camlp4o for packages \ + that matches the internal heuristic (if a dependency ends with \ + a .syntax or is a well known syntax).") end module OASISUnixPath = struct @@ -2099,16 +2104,6 @@ module OASISLibrary = struct lst in - (* The headers that should be compiled along *) - let headers = - if lib.lib_pack then - [] - else - find_modules - lib.lib_modules - "cmi" - in - (* The .cmx that be compiled along *) let cmxs = let should_be_built = @@ -2134,12 +2129,32 @@ module OASISLibrary = struct [] in + (* The headers and annot/cmt files that should be compiled along *) + let headers = + let sufx = + if lib.lib_pack + then [".cmti"; ".cmt"; ".annot"] + else [".cmi"; ".cmti"; ".cmt"; ".annot"] + in + List.map + begin + List.fold_left + begin fun accu s -> + let dot = String.rindex s '.' in + let base = String.sub s 0 dot in + List.map ((^) base) sufx @ accu + end + [] + end + (find_modules lib.lib_modules "cmi") + in + (* Compute what libraries should be built *) let acc_nopath = (* Add the packed header file if required *) let add_pack_header acc = if lib.lib_pack then - [cs.cs_name^".cmi"] :: acc + [cs.cs_name^".cmi"; cs.cs_name^".cmti"; cs.cs_name^".cmt"] :: acc else acc in @@ -2499,13 +2514,13 @@ module OASISFindlib = struct in let library_name_of_findlib_name = - Lazy.lazy_from_fun - (fun () -> - (* Revert findlib_name_of_library_name. *) - MapString.fold - (fun k v mp -> MapString.add v k mp) - fndlb_name_of_lib_name - MapString.empty) + lazy begin + (* Revert findlib_name_of_library_name. *) + MapString.fold + (fun k v mp -> MapString.add v k mp) + fndlb_name_of_lib_name + MapString.empty + end in let library_name_of_findlib_name fndlb_nm = try @@ -2875,7 +2890,7 @@ module OASISFileUtil = struct end -# 2878 "setup.ml" +# 2893 "setup.ml" module BaseEnvLight = struct (* # 22 "src/base/BaseEnvLight.ml" *) @@ -2980,7 +2995,7 @@ module BaseEnvLight = struct end -# 2983 "setup.ml" +# 2998 "setup.ml" module BaseContext = struct (* # 22 "src/base/BaseContext.ml" *) @@ -5391,7 +5406,7 @@ module BaseSetup = struct end -# 5394 "setup.ml" +# 5409 "setup.ml" module InternalConfigurePlugin = struct (* # 22 "src/plugins/internal/InternalConfigurePlugin.ml" *) @@ -5827,6 +5842,17 @@ module InternalInstallPlugin = struct lst in + let make_fnames modul sufx = + List.fold_right + begin fun sufx accu -> + (String.capitalize modul ^ sufx) :: + (String.uncapitalize modul ^ sufx) :: + accu + end + sufx + [] + in + (** Install all libraries *) let install_libs pkg = @@ -5847,27 +5873,29 @@ module InternalInstallPlugin = struct OASISHostPath.of_unix bs.bs_path in List.fold_left - (fun acc modul -> - try - List.find - OASISFileUtil.file_exists_case - (List.map - (Filename.concat path) - [modul^".mli"; - modul^".ml"; - String.uncapitalize modul^".mli"; - String.capitalize modul^".mli"; - String.uncapitalize modul^".ml"; - String.capitalize modul^".ml"]) - :: acc - with Not_found -> - begin - warning - (f_ "Cannot find source header for module %s \ - in library %s") - modul cs.cs_name; - acc - end) + begin fun acc modul -> + begin + try + [List.find + OASISFileUtil.file_exists_case + (List.map + (Filename.concat path) + (make_fnames modul [".mli"; ".ml"]))] + with Not_found -> + warning + (f_ "Cannot find source header for module %s \ + in library %s") + modul cs.cs_name; + [] + end + @ + List.filter + OASISFileUtil.file_exists_case + (List.map + (Filename.concat path) + (make_fnames modul [".annot";".cmti";".cmt"])) + @ acc + end acc lib.lib_modules in @@ -5915,27 +5943,29 @@ module InternalInstallPlugin = struct OASISHostPath.of_unix bs.bs_path in List.fold_left - (fun acc modul -> - try - List.find - OASISFileUtil.file_exists_case - (List.map - (Filename.concat path) - [modul^".mli"; - modul^".ml"; - String.uncapitalize modul^".mli"; - String.capitalize modul^".mli"; - String.uncapitalize modul^".ml"; - String.capitalize modul^".ml"]) - :: acc - with Not_found -> - begin - warning - (f_ "Cannot find source header for module %s \ - in object %s") - modul cs.cs_name; - acc - end) + begin fun acc modul -> + begin + try + [List.find + OASISFileUtil.file_exists_case + (List.map + (Filename.concat path) + (make_fnames modul [".mli"; ".ml"]))] + with Not_found -> + warning + (f_ "Cannot find source header for module %s \ + in object %s") + modul cs.cs_name; + [] + end + @ + List.filter + OASISFileUtil.file_exists_case + (List.map + (Filename.concat path) + (make_fnames modul [".annot";".cmti";".cmt"])) + @ acc + end acc obj.obj_modules in @@ -6240,7 +6270,7 @@ module InternalInstallPlugin = struct end -# 6243 "setup.ml" +# 6273 "setup.ml" module OCamlbuildCommon = struct (* # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" *) @@ -6298,6 +6328,11 @@ module OCamlbuildCommon = struct else []; + if bool_of_string (tests ()) then + ["-tag"; "tests"] + else + []; + if bool_of_string (profile ()) then ["-tag"; "profile"] else @@ -6613,7 +6648,7 @@ module OCamlbuildDocPlugin = struct end -# 6616 "setup.ml" +# 6651 "setup.ml" open OASISTypes;; let setup_t = @@ -6648,7 +6683,7 @@ let setup_t = alpha_features = []; beta_features = []; name = "pcre-ocaml"; - version = "7.1.2"; + version = "7.1.3"; license = OASISLicense.DEP5License (OASISLicense.DEP5Unit @@ -6760,9 +6795,9 @@ let setup_t = bs_nativeopt = [(OASISExpr.EBool true, [])] }, { - lib_modules = ["Pcre_compat"; "Pcre"]; + lib_modules = ["Pcre"]; lib_pack = false; - lib_internal_modules = []; + lib_internal_modules = ["Pcre_compat"]; lib_findlib_parent = None; lib_findlib_name = Some "pcre"; lib_findlib_containers = [] @@ -6946,8 +6981,8 @@ let setup_t = plugin_data = [] }; oasis_fn = Some "_oasis"; - oasis_version = "0.4.4"; - oasis_digest = Some "��\145�`\016�\015\151d����\148|"; + oasis_version = "0.4.5"; + oasis_digest = Some "��e�iA�\1546�\001�\007��6"; oasis_exec = None; oasis_setup_args = []; setup_update = false @@ -6955,7 +6990,7 @@ let setup_t = let setup () = BaseSetup.setup setup_t;; -# 6959 "setup.ml" +# 6994 "setup.ml" (* OASIS_STOP *) let pcre_config = -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/pcre-ocaml.git _______________________________________________ Pkg-ocaml-maint-commits mailing list Pkg-ocaml-maint-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits