Hello community, here is the log from the commit of package ocaml for openSUSE:Factory checked in at 2020-09-05 23:57:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml (Old) and /work/SRC/openSUSE:Factory/.ocaml.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml" Sat Sep 5 23:57:49 2020 rev:80 rq:831369 version:4.11.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml/ocaml.changes 2020-08-28 23:44:56.907502933 +0200 +++ /work/SRC/openSUSE:Factory/.ocaml.new.3399/ocaml.changes 2020-09-05 23:57:57.919120525 +0200 @@ -1,0 +2,6 @@ +Tue Sep 1 12:34:56 UTC 2020 - [email protected] + +- update to version 4.11.1 + See included Changes for benefits and breaking changes + +------------------------------------------------------------------- Old: ---- ocaml-4.11.0.tar.xz New: ---- ocaml-4.11.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml.spec ++++++ --- /var/tmp/diff_new_pack.twAQrF/_old 2020-09-05 23:57:59.115121124 +0200 +++ /var/tmp/diff_new_pack.twAQrF/_new 2020-09-05 23:57:59.119121126 +0200 @@ -63,7 +63,7 @@ %bcond_with ocaml_make_testsuite Name: ocaml -Version: 4.11.0 +Version: 4.11.1 Release: 0 Summary: OCaml Compiler and Programming Environment License: QPL-1.0 AND SUSE-LGPL-2.0-with-linking-exception ++++++ _service ++++++ --- /var/tmp/diff_new_pack.twAQrF/_old 2020-09-05 23:57:59.179121156 +0200 +++ /var/tmp/diff_new_pack.twAQrF/_new 2020-09-05 23:57:59.179121156 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="disabled"> <param name="filename">ocaml</param> - <param name="revision">70148d962c83cca31ebf58423ca3ad3443bf7e29</param> + <param name="revision">28789a0e79132c1f0af34cacc5f0c1d613d6d901</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://github.com/ocaml/ocaml.git</param> ++++++ ocaml-4.11.0.tar.xz -> ocaml-4.11.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/Changes new/ocaml-4.11.1/Changes --- old/ocaml-4.11.0/Changes 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/Changes 2020-09-01 14:47:58.000000000 +0200 @@ -1,3 +1,16 @@ +OCaml 4.11.1 (31 August 2020) +----------------------------- + +### Bug fixes: + +- #9856, #9857: Prevent polymorphic type annotations from generalizing + weak polymorphic variables. + (Leo White, review by Jacques Garrigue) + +- #9859, #9862: Remove an erroneous assertion when inferred function types + appear in the right hand side of an explicit :> coercion + (Florian Angeletti, review by Thomas Refis) + OCaml 4.11.0 (19 August 2020) --------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/VERSION new/ocaml-4.11.1/VERSION --- old/ocaml-4.11.0/VERSION 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/VERSION 2020-09-01 14:47:58.000000000 +0200 @@ -1,4 +1,4 @@ -4.11.0 +4.11.1 # The version string is the first line of this file. # It must be in the format described in stdlib/sys.mli Binary files old/ocaml-4.11.0/boot/ocamlc and new/ocaml-4.11.1/boot/ocamlc differ Binary files old/ocaml-4.11.0/boot/ocamllex and new/ocaml-4.11.1/boot/ocamllex differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/configure new/ocaml-4.11.1/configure --- old/ocaml-4.11.0/configure 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/configure 2020-09-01 14:47:58.000000000 +0200 @@ -56,7 +56,7 @@ fi fi # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for OCaml 4.11.0. +# Generated by GNU Autoconf 2.69 for OCaml 4.11.1. # # Report bugs to <[email protected]>. # @@ -646,8 +646,8 @@ # Identity of this package. PACKAGE_NAME='OCaml' PACKAGE_TARNAME='ocaml' -PACKAGE_VERSION='4.11.0' -PACKAGE_STRING='OCaml 4.11.0' +PACKAGE_VERSION='4.11.1' +PACKAGE_STRING='OCaml 4.11.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='http://www.ocaml.org' @@ -1482,7 +1482,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures OCaml 4.11.0 to adapt to many kinds of systems. +\`configure' configures OCaml 4.11.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1548,7 +1548,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OCaml 4.11.0:";; + short | recursive ) echo "Configuration of OCaml 4.11.1:";; esac cat <<\_ACEOF @@ -1711,7 +1711,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OCaml configure 4.11.0 +OCaml configure 4.11.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2374,7 +2374,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OCaml $as_me 4.11.0, which was +It was created by OCaml $as_me 4.11.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2723,8 +2723,8 @@ -{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 4.11.0" >&5 -$as_echo "$as_me: Configuring OCaml version 4.11.0" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 4.11.1" >&5 +$as_echo "$as_me: Configuring OCaml version 4.11.1" >&6;} # Configuration variables @@ -2800,7 +2800,7 @@ -VERSION=4.11.0 +VERSION=4.11.1 # Note: This is present for the flexdll bootstrap where it exposed as the old @@ -12475,7 +12475,7 @@ *) : outputobj='-o $(EMPTY)' gcc_warnings='-Wall -Wdeclaration-after-statement' - case 4.11.0 in #( + case 4.11.1 in #( *+dev*) : gcc_warnings="$gcc_warnings -Werror" ;; #( *) : @@ -16893,7 +16893,7 @@ ocamldoc=ocamldoc fi -case $enable_ocamltest,4.11.0 in #( +case $enable_ocamltest,4.11.1 in #( yes,*|,*+dev*) : ocamltest='ocamltest' ;; #( *) : @@ -17610,7 +17610,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OCaml $as_me 4.11.0, which was +This file was extended by OCaml $as_me 4.11.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17677,7 +17677,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -OCaml config.status 4.11.0 +OCaml config.status 4.11.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/ocaml-variants.opam new/ocaml-4.11.1/ocaml-variants.opam --- old/ocaml-4.11.0/ocaml-variants.opam 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/ocaml-variants.opam 2020-09-01 14:47:58.000000000 +0200 @@ -1,8 +1,8 @@ opam-version: "2.0" -version: "4.11.0" -synopsis: "OCaml development version" +version: "4.11.1" +synopsis: "OCaml 4.11.1, official release" depends: [ - "ocaml" {= "4.11.0" & post} + "ocaml" {= "4.11.1" & post} "base-unix" {post} "base-bigarray" {post} "base-threads" {post} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/testsuite/tests/typing-misc/labels.ml new/ocaml-4.11.1/testsuite/tests/typing-misc/labels.ml --- old/ocaml-4.11.0/testsuite/tests/typing-misc/labels.ml 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/testsuite/tests/typing-misc/labels.ml 2020-09-01 14:47:58.000000000 +0200 @@ -90,3 +90,32 @@ Warning 19: commuted an argument without principality. val f : (x:int -> unit -> int) -> x:int -> int = <fun> |}];; + +(* 9859: inferred function types may appear in the right hand side of :> *) +class setup = object + method with_ f = (f 0:unit) +end +class virtual fail = object (self) + method trigger = (self :> setup ) +end +[%%expect {| +class setup : object method with_ : (int -> unit) -> unit end +class virtual fail : + object + method trigger : setup + method virtual with_ : (int -> unit) -> unit + end +|}] + +module type T = sig type t end +let type_of (type x) (x: x) = (module struct type t = x end: T with type t = x) +let f g = 1 + g ~x:0 ~y:0;; +module E = (val type_of f) +let g = ( (fun _ -> f) :> 'a -> E.t) +[%%expect {| +module type T = sig type t end +val type_of : 'x -> (module T with type t = 'x) = <fun> +val f : (x:int -> y:int -> int) -> int = <fun> +module E : sig type t = (x:int -> y:int -> int) -> int end +val g : 'a -> E.t = <fun> +|}] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/testsuite/tests/typing-poly/poly.ml new/ocaml-4.11.1/testsuite/tests/typing-poly/poly.ml --- old/ocaml-4.11.0/testsuite/tests/typing-poly/poly.ml 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/testsuite/tests/typing-poly/poly.ml 2020-09-01 14:47:58.000000000 +0200 @@ -1852,3 +1852,27 @@ 'a list The universal variable 'b would escape its scope |}] + +(* #9856 *) +let f x = + let ref : type a . a option ref = ref None in + ref := Some x; + Option.get !ref +[%%expect{| +Line 2, characters 6-44: +2 | let ref : type a . a option ref = ref None in + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: This definition has type 'a option ref which is less general than + 'a0. 'a0 option ref +|}] + +type pr = { foo : 'a. 'a option ref } +let x = { foo = ref None } +[%%expect{| +type pr = { foo : 'a. 'a option ref; } +Line 2, characters 16-24: +2 | let x = { foo = ref None } + ^^^^^^^^ +Error: This field value has type 'b option ref which is less general than + 'a. 'a option ref +|}] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/typing/ctype.ml new/ocaml-4.11.1/typing/ctype.ml --- old/ocaml-4.11.0/typing/ctype.ml 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/typing/ctype.ml 2020-09-01 14:47:58.000000000 +0200 @@ -3999,8 +3999,7 @@ (t, Unchanged) else (t, Unchanged) - | Tarrow(l, t1, t2, com) -> - assert (com = Cok); + | Tarrow(l, t1, t2, _) -> if memq_warn t visited then (t, Unchanged) else let visited = t :: visited in let (t1', c1) = build_subtype env visited loops (not posi) level t1 in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-4.11.0/typing/typecore.ml new/ocaml-4.11.1/typing/typecore.ml --- old/ocaml-4.11.0/typing/typecore.ml 2020-08-19 15:30:30.000000000 +0200 +++ new/ocaml-4.11.1/typing/typecore.ml 2020-09-01 14:47:58.000000000 +0200 @@ -4978,7 +4978,9 @@ so we do it anyway. *) generalize exp.exp_type | Some vars -> - generalize_and_check_univars env "definition" exp pat.pat_type vars) + if maybe_expansive exp then + lower_contravariant env exp.exp_type; + generalize_and_check_univars env "definition" exp pat.pat_type vars) pat_list exp_list; let l = List.combine pat_list exp_list in let l =
