New upstream version 5.1.1 (RHBZ#2239227)

This commit is contained in:
Richard W.M. Jones 2023-12-11 22:33:21 +00:00
parent 48b6d0088d
commit b40114b0c9
7 changed files with 26 additions and 237 deletions

View File

@ -1,17 +1,17 @@
From 56fafd588484ceb9b8e998b5e569d7df27deae3b Mon Sep 17 00:00:00 2001
From 799bf9088c131fc71626a48e9987e4d44a2f0194 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 24 Jun 2014 10:00:15 +0100
Subject: [PATCH 2/5] Don't add rpaths to libraries.
Subject: [PATCH 1/3] Don't add rpaths to libraries.
---
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index aba3569f7c..6c50ba6c71 100644
index b81da53c42..892a2a894f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1106,8 +1106,6 @@ AS_IF([test x"$enable_shared" != "xno"],
@@ -1107,8 +1107,6 @@ AS_IF([test x"$enable_shared" != "xno"],
[[*-*-openbsd7.[3-9]|*-*-openbsd[89].*]],
[mkdll_flags="${mkdll_flags} -Wl,--no-execute-only"])
oc_ldflags="$oc_ldflags -Wl,-E"
@ -21,5 +21,5 @@ index aba3569f7c..6c50ba6c71 100644
supports_shared_libraries=true],
[mkdll='shared-libs-not-available'])
--
2.41.0
2.43.0

View File

@ -1,176 +0,0 @@
From 4c03e721b4c53240a9091790acb401b27e72dce0 Mon Sep 17 00:00:00 2001
From: Florian Angeletti <florian.angeletti@inria.fr>
Date: Wed, 4 Oct 2023 10:05:44 +0200
Subject: [PATCH 1/5] Fix variance composition (#12623)
Possible positive occurrence under possible negative occurrence were
forgotten, making the typechecker accepts the absurd statement
type -'a n
type +'a p
type +'a ko = 'a p n
(cherry picked from commit 1a9c45317b2c6c9ca9b4cb95fe4891f9f1a2820e)
---
Changes | 8 +++
boot/ocamlc | Bin 3051798 -> 3051796 bytes
boot/ocamllex | Bin 391863 -> 391861 bytes
testsuite/tests/typing-misc/variance.ml | 87 ++++++++++++++++++++++++
typing/types.ml | 2 +-
5 files changed, 96 insertions(+), 1 deletion(-)
diff --git a/Changes b/Changes
index 20b7b8ee22..dccdc9baba 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,11 @@
+OCaml 5.1.1
+-----------
+
+### Bug fixes:
+
+- #12623, fix the computation of variance composition
+ (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scherer)
+
OCaml 5.1.0 (14 September 2023)
-------------------------------
diff --git a/boot/ocamlc b/boot/ocamlc
index f3b2cba8df84a5f1326c7fe7bdf12b85159f65b3..4db4d848dbc3c2411a9e6160e9d932dd7ba35a34 100755
GIT binary patch
delta 244
zcmZ9=y)pw)7zW@yD_A75h=~7x4sq6QNTHKLLz5Y;l1i^m@y)Byq%e*dP4>M3jS*A|
zH=r=XOm0DACarO5#nU`Dd{Ng<LzMW^BN^$HKIxZ024ql%Br7=?mi$BbncCYl%-WMQ
z3~cMYn6aH>71+*IApk>g1RMp&zydf97QqRy1Wtle;50Y`&VqB`Jh%WZf=l2sxB{+%
zYvB4LHS4)A&pSWz{Q8@xo}b$HKl;!&)oPSPN%{2bA~uz{vSZ>slkC18)N0Mv{`SAV
Z)LrdtIGaw{*=p;q`M6Wx_O}_8{s6iiTe|=N
delta 266
zcmbQTXcyx&AZ}=3Y+-6)ZeeL*ZDDI+Z{cX+Y~gC*ZsBR+ZQ*O--y(2h;q(<<0zA`W
z77B1oUvN>3W%_}I0zB=17775dAP@@yu`m#e0I?_#ivh7X5K92DBoIphu{03N0I@6(
z%K@=G5Gw$&A`mM9u`&>=0I@0%s{yh4_CE_XmId(MW?;znW?%|9%D}jD=l1oVG`yJf
z%}n(S^$fIAQp*fYb&U*+jCBnxbq!1pxH>vaSm0oQF5a&8RRf4MfmjQOwSib?yV_UX
OtFsy3PyaJPPXYiZJ96a!
diff --git a/boot/ocamllex b/boot/ocamllex
index cfdfbe8b4541516ef49c895ea691ea534706de67..b2b5404e69f35a1eb7d0a74fe687a4f4508a7149 100755
GIT binary patch
delta 98
zcmdn~RebAL@rD-07N!>F7M3lnT~@qO3=Hgl7#JKo7#Or4Zl7+&>cymMYN}_bXQ-W$
qT4tbYWME{hYhbBsXmY^S(Q(282Yoc*?E<!}eR~=8rqBPyDggk+ryT$Q
delta 100
zcmdn`Rebwb@rD-07N!>F7M3lnT~@p@3=Hgl7#JKo85p!5ZJ%z%>cymQW~yhXXP}*u
rT4rdfYh++#tZQJYYhZf7)zM+X0tW+h@$G!JtbKbK4W`fi#VP>+{6`&d
diff --git a/testsuite/tests/typing-misc/variance.ml b/testsuite/tests/typing-misc/variance.ml
index d0f754f716..419e348f48 100644
--- a/testsuite/tests/typing-misc/variance.ml
+++ b/testsuite/tests/typing-misc/variance.ml
@@ -36,3 +36,90 @@ type !'a t = (module s with type t = 'a);;
module type s = sig type t end
type 'a t = (module s with type t = 'a)
|}]
+
+(* Composition *)
+type -'a n
+type +'a p
+type !'a i
+
+type +'a error_np = 'a n p;;
+[%%expect{|
+type -'a n
+type +'a p
+type !'a i
+Line 5, characters 0-26:
+5 | type +'a error_np = 'a n p;;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be covariant,
+ but it is contravariant.
+|}]
+
+
+type +'a error_pn = 'a p n;;
+[%%expect{|
+Line 1, characters 0-26:
+1 | type +'a error_pn = 'a p n;;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be covariant,
+ but it is contravariant.
+|}]
+
+type -'a error_pp = 'a p p;;
+[%%expect{|
+Line 1, characters 0-26:
+1 | type -'a error_pp = 'a p p;;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be contravariant,
+ but it is covariant.
+|}]
+
+type -'a error_nn = 'a n n;;
+[%%expect{|
+Line 1, characters 0-26:
+1 | type -'a error_nn = 'a n n;;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be contravariant,
+ but it is covariant.
+|}]
+
+type !'a inj_in = 'a i n
+[%%expect{|
+Line 1, characters 0-24:
+1 | type !'a inj_in = 'a i n
+ ^^^^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be injective invariant,
+ but it is invariant.
+|}]
+
+type !'a inj_in = 'a n i
+[%%expect{|
+Line 1, characters 0-24:
+1 | type !'a inj_in = 'a n i
+ ^^^^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be injective invariant,
+ but it is invariant.
+|}]
+
+module Make_covariant(M: sig type 'a t end): sig
+ type 'a i = 'a
+ type +'a t = 'a i M.t
+end = struct
+ type 'a i = 'a
+ type +'a t = 'a i M.t
+end
+
+module Positive_ref = Make_covariant(struct type 'a t = 'a ref end)
+[%%expect {|
+Line 6, characters 2-23:
+6 | type +'a t = 'a i M.t
+ ^^^^^^^^^^^^^^^^^^^^^
+Error: In this definition, expected parameter variances are not satisfied.
+ The 1st type parameter was expected to be covariant,
+ but it is invariant.
+|}]
diff --git a/typing/types.ml b/typing/types.ml
index 45a4f896d6..c1dbdb6895 100644
--- a/typing/types.ml
+++ b/typing/types.ml
@@ -186,7 +186,7 @@ module Variance = struct
let mp =
mem May_pos v1 && mem May_pos v2 || mem May_neg v1 && mem May_neg v2
and mn =
- mem May_pos v1 && mem May_neg v2 || mem May_pos v1 && mem May_neg v2
+ mem May_pos v1 && mem May_neg v2 || mem May_neg v1 && mem May_pos v2
and mw = mem May_weak v1 && v2 <> null || v1 <> null && mem May_weak v2
and inj = mem Inj v1 && mem Inj v2
and pos = mem Pos v1 && mem Pos v2 || mem Neg v1 && mem Neg v2
--
2.41.0

View File

@ -1,17 +1,17 @@
From e8170e71efb93f10c27935acc95093eb3f53ab6c Mon Sep 17 00:00:00 2001
From f2b875e8201efed22267136096b1e5df97f99f84 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 29 May 2012 20:44:18 +0100
Subject: [PATCH 3/5] configure: Allow user defined C compiler flags.
Subject: [PATCH 2/3] configure: Allow user defined C compiler flags.
---
configure.ac | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 6c50ba6c71..db6ea8a8d1 100644
index 892a2a894f..e8f6cbc863 100644
--- a/configure.ac
+++ b/configure.ac
@@ -759,6 +759,10 @@ AS_CASE([$host],
@@ -760,6 +760,10 @@ AS_CASE([$host],
internal_cflags="$cc_warnings"],
[common_cflags="-O"])])
@ -22,7 +22,7 @@ index 6c50ba6c71..db6ea8a8d1 100644
# Enable SSE2 on x86 mingw to avoid using 80-bit registers.
AS_CASE([$host],
[i686-*-mingw32*],
@@ -2325,7 +2329,7 @@ AC_CONFIG_COMMANDS_PRE([
@@ -2327,7 +2331,7 @@ AC_CONFIG_COMMANDS_PRE([
[mkexedebugflag="${mkexe_ldflags_prefix}${mkexedebugflag}"])
mkdll_ldflags=""
AS_IF([test -n "${LDFLAGS}"],
@ -31,7 +31,7 @@ index 6c50ba6c71..db6ea8a8d1 100644
mkdll_ldflags="${mkdll_ldflags} ${mkexe_ldflags_prefix}${flag}"
done
mkdll_ldflags_exp="$mkdll_ldflags"])
@@ -2351,7 +2355,7 @@ ${mkdll_ldflags}"
@@ -2353,7 +2357,7 @@ ${mkdll_ldflags}"
],[
mkdll_ldflags='$(OC_DLL_LDFLAGS) $(LDFLAGS)'
mkdll_ldflags_exp="${oc_dll_ldflags}"
@ -41,5 +41,5 @@ index 6c50ba6c71..db6ea8a8d1 100644
mkexe_ldflags="\$(OC_LDFLAGS) \$(LDFLAGS)"
mkexe_ldflags_exp="${oc_ldflags} ${LDFLAGS}"
--
2.41.0
2.43.0

View File

@ -1,7 +1,7 @@
From e1ee698f482664237bfb693966987cd167c22b68 Mon Sep 17 00:00:00 2001
From ba44a9c29771aacf44222a2ff63e7bd6034dd92c Mon Sep 17 00:00:00 2001
From: Fabrice Buoro <fabrice@tarides.com>
Date: Fri, 10 Mar 2023 09:36:22 -0700
Subject: [PATCH 5/5] Update framepointers tests to avoid false positive with
Subject: [PATCH 3/3] Update framepointers tests to avoid false positive with
inlined C functions
---
@ -692,5 +692,5 @@ index e96b5ea13a..0000000000
-${program} 2>&1 \
- | ${test_source_directory}/filter-locations.sh ${program} >${output}
--
2.41.0
2.43.0

View File

@ -1,34 +0,0 @@
From 8d0e4af8141f6ba925c1de426a9600a96816c86b Mon Sep 17 00:00:00 2001
From: Miod Vallat <miod@tarides.com>
Date: Mon, 4 Sep 2023 13:50:30 -0600
Subject: [PATCH 4/5] Fix x86_64 delivery of effect-related exceptions
---
runtime/amd64.S | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/runtime/amd64.S b/runtime/amd64.S
index 8dc9f81ec6..72d96f502d 100644
--- a/runtime/amd64.S
+++ b/runtime/amd64.S
@@ -902,6 +902,7 @@ LBL(112):
movq Caml_state(current_stack), %rsi
SWITCH_OCAML_STACKS
/* No parent stack. Raise Effect.Unhandled. */
+ ENTER_FUNCTION
movq %rax, C_ARG_1
LEA_VAR(caml_raise_unhandled_effect, %rax)
jmp LBL(caml_c_call)
@@ -946,7 +947,8 @@ CFI_STARTPROC
UPDATE_BASE_POINTER(%rcx)
SWITCH_OCAML_STACKS
jmp *(%rbx)
-2: LEA_VAR(caml_raise_continuation_already_resumed, %rax)
+2: ENTER_FUNCTION
+ LEA_VAR(caml_raise_continuation_already_resumed, %rax)
jmp LBL(caml_c_call)
CFI_ENDPROC
ENDFUNCTION(G(caml_resume))
--
2.41.0

View File

@ -42,8 +42,8 @@ ExcludeArch: %{ix86}
%global rcver %{nil}
Name: ocaml
Version: 5.1.0
Release: 5%{?dist}
Version: 5.1.1
Release: 1%{?dist}
Summary: OCaml compiler and programming environment
@ -64,22 +64,18 @@ Source2: ocaml_files.py
#
# https://pagure.io/fedora-ocaml
#
# Current branch: fedora-40-5.1.0
# Current branch: fedora-40-5.1.1
#
# ALTERNATIVELY add a patch to the end of the list (leaving the
# existing patches unchanged) adding a comment to note that it should
# be incorporated into the git repo at a later time.
# Patches added after 5.1.0 was released.
Patch: 0001-Fix-variance-composition-12623.patch
# Fedora-specific patches
Patch: 0002-Don-t-add-rpaths-to-libraries.patch
Patch: 0003-configure-Allow-user-defined-C-compiler-flags.patch
# https://github.com/ocaml/ocaml/pull/12530
Patch: 0004-Fix-x86_64-delivery-of-effect-related-exceptions.patch
Patch: 0001-Don-t-add-rpaths-to-libraries.patch
Patch: 0002-configure-Allow-user-defined-C-compiler-flags.patch
# https://github.com/ocaml/ocaml/pull/11594
Patch: 0005-Update-framepointers-tests-to-avoid-false-positive-w.patch
Patch: 0003-Update-framepointers-tests-to-avoid-false-positive-w.patch
BuildRequires: make
BuildRequires: git
@ -470,6 +466,9 @@ hardlink -t $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs
%changelog
* Mon Dec 11 2023 Richard W.M. Jones <rjones@redhat.com> - 5.1.1-1
- New upstream version 5.1.1 (RHBZ#2239227)
* Tue Nov 14 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 5.1.0-5
- Drop unused BR parallel

View File

@ -1 +1 @@
SHA512 (ocaml-5.1.0.tar.gz) = 814ea71de656eadc59a658ad3b6c4d786815c348ab883b1cdb22d5d0f99d11768f5646f03725f6b44c3b8f4ffeb71e89dadaea157711a7afbe86f23846fc5b52
SHA512 (ocaml-5.1.1.tar.gz) = e4aa78afc9a59f604881f14093f4298ebcb005daeb8132a076fe6d24fdf8b59132cbfa2cfe677f1db1891351d3d637c621f24077e531cac6753c264fc7f5fbea