Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ocaml-ocamlbuild for openSUSE:Factory checked in at 2022-05-05 23:07:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml-ocamlbuild (Old) and /work/SRC/openSUSE:Factory/.ocaml-ocamlbuild.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml-ocamlbuild" Thu May 5 23:07:20 2022 rev:7 rq:975186 version:0.14.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml-ocamlbuild/ocaml-ocamlbuild.changes 2021-04-29 01:39:54.430706497 +0200 +++ /work/SRC/openSUSE:Factory/.ocaml-ocamlbuild.new.1538/ocaml-ocamlbuild.changes 2022-05-05 23:08:00.797678628 +0200 @@ -1,0 +2,8 @@ +Tue Apr 26 14:48:44 UTC 2022 - Ferdinand Thiessen <r...@fthiessen.de> + +- Update to version 0.14.1 + * Add OCaml 5.00 support + * Fix race conditions when invoking ocamlbuild in parallel from + a makefile + +------------------------------------------------------------------- Old: ---- ocaml-ocamlbuild-0.14.0.tar.xz New: ---- ocaml-ocamlbuild-0.14.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml-ocamlbuild.spec ++++++ --- /var/tmp/diff_new_pack.1Wt4f2/_old 2022-05-05 23:08:01.197679127 +0200 +++ /var/tmp/diff_new_pack.1Wt4f2/_new 2022-05-05 23:08:01.201679132 +0200 @@ -1,7 +1,7 @@ # # spec file for package ocaml-ocamlbuild # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,22 +12,22 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: ocaml-ocamlbuild -Version: 0.14.0 +Version: 0.14.1 Release: 0 %{?ocaml_preserve_bytecode} Summary: Generic build tool for building OCaml library and programs -License: LGPL-2.0 +License: LGPL-2.0-only WITH OCaml-LGPL-linking-exception Group: Development/Languages/OCaml -Url: https://github.com/ocaml/ocamlbuild -Source: %{name}-%{version}.tar.xz +URL: https://opam.ocaml.org/packages/ocamlbuild +Source: %name-%version.tar.xz BuildRequires: ocaml -BuildRequires: ocaml-rpm-macros >= 20210409 -Requires: %{name}-devel = %{version} +BuildRequires: ocaml-rpm-macros >= 20220409 +Requires: %name-devel = %version %description OCamlbuild is a generic build tool, that has built-in rules for @@ -38,42 +38,42 @@ 4.03, it is now released separately. %package devel -Summary: Development files for %{name} +Summary: Development files for %name Group: Development/Languages/OCaml -Requires: %{name} = %{version} +Requires: %name = %version %description devel -The %{name}-devel package contains libraries and signature files for -developing applications that use %{name}. +The %name-devel package contains libraries and signature files for +developing applications that use %name. %prep %autosetup -p1 %build -tee %{name}.sh <<'_EOF_' +tee %name.sh <<'_EOF_' set -x exec \ make \ -PREFIX=%{_prefix} \ +PREFIX=%_prefix \ OCAML_NATIVE_TOOLS=true \ OCAML_NATIVE=true \ "$@" _EOF_ -sh %{name}.sh -f configure.make -sh %{name}.sh configure -sh %{name}.sh %{?_smp_mflags} +sh %name.sh -f configure.make +sh %name.sh configure +sh %name.sh %{?_smp_mflags} %install -sh %{name}.sh \ +sh %name.sh \ install \ -DESTDIR=%{buildroot} %{?_smp_mflags} +DESTDIR=%buildroot %{?_smp_mflags} %ocaml_create_file_list -%files -f %{name}.files +%files -f %name.files %doc Changes -%{_bindir}/* -%{_mandir}/man*/* +%_bindir/* +%_mandir/man*/* -%files devel -f %{name}.files.devel +%files devel -f %name.files.devel %changelog ++++++ _service ++++++ --- /var/tmp/diff_new_pack.1Wt4f2/_old 2022-05-05 23:08:01.225679162 +0200 +++ /var/tmp/diff_new_pack.1Wt4f2/_new 2022-05-05 23:08:01.229679167 +0200 @@ -1,10 +1,13 @@ <services> <service name="tar_scm" mode="disabled"> - <param name="url">https://github.com/ocaml/ocamlbuild.git</param> - <param name="scm">git</param> - <param name="versionformat">0.14.0</param> - <param name="revision">0.14.0</param> <param name="filename">ocaml-ocamlbuild</param> + <param name="revision">f4255cd31cb28557980b4a37ccfb6fd13d633abb</param> + <param name="scm">git</param> + <param name="submodules">disable</param> + <param name="url">https://github.com/ocaml/ocamlbuild.git</param> + <param name="versionformat">@PARENT_TAG@</param> + <param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param> + <param name="versionrewrite-replacement">\1</param> </service> <service name="recompress" mode="disabled"> <param name="file">*.tar</param> ++++++ ocaml-ocamlbuild-0.14.0.tar.xz -> ocaml-ocamlbuild-0.14.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/.gitignore new/ocaml-ocamlbuild-0.14.1/.gitignore --- old/ocaml-ocamlbuild-0.14.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/.gitignore 2022-02-09 12:15:06.000000000 +0100 @@ -0,0 +1,36 @@ +# general patterns + +*.o +*.a +*.so +*.obj +*.lib +*.dll +*.cm[ioxat] +*.cmx[as] +*.cmti +*.annot +*.exe +*.exe.manifest +.depend +.depend.nt +.DS_Store +*.out +*.out.dSYM +/tmp/ + +ocamlbuild.install +Makefile.config + +/bootstrap/src +/bootstrap/_build* + +/src/ocamlbuild_config.ml +/src/lexers.ml +/src/glob_lexer.ml +/ocamlbuild.byte +/ocamlbuild.native + +/man/ocamlbuild.1 +/man/ocamlbuild.options.1 +/man/options_man.byte diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/CONTRIBUTING.adoc new/ocaml-ocamlbuild-0.14.1/CONTRIBUTING.adoc --- old/ocaml-ocamlbuild-0.14.0/CONTRIBUTING.adoc 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/CONTRIBUTING.adoc 2022-02-09 12:15:06.000000000 +0100 @@ -16,7 +16,7 @@ This repository also hosts https://github.com/ocaml/ocamlbuild/tree/master/manual/manual.adoc[the OCamlbuild manual]. Feel free to ask questions about unclear part of the manual, or to contribute extra explanations. -The documentation contains a set of https://github.com/ocaml/ocamlbuild/tree/master/manual/examples[examples] that anyone can help grow. +The documentation contains a set of https://github.com/ocaml/ocamlbuild/tree/master/examples[examples] that anyone can help grow. If there is a typical kind of setting that you've reused across several projects, is clear and informative, and is not represented in existing examples, feel free to submit it. You can also help complete the documentation by integrating http://ocaml.org/learn/tutorials/ocamlbuild/[ocaml.org Wiki] content in the OCamlbuild manual. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/Changes new/ocaml-ocamlbuild-0.14.1/Changes --- old/ocaml-ocamlbuild-0.14.0/Changes 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/Changes 2022-02-09 12:15:06.000000000 +0100 @@ -11,6 +11,16 @@ Changes breaking compatibility are marked with a "* " bullet instead of the usual "- ". +0.14.1 (09 Feb 2021): +--------------------- + +- Add OCaml 5.00 support + (#315 by Kate Deplaix, reviewed by Gabriel Scherer) +- Fix race conditions when invoking ocamlbuild in parallel from a makefile + (#302 by Gabriel Scherer) +- Removes .so from products of all cmxs rules + (#305 by Ivan Gotovchits, reviewed by Gabriel Scherer) + 0.14.0 (23 Feb 2019): --------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/META new/ocaml-ocamlbuild-0.14.1/META --- old/ocaml-ocamlbuild-0.14.0/META 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/META 2022-02-09 12:15:06.000000000 +0100 @@ -1,6 +1,6 @@ # Specification for the "ocamlbuild" library requires = "unix" -version = "0.14.0" +version = "0.14.1" description = "ocamlbuild support library" archive(byte) = "ocamlbuildlib.cma" archive(native) = "ocamlbuildlib.cmxa" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/Makefile new/ocaml-ocamlbuild-0.14.1/Makefile --- old/ocaml-ocamlbuild-0.14.0/Makefile 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/Makefile 2022-02-09 12:15:06.000000000 +0100 @@ -30,7 +30,7 @@ endif CP ?= cp -COMPFLAGS ?= -w L -w R -w Z -I src -I +unix -safe-string -bin-annot -strict-sequence +COMPFLAGS ?= -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence LINKFLAGS ?= -I +unix -I src PACK_CMO= $(addprefix src/,\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/Readme.md new/ocaml-ocamlbuild-0.14.1/Readme.md --- old/ocaml-ocamlbuild-0.14.0/Readme.md 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/Readme.md 2022-02-09 12:15:06.000000000 +0100 @@ -3,9 +3,12 @@ OCamlbuild is a generic build tool, that has built-in rules for building OCaml library and programs. -OCamlbuild was distributed as part of the OCaml distribution for OCaml -versions between 3.10.0 and 4.02.3. Starting from OCaml 4.03, it is -now released separately. +In recent years, the OCaml community has converged towards a more +recent and faster build tool: +[Dune](https://github.com/ocaml/dune). If you are choosing a build +system, you should probably use Dune instead. (Between January and +June 2019, 77 new OCaml packages using ocamlbuild were publicly +released, versus 544 packages using dune.) Your should refer to the [OCambuild manual](https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/VERSION new/ocaml-ocamlbuild-0.14.1/VERSION --- old/ocaml-ocamlbuild-0.14.0/VERSION 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/VERSION 2022-02-09 12:15:06.000000000 +0100 @@ -1 +1 @@ -0.14.0 \ No newline at end of file +0.14.1 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/examples/.gitignore new/ocaml-ocamlbuild-0.14.1/examples/.gitignore --- old/ocaml-ocamlbuild-0.14.0/examples/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/examples/.gitignore 2022-02-09 12:15:06.000000000 +0100 @@ -0,0 +1,3 @@ +*.byte +_build/ +*.native diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/manual/manual.adoc new/ocaml-ocamlbuild-0.14.1/manual/manual.adoc --- old/ocaml-ocamlbuild-0.14.0/manual/manual.adoc 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/manual/manual.adoc 2022-02-09 12:15:06.000000000 +0100 @@ -1359,7 +1359,7 @@ One cannot define a rule if there already exists a built-in rule of the same name. Directly including the rule `"ocaml dependencies ml"` used above in your plugin would result in a failure when loading the plugin: -[source] +[source,ocaml] ---- Rule.Exit_rule_error("Rule.add_rule: already exists: (ocaml dependencies ml)"). ---- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/ocamlbuild.opam new/ocaml-ocamlbuild-0.14.1/ocamlbuild.opam --- old/ocaml-ocamlbuild-0.14.0/ocamlbuild.opam 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/ocamlbuild.opam 2022-02-09 12:15:06.000000000 +0100 @@ -3,11 +3,11 @@ authors: ["Nicolas Pouillard" "Berke Durak"] homepage: "https://github.com/ocaml/ocamlbuild/" bug-reports: "https://github.com/ocaml/ocamlbuild/issues" -license: "LGPL-2 with OCaml linking exception" +license: "LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception" doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc" dev-repo: "git+https://github.com/ocaml/ocamlbuild.git" synopsis: - "OCamlbuild is a build system with builtin rules to easily build most OCaml projects." + "OCamlbuild is a build system with builtin rules to easily build most OCaml projects" build: [ [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/src/main.ml new/ocaml-ocamlbuild-0.14.1/src/main.ml --- old/ocaml-ocamlbuild-0.14.0/src/main.ml 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/src/main.ml 2022-02-09 12:15:06.000000000 +0100 @@ -11,6 +11,10 @@ (* *) (***********************************************************************) +(* Compatibility with both OCaml < 4.08 and >= 5.00 *) +module Pervasives = struct + let exit = exit +end (* Original author: Berke Durak *) open My_std diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/src/my_std.ml new/ocaml-ocamlbuild-0.14.1/src/my_std.ml --- old/ocaml-ocamlbuild-0.14.0/src/my_std.ml 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/src/my_std.ml 2022-02-09 12:15:06.000000000 +0100 @@ -11,6 +11,10 @@ (* *) (***********************************************************************) +(* Compatibility with both OCaml < 4.08 and >= 5.00 *) +module Pervasives = struct + let compare = compare +end (* Original author: Nicolas Pouillard *) open Format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/src/ocaml_specific.ml new/ocaml-ocamlbuild-0.14.1/src/ocaml_specific.ml --- old/ocaml-ocamlbuild-0.14.0/src/ocaml_specific.ml 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/src/ocaml_specific.ml 2022-02-09 12:15:06.000000000 +0100 @@ -365,13 +365,13 @@ see the rules producing a .cmxs from a .mllib or a .mldylib." (Ocaml_compiler.native_library_link_mllib "%.mllib" "%.cmxa");; -rule "ocaml: mldylib & p.cmx* & p.o* -> p.cmxs & p.so" - ~prods:["%.p.cmxs"; x_p_dll] +rule "ocaml: mldylib & p.cmx* & p.o* -> p.cmxs" + ~prods:["%.p.cmxs"] ~dep:"%.mldylib" (Ocaml_compiler.native_profile_shared_library_link_mldylib "%.mldylib" "%.p.cmxs");; -rule "ocaml: mldylib & cmx* & o* -> cmxs & so" - ~prods:["%.cmxs"; x_dll] +rule "ocaml: mldylib & cmx* & o* -> cmxs" + ~prods:["%.cmxs"] ~dep:"%.mldylib" ~doc:"Builds a .cmxs (native archive for dynamic linking) containing exactly \ the modules listed in the corresponding .mldylib file." @@ -391,13 +391,13 @@ transitivitely." (Ocaml_compiler.native_library_link "%.cmx" "%.cmxa");; -rule "ocaml: p.cmxa & p.a -> p.cmxs & p.so" - ~prods:["%.p.cmxs"; x_p_dll] +rule "ocaml: p.cmxa & p.a -> p.cmxs" + ~prods:["%.p.cmxs"] ~deps:["%.p.cmxa"] (Ocaml_compiler.native_shared_library_link ~tags:["profile";"linkall"] "%.p.cmxa" "%.p.cmxs");; -rule "ocaml: cmxa -> cmxs & so" - ~prods:["%.cmxs"; x_dll] +rule "ocaml: cmxa -> cmxs" + ~prods:["%.cmxs"] ~deps:["%.cmxa"] ~doc:"This rule allows to build a .cmxs from a .cmxa, to avoid having \ to duplicate a .mllib file into a .mldylib." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/src/ocamlbuild_executor.ml new/ocaml-ocamlbuild-0.14.1/src/ocamlbuild_executor.ml --- old/ocaml-ocamlbuild-0.14.0/src/ocamlbuild_executor.ml 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/src/ocamlbuild_executor.ml 2022-02-09 12:15:06.000000000 +0100 @@ -11,6 +11,10 @@ (* *) (***********************************************************************) +(* Compatibility with both OCaml < 4.08 and >= 5.00 *) +module Pervasives = struct + let stdout = stdout +end (* Original author: Berke Durak *) (* Ocamlbuild_executor *) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/src/shell.ml new/ocaml-ocamlbuild-0.14.1/src/shell.ml --- old/ocaml-ocamlbuild-0.14.0/src/shell.ml 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/src/shell.ml 2022-02-09 12:15:06.000000000 +0100 @@ -53,15 +53,45 @@ failwith (Printf.sprintf "Error during command %S: %s" cmd (Printexc.to_string x)) let rm = sys_remove let rm_f x = - if sys_file_exists x then rm x + if sys_file_exists x then () + else + (* We checked that the file does not exist, but we still ignore + failures due to the possibility of race conditions -- + another thread having removed the file at the same time. + + See issue #300 and PR #302 for a race-condition in the wild, + and a reproduction script. + + We could reproduce such races due to the Shell.rm_f call on the log file + at the start of ocamlbuild's invocation. *) + try sys_remove x with _ -> () + let mkdir dir = reset_filesys_cache_for_file dir; (*Sys.mkdir dir (* MISSING in ocaml *) *) run ["mkdir"; dir] dir -let try_mkdir dir = if not (sys_file_exists dir) then mkdir dir + +let try_mkdir dir = + if not (sys_file_exists dir) + then + (* We checked that the file does not exist, but we still + ignore failures due to the possibility of race conditions -- + same as rm_f above. + + Note: contrarily to the rm_f implementation which uses sys_remove directly, + the 'mkdir' implementation uses 'run', which will create noise in the log + and on display, especially in case of (ignored) failure: an error message + will be shown, but the call will still be considered a success. + Error messages only occur in racy scenarios that we don't support, + so this is probably okay. *) + try mkdir dir with _ -> () + let rec mkdir_p dir = if sys_file_exists dir then () - else (mkdir_p (Filename.dirname dir); mkdir dir) + else begin + mkdir_p (Filename.dirname dir); + try_mkdir dir + end let cp_pf src dest = reset_filesys_cache_for_file dest; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/testsuite/.gitignore new/ocaml-ocamlbuild-0.14.1/testsuite/.gitignore --- old/ocaml-ocamlbuild-0.14.0/testsuite/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/testsuite/.gitignore 2022-02-09 12:15:06.000000000 +0100 @@ -0,0 +1,3 @@ +_test_internal +_test_findlibonly +_test_external diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-ocamlbuild-0.14.0/testsuite/internal.ml new/ocaml-ocamlbuild-0.14.1/testsuite/internal.ml --- old/ocaml-ocamlbuild-0.14.0/testsuite/internal.ml 2019-02-23 15:46:00.000000000 +0100 +++ new/ocaml-ocamlbuild-0.14.1/testsuite/internal.ml 2022-02-09 12:15:06.000000000 +0100 @@ -210,8 +210,16 @@ Error: This expression has type int but an expression was expected of type unit Command exited with code 2." +else if Sys.ocaml_version < "4.08.0" then +"File \"hello.ml\", line 1, characters 9-10: +Error: This expression has type int but an expression was expected of type + unit + because it is in the left-hand side of a sequence +Command exited with code 2." else "File \"hello.ml\", line 1, characters 9-10: +1 | let () = 1; () + ^ Error: This expression has type int but an expression was expected of type unit because it is in the left-hand side of a sequence @@ -224,10 +232,19 @@ ~description:"strict_format tag" ~tree:[T.f "hello.ml" ~content:"let _ = Printf.printf \"%.10s\""; T.f "_tags" ~content:"true: strict_formats\n"] - ~failing_msg:"File \"hello.ml\", line 1, characters 22-29: + ~failing_msg:(if Sys.ocaml_version < "4.08.0" then +"File \"hello.ml\", line 1, characters 22-29: Error: invalid format \"%.10s\": at character number 0, \ `precision' is incompatible with 's' in sub-format \"%.10s\" Command exited with code 2." +else +"File \"hello.ml\", line 1, characters 22-29: +1 | let _ = Printf.printf \"%.10s\" + ^^^^^^^ +Error: invalid format \"%.10s\": at character number 0, \ +`precision' is incompatible with 's' in sub-format \"%.10s\" +Command exited with code 2." +) ~targets:("hello.byte",[]) ();; let () = test "PrincipalFlag" @@ -237,8 +254,20 @@ ~content:"type s={foo:int;bar:unit} type t={foo:int} let f x = (x.bar; x.foo)"; T.f "_tags" ~content:"true: principal\n"] - ~failing_msg:"File \"hello.ml\", line 2, characters 42-45: + ~failing_msg:(if Sys.ocaml_version < "4.08.0" then +"File \"hello.ml\", line 2, characters 42-45: Warning 18: this type-based field disambiguation is not principal." +else if Sys.ocaml_version < "4.12.0" then +"File \"hello.ml\", line 2, characters 42-45: +2 | let f x = (x.bar; x.foo) + ^^^ +Warning 18: this type-based field disambiguation is not principal." +else +"File \"hello.ml\", line 2, characters 42-45: +2 | let f x = (x.bar; x.foo) + ^^^ +Warning 18 [not-principal]: this type-based field disambiguation is not principal." +) ~targets:("hello.byte",[]) ();; let () = test "ModularPlugin1"