Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af57312bd0 |
9 changed files with 27 additions and 813 deletions
|
|
@ -1,90 +0,0 @@
|
|||
From 5538fa66e94fad3d2b4f110d23bef3b4d2d6342c Mon Sep 17 00:00:00 2001
|
||||
From: Florian Angeletti <florian.angeletti@inria.fr>
|
||||
Date: Mon, 13 May 2024 11:39:37 +0200
|
||||
Subject: [PATCH 1/7] Changes: synchronisation and consistency with trunk
|
||||
|
||||
---
|
||||
Changes | 25 ++++++++++++++-----------
|
||||
1 file changed, 14 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/Changes b/Changes
|
||||
index 208d5e8697..1af198ba77 100644
|
||||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -140,9 +140,6 @@ OCaml 5.2.0
|
||||
(Guillaume Munch-Maccagnoni, bug reports and suggestion by Mark
|
||||
Shinwell, review by Nick Barnes and Stephen Dolan)
|
||||
|
||||
-- #12876: Port ThreadSanitizer support to Linux on POWER
|
||||
- (Miod Vallat, review by Tim McGilchrist)
|
||||
-
|
||||
- #12408: `Domain.spawn` no longer leaks its functional argument for
|
||||
the whole duration of the children domain lifetime.
|
||||
(Guillaume Munch-Maccagnoni, review by Gabriel Scherer)
|
||||
@@ -156,8 +153,10 @@ OCaml 5.2.0
|
||||
review by Damien Doligez, Sébastien Hinderer, Jacques-Henri Jourdan, Luc
|
||||
Maranget, Guillaume Munch-Maccagnoni, Gabriel Scherer)
|
||||
|
||||
-- #11911, #12381: Restore statmemprof functionality in part
|
||||
- (API changes in Gc.Memprof). (Nick Barnes)
|
||||
+- #11911, #12381: Restore statmemprof functionality in part, with
|
||||
+ some API changes in Gc.Memprof.
|
||||
+ (Nick Barnes, review by Jacques-Henri Jourdan
|
||||
+ and Guillaume Munch-Maccagnoni).
|
||||
|
||||
- #12430: Simplify dynamic bytecode loading in Meta.reify_bytecode
|
||||
(Stephen Dolan, review by Sébastien Hinderer, Vincent Laviron and Xavier
|
||||
@@ -216,9 +215,10 @@ OCaml 5.2.0
|
||||
Ojeda Bar)
|
||||
|
||||
- #11911, #12382, #12383: Restore statmemprof functionality in part
|
||||
- (backtrace buffers, per-thread and per-domain data structures).
|
||||
- (Nick Barnes, review by Gabriel Scherer, Fabrice Buoro, Sadiq
|
||||
- Jaffer, and Guillaume Munch-Maccagnoni).
|
||||
+ (backtrace buffers, per-thread and per-domain data structures,
|
||||
+ GC/allocation interface). (Nick Barnes, review by Gabriel Scherer,
|
||||
+ Fabrice Buoro, Sadiq Jaffer, Guillaume Munch-Maccagnoni, and
|
||||
+ Jacques-Henri Jourdan).
|
||||
|
||||
- #12735: Store both ends of the stack chain in continuations
|
||||
(Leo White, review by Miod Vallat and KC Sivaramakrishnan)
|
||||
@@ -248,6 +248,9 @@ OCaml 5.2.0
|
||||
Hari Hara Naveen S, reviewed by Fabrice Buoro, Gabriel Scherer and
|
||||
Miod Vallat)
|
||||
|
||||
+- #12876: Port ThreadSanitizer support to Linux on POWER
|
||||
+ (Miod Vallat, review by Tim McGilchrist)
|
||||
+
|
||||
- #12886: Reinitialize IO mutexes after fork
|
||||
(Max Slater, review by Guillaume Munch-Maccagnoni and Xavier Leroy)
|
||||
|
||||
@@ -990,7 +993,7 @@ OCaml 5.1.0 (14 September 2023)
|
||||
`Seq.find_mapi`, `Seq.find_index`, `Array.find_mapi`, `Array.find_index`,
|
||||
`Float.Array.find_opt`, `Float.Array.find_index`, `Float.Array.find_map`,
|
||||
`Float.Array.find_mapi`.
|
||||
- (Sima Kinsart, review by Daniel Bünzli and Nicolás Ojeda Bär)
|
||||
+ (Tima Kinsart, review by Daniel Bünzli and Nicolás Ojeda Bär)
|
||||
|
||||
- #11410: Add Set.to_list, Map.to_list, Map.of_list,
|
||||
`Map.add_to_list: key -> 'a -> 'a list t -> 'a list t`.
|
||||
@@ -1771,7 +1774,7 @@ Some of those changes will benefit all OCaml packages.
|
||||
|
||||
- #11846: Mark rbx as destroyed at C call for Win64 (mingw-w64 and Cygwin64).
|
||||
Reserve the shadow store for the ABI in the c_stack_link struct instead of
|
||||
- explictly when calling C functions. This simultaneously reduces the number of
|
||||
+ explicitly when calling C functions. This simultaneously reduces the number of
|
||||
stack pointer manipulations and also fixes a bug when calling noalloc
|
||||
functions where the shadow store was not being reserved.
|
||||
(David Allsopp, report by Vesa Karvonen, review by Xavier Leroy and
|
||||
@@ -2791,7 +2794,7 @@ OCaml 4.14.0 (28 March 2022)
|
||||
- #8516: Change representation of class signatures
|
||||
(Leo White, review by Thomas Refis)
|
||||
|
||||
-- #9444: -dtypedtree, print more explictly extra nodes in pattern ast.
|
||||
+- #9444: -dtypedtree, print more explicitly extra nodes in pattern ast.
|
||||
(Frédéric Bour, review by Gabriel Scherer)
|
||||
|
||||
- #10337: Normalize type_expr nodes on access
|
||||
--
|
||||
2.44.0
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From 507a1382cb82160c2a6cfc0ea5bcb3e33ece7307 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 3/7] Don't add rpaths to libraries.
|
||||
Subject: [PATCH 1/4] Don't add rpaths to libraries.
|
||||
|
||||
---
|
||||
configure.ac | 2 --
|
||||
|
|
@ -1,515 +0,0 @@
|
|||
From 7a20c9322f827923baa6a9907998f670463ce447 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Angeletti <florian.angeletti@inria.fr>
|
||||
Date: Mon, 13 May 2024 14:28:08 +0200
|
||||
Subject: [PATCH 2/7] Changes copy-editing
|
||||
|
||||
---
|
||||
Changes | 398 ++++++++++++++++++++++++++++----------------------------
|
||||
1 file changed, 201 insertions(+), 197 deletions(-)
|
||||
|
||||
diff --git a/Changes b/Changes
|
||||
index 1af198ba77..75842fc216 100644
|
||||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -1,5 +1,5 @@
|
||||
-OCaml 5.2.0
|
||||
-------------
|
||||
+OCaml 5.2.0 (13 May 2024)
|
||||
+-------------------------
|
||||
|
||||
(Changes that can break existing programs are marked with a "*")
|
||||
|
||||
@@ -12,60 +12,6 @@ OCaml 5.2.0
|
||||
- #12667: extend the latter to POWER 64 bits, big-endian, ELFv2 ABI
|
||||
(A. Wilcox, review by Xavier Leroy)
|
||||
|
||||
-### Language features:
|
||||
-
|
||||
-- #12295, #12568: Give `while true' a polymorphic type, similarly to
|
||||
- `assert false'
|
||||
- (Jeremy Yallop, review by Nicolás Ojeda Bär and Gabriel Scherer,
|
||||
- suggestion by Rodolphe Lepigre and John Whitington)
|
||||
-
|
||||
-- #12315: Use type annotations from arguments in let rec
|
||||
- (Stephen Dolan, review by Gabriel Scherer)
|
||||
-
|
||||
-- #11252, RFC 27: Support raw identifier syntax \#foo
|
||||
- (Stephen Dolan, review by David Allsopp, Gabriel Scherer and Olivier Nicole)
|
||||
-
|
||||
-- #12044: Add local module open syntax for types.
|
||||
- ```
|
||||
- module A = struct
|
||||
- type t = int
|
||||
- type r = unit
|
||||
- type s = string
|
||||
- end
|
||||
-
|
||||
- type example = A.(t * r * s)
|
||||
- ```
|
||||
- (Alistair O'Brien, review by Gabriel Scherer, Nicolás Ojeda Bär
|
||||
- and Florian Angeletti)
|
||||
-
|
||||
-- #12456: Document the incompatibility between effects on the one
|
||||
- hand, and `caml_callback` and asynchronous callbacks (signal
|
||||
- handlers, finalisers, memprof callbacks...) on the other hand.
|
||||
- (Guillaume Munch-Maccagnoni, review by KC Sivaramakrishnan)
|
||||
-
|
||||
-- #12375: allow use of [@untagged] for all immediate types like char, bool,
|
||||
- and variant with only constant constructors.
|
||||
- (Christophe Raffalli, review by Gabriel Scherer)
|
||||
-
|
||||
-* #12502: the compiler now normalizes the newline sequence \r\n to
|
||||
- a single \n character during lexing, to guarantee that the semantics
|
||||
- of newlines in string literals is not modified by Windows tools
|
||||
- transforming \n into \r\n in source files.
|
||||
- Warning 29 [eol-in-string] is not emitted anymore, as the normalization
|
||||
- gives a more robust semantics to newlines in string literals.
|
||||
- (Gabriel Scherer and Damien Doligez, review by Daniel Bünzli, David
|
||||
- Allsopp, Andreas Rossberg, Xavier Leroy, report by Andreas Rossberg)
|
||||
-
|
||||
-- #13130: minor fixes to pprintast for raw identifiers and local module open
|
||||
- syntax for types.
|
||||
- (Chet Murthy, review by Gabriel Scherer)
|
||||
-
|
||||
-### Type system:
|
||||
-
|
||||
-- #12313, #11799: Do not re-build as-pattern type when a ground type annotation
|
||||
- is given. This allows to work around problems with GADTs in as-patterns.
|
||||
- (Jacques Garrigue, report by Leo White, review by Gabriel Scherer)
|
||||
-
|
||||
### Runtime system:
|
||||
|
||||
- #12193: Re-introduce GC compaction for shared pools
|
||||
@@ -76,6 +22,12 @@ OCaml 5.2.0
|
||||
David Allsopp, Miod Vallat, Artem Pianykh, Stephen Dolan, Mark Shinwell
|
||||
and KC Sivaramakrishnan)
|
||||
|
||||
+- #12114: Add ThreadSanitizer support
|
||||
+ (Fabrice Buoro and Olivier Nicole, based on an initial work by Anmol Sahoo,
|
||||
+ review by Damien Doligez, Sébastien Hinderer, Jacques-Henri Jourdan, Luc
|
||||
+ Maranget, Guillaume Munch-Maccagnoni, Gabriel Scherer)
|
||||
+
|
||||
+
|
||||
- #12850: Update Gc.quick_stat data at the end of major cycles and compaction
|
||||
This PR adds an additional caml_collect_gc_stats_sample_stw to the major heap
|
||||
cycling stw. This means that Gc.quick_stat now actually reflects the state of
|
||||
@@ -148,11 +100,6 @@ OCaml 5.2.0
|
||||
arise at specific locations during domain creation and shutdown.
|
||||
(Guillaume Munch-Maccagnoni, review by Gabriel Scherer)
|
||||
|
||||
-- #12114: Add ThreadSanitizer support
|
||||
- (Fabrice Buoro and Olivier Nicole, based on an initial work by Anmol Sahoo,
|
||||
- review by Damien Doligez, Sébastien Hinderer, Jacques-Henri Jourdan, Luc
|
||||
- Maranget, Guillaume Munch-Maccagnoni, Gabriel Scherer)
|
||||
-
|
||||
- #11911, #12381: Restore statmemprof functionality in part, with
|
||||
some API changes in Gc.Memprof.
|
||||
(Nick Barnes, review by Jacques-Henri Jourdan
|
||||
@@ -264,34 +211,48 @@ OCaml 5.2.0
|
||||
(Olivier Nicole, suggested by Stephen Dolan, review by Gabriel Scherer,
|
||||
Miod Vallat and Damien Doligez)
|
||||
|
||||
-### Code generation and optimizations:
|
||||
+### Language features:
|
||||
|
||||
-- #11239: on x86-64 and RISC-V, reduce alignment of OCaml stacks from 16 to 8.
|
||||
- This reduces stack usage. It's only C stacks that require 16-alignment.
|
||||
- (Xavier Leroy, review by Gabriel Scherer and Stephen Dolan)
|
||||
+- #12295, #12568: Give `while true' a polymorphic type, similarly to
|
||||
+ `assert false'
|
||||
+ (Jeremy Yallop, review by Nicolás Ojeda Bär and Gabriel Scherer,
|
||||
+ suggestion by Rodolphe Lepigre and John Whitington)
|
||||
|
||||
-- #12311: on POWER, 32-bit FP numbers stored in memory (e.g. in bigarrays)
|
||||
- were not correctly rounded sometimes.
|
||||
- (Xavier Leroy, review by Anil Madhavapeddy and Tim McGilchrist)
|
||||
+- #12044: Add local module open syntax for types.
|
||||
+ ```
|
||||
+ module A = struct
|
||||
+ type t = int
|
||||
+ type r = unit
|
||||
+ type s = string
|
||||
+ end
|
||||
|
||||
-- #12551, #12608, #12782, #12596: Overhaul of recursive value compilation.
|
||||
- Non-function recursive bindings are now forbidden from Lambda onwards,
|
||||
- and compiled using a new Value_rec_compiler module.
|
||||
- (Vincent Laviron and Lunia Ayanides, review by Gabriel Scherer,
|
||||
- Stefan Muenzel and Nathanaëlle Courant)
|
||||
+ type example = A.(t * r * s)
|
||||
+ ```
|
||||
+ (Alistair O'Brien, review by Gabriel Scherer, Nicolás Ojeda Bär
|
||||
+ and Florian Angeletti)
|
||||
|
||||
-- #1809, #12181: rewrite `compare x y op 0` to `x op y` when values are integers
|
||||
- (Xavier Clerc, Stefan Muenzel, review by Gabriel Scherer and Vincent Laviron)
|
||||
+- #11252, RFC 27: Support raw identifier syntax \#foo
|
||||
+ (Stephen Dolan, review by David Allsopp, Gabriel Scherer and Olivier Nicole)
|
||||
|
||||
-- #12825: disable common subexpression elimination for atomic loads... again.
|
||||
- (Gabriel Scherer, review by KC Sivaramakrishnan, Xavier Leroy
|
||||
- and Vincent Laviron, report by Vesa Karvonen)
|
||||
+
|
||||
+- #12315: Use type annotations from arguments in let rec
|
||||
+ (Stephen Dolan, review by Gabriel Scherer)
|
||||
+
|
||||
+- #12375: allow use of [@untagged] for all immediate types like char, bool,
|
||||
+ and variant with only constant constructors.
|
||||
+ (Christophe Raffalli, review by Gabriel Scherer)
|
||||
+
|
||||
+* #12502: the compiler now normalizes the newline sequence \r\n to
|
||||
+ a single \n character during lexing, to guarantee that the semantics
|
||||
+ of newlines in string literals is not modified by Windows tools
|
||||
+ transforming \n into \r\n in source files.
|
||||
+ Warning 29 [eol-in-string] is not emitted anymore, as the normalization
|
||||
+ gives a more robust semantics to newlines in string literals.
|
||||
+ (Gabriel Scherer and Damien Doligez, review by Daniel Bünzli, David
|
||||
+ Allsopp, Andreas Rossberg, Xavier Leroy, report by Andreas Rossberg)
|
||||
|
||||
### Standard library:
|
||||
|
||||
-- #12716: Add `Format.pp_print_nothing` function.
|
||||
- (Léo Andrès, review by Gabriel Scherer and Nicolás Ojeda Bär)
|
||||
-
|
||||
- #11563: Add the Dynarray module to the stdlib. Dynamic arrays are
|
||||
arrays whose length can be changed by adding or removing elements at
|
||||
the end, similar to 'vectors' in C++ or Rust.
|
||||
@@ -299,6 +260,10 @@ OCaml 5.2.0
|
||||
Daniel Bünzli, Guillaume Munch-Maccagnoni, Clément Allain,
|
||||
Damien Doligez, Wiktor Kuchta and Pieter Goetschalckx)
|
||||
|
||||
+
|
||||
+- #12716: Add `Format.pp_print_nothing` function.
|
||||
+ (Léo Andrès, review by Gabriel Scherer and Nicolás Ojeda Bär)
|
||||
+
|
||||
* #6732, #12423: Make Buffer.add_substitute surjective and fix its
|
||||
documentation.
|
||||
(Damien Doligez, review by Antonin Décimo)
|
||||
@@ -380,6 +345,35 @@ OCaml 5.2.0
|
||||
C API.
|
||||
(David Allsopp, review by Nicolás Ojeda Bär and Xavier Leroy)
|
||||
|
||||
+### Type system:
|
||||
+
|
||||
+- #12313, #11799: Do not re-build as-pattern type when a ground type annotation
|
||||
+ is given. This allows to work around problems with GADTs in as-patterns.
|
||||
+ (Jacques Garrigue, report by Leo White, review by Gabriel Scherer)
|
||||
+
|
||||
+### Code generation and optimizations:
|
||||
+
|
||||
+- #11239: on x86-64 and RISC-V, reduce alignment of OCaml stacks from 16 to 8.
|
||||
+ This reduces stack usage. It's only C stacks that require 16-alignment.
|
||||
+ (Xavier Leroy, review by Gabriel Scherer and Stephen Dolan)
|
||||
+
|
||||
+- #12311: on POWER, 32-bit FP numbers stored in memory (e.g. in bigarrays)
|
||||
+ were not correctly rounded sometimes.
|
||||
+ (Xavier Leroy, review by Anil Madhavapeddy and Tim McGilchrist)
|
||||
+
|
||||
+- #12551, #12608, #12782, #12596: Overhaul of recursive value compilation.
|
||||
+ Non-function recursive bindings are now forbidden from Lambda onwards,
|
||||
+ and compiled using a new Value_rec_compiler module.
|
||||
+ (Vincent Laviron and Lunia Ayanides, review by Gabriel Scherer,
|
||||
+ Stefan Muenzel and Nathanaëlle Courant)
|
||||
+
|
||||
+- #1809, #12181: rewrite `compare x y op 0` to `x op y` when values are integers
|
||||
+ (Xavier Clerc, Stefan Muenzel, review by Gabriel Scherer and Vincent Laviron)
|
||||
+
|
||||
+- #12825: disable common subexpression elimination for atomic loads... again.
|
||||
+ (Gabriel Scherer, review by KC Sivaramakrishnan, Xavier Leroy
|
||||
+ and Vincent Laviron, report by Vesa Karvonen)
|
||||
+
|
||||
### Other libraries:
|
||||
|
||||
- #12213: Dynlink library, improve legibility of error messages
|
||||
@@ -390,98 +384,14 @@ OCaml 5.2.0
|
||||
instead of `value`.
|
||||
(Xavier Leroy, review by David Allsopp)
|
||||
|
||||
-### Tools:
|
||||
-
|
||||
-- #12340: testsuite: collect known issues with current -short-paths
|
||||
- implementation for existential types
|
||||
- (Florian Angeletti, Samuel Hym, review by Florian Angeletti and Thomas Refis)
|
||||
-
|
||||
-- #12147: ocamllex: Allow carriage returns at the end of line directives.
|
||||
- (SeungCheol Jung, review by Nicolás Ojeda Bär)
|
||||
-
|
||||
-- #12260: Fix invalid_argument on some external or module aliases in ocamlnat
|
||||
- (Fabian Hemmer, review by Vincent Laviron)
|
||||
-
|
||||
-- #12185: New script language for ocamltest.
|
||||
- (Damien Doligez with Florian Angeletti, Sébastien Hinderer, Gabriel Scherer,
|
||||
- review by Sébastien Hinderer and Gabriel Scherer)
|
||||
-
|
||||
-- #12371: ocamltest: fix recursive expansion of variables.
|
||||
- (Antonin Décimo, Damien Doligez, review by Sébastien Hinderer,
|
||||
- Damien Doligez, Gabriel Scherer, and Xavier Leroy)
|
||||
-
|
||||
-* #12497, #12613: Make ocamlc/ocamlopt fail with an error when no
|
||||
- input files are specified to build an executable.
|
||||
- (Antonin Décimo, review by Sébastien Hinderer)
|
||||
-
|
||||
-- #12576: ocamldep: various refactors.
|
||||
- (Antonin Décimo, review by Florian Angeletti, Gabriel Scherer, and Léo Andrès)
|
||||
-
|
||||
-- #12615: ocamldoc: get rid of the odoc_literate and odoc_todo generators.
|
||||
- (Sébaistien Hinderer, review by Gabriel Scherer and Florian Angeletti)
|
||||
-
|
||||
-- #12624: Use $XDG_CONFIG_DIRS in addition to $XDG_CONFIG_HOME when searching
|
||||
- for init.ml and use this to extend init.ml support to the toplevel when
|
||||
- running on Windows.
|
||||
- (David Allsopp, report by Jonah Beckford, review by Nicolás Ojeda Bär and
|
||||
- Antonin Décimo)
|
||||
-
|
||||
-- #12688: Setting the env variable `NO_COLOR` with an empty value no longer
|
||||
- has effects. Previously, setting `NO_COLOR` with any value, including
|
||||
- the empty value, would disable colors (unless `OCAML_COLOR` is also set).
|
||||
- After this change, the user must set `NO_COLOR` with an non-empty value
|
||||
- to disable colors. This reflects a specification clarification/change
|
||||
- from the upstream website at https://no-color.org.
|
||||
- (Favonia, review by Gabriel Scherer)
|
||||
-
|
||||
-- #12744: ocamltest: run tests in recursive subdirs more eagerly
|
||||
- (Nick Roberts, review by Nicolás Ojeda Bär)
|
||||
-
|
||||
-- #12901, 12908: ocamllex: add overflow checks to prevent generating incorrect
|
||||
- lexers; use unsigned numbers in the table encoding when possible.
|
||||
- (Vincent Laviron, report by Edwin Török, review by Xavier Leroy)
|
||||
-
|
||||
-### Manual and documentation:
|
||||
-
|
||||
-- #12338: clarification of the documentation of process related function in
|
||||
- the unix module regarding the first element of args and shell's pid.
|
||||
- (Christophe Raffalli, review by Florian Angeletti)
|
||||
-
|
||||
-- #12473: Document in runtime/memory.c our current understanding of
|
||||
- accesses to the OCaml heap from the C runtime code -- the problem
|
||||
- of hybrid programs mixing two memory models.
|
||||
- (Gabriel Scherer and Guillaume Munch-Maccagnoni, review by Olivier
|
||||
- Nicole and Xavier Leroy)
|
||||
-
|
||||
-- #12694: Document in runtime/tsan.c the TSan instrumentation choices and the
|
||||
- consequences with regard to the memory model.
|
||||
- (Olivier Nicole, review by Miod Vallat, Gabriel Scherer, Guillaume
|
||||
- Munch-Maccagnoni and Fabrice Buoro)
|
||||
-
|
||||
-- #12802: Add manual chapter about ThreadSanitizer support
|
||||
- (Olivier Nicole, review by Miod Vallat, Sebastien Hinderer, Fabrice Buoro,
|
||||
- Gabriel Scherer and KC Sivaramakrishnan)
|
||||
-
|
||||
-- #12819: Clarify which runtime interactions are allowed in custom ops
|
||||
- (Basile Clément, review by Guillaume Munch-Maccagnoni and Xavier Leroy)
|
||||
-
|
||||
-- #12840: manual: update runtime tracing chapter for custom events (ex #12335)
|
||||
- (Lucas Pluvinage, Sadiq Jaffer and Olivier Nicole, review by Gabriel Scherer,
|
||||
- David Allsopp, Tim McGilchrist and Thomas Leonard)
|
||||
-
|
||||
-- #13066, update OCAMLRUNPARAM documentation for the stack size parameter l
|
||||
- (Florian Angeletti, review by Nicolás Ojeda Bär, Tim McGilchrist, and
|
||||
- Miod Vallat)
|
||||
-
|
||||
-- #13078: update Format tutorial on structural boxes to mention alignment
|
||||
- questions.
|
||||
- (Edwin Török, review by Florian Angeletti)
|
||||
-
|
||||
-- #13092: document the existence of the `[@@poll error]` built-in attribute
|
||||
- (Florian Angeletti, review by Gabriel Scherer)
|
||||
-
|
||||
### Compiler user-interface and warnings:
|
||||
|
||||
+- #11989, #12246, RFC 31: New flag, -H, to allow for transitive dependencies
|
||||
+ without including them in the initial environment.
|
||||
+ (Chris Casinghino, François Bobot, and Gabriel Scherer, review by Leo White
|
||||
+ and Stefan Muenzel, RFC by François Bobot)
|
||||
+
|
||||
+
|
||||
* #10613, #12405: Simplify the values used for the system variable (`system:` in
|
||||
`ocamlopt -config` or the `Config.system` constant). In particular, s390x and
|
||||
ppc64 now report "linux" instead of "elf"; all variants of 32-bit ARM on Linux
|
||||
@@ -493,11 +403,6 @@ OCaml 5.2.0
|
||||
(David Allsopp, request by Kate Deplaix, review by Sébastien Hinderer and
|
||||
Xavier Leroy)
|
||||
|
||||
-- #11989, #12246, RFC 31: New flag, -H, to allow for transitive dependencies
|
||||
- without including them in the initial environment.
|
||||
- (Chris Casinghino, François Bobot, and Gabriel Scherer, review by Leo White
|
||||
- and Stefan Muenzel, RFC by François Bobot)
|
||||
-
|
||||
- #12247: configure: --disable-ocamldebug can now be used instead
|
||||
of --disable-debugger (which remains available for compatibility)
|
||||
(Gabriel Scherer, review by Damien Doligez and Sébastien Hinderer)
|
||||
@@ -546,9 +451,125 @@ OCaml 5.2.0
|
||||
|
||||
* #12942: Fix an line ordering in some module inclusion error messages
|
||||
(Nick Roberts, review by Florian Angeletti, report by Carl Eastlund)
|
||||
+### Manual and documentation:
|
||||
+
|
||||
+- #12338: clarification of the documentation of process related function in
|
||||
+ the unix module regarding the first element of args and shell's pid.
|
||||
+ (Christophe Raffalli, review by Florian Angeletti)
|
||||
+
|
||||
+- #12473: Document in runtime/memory.c our current understanding of
|
||||
+ accesses to the OCaml heap from the C runtime code -- the problem
|
||||
+ of hybrid programs mixing two memory models.
|
||||
+ (Gabriel Scherer and Guillaume Munch-Maccagnoni, review by Olivier
|
||||
+ Nicole and Xavier Leroy)
|
||||
+
|
||||
+- #12456: Document the incompatibility between effects on the one
|
||||
+ hand, and `caml_callback` and asynchronous callbacks (signal
|
||||
+ handlers, finalisers, memprof callbacks...) on the other hand.
|
||||
+ (Guillaume Munch-Maccagnoni, review by KC Sivaramakrishnan)
|
||||
+
|
||||
+- #12694: Document in runtime/tsan.c the TSan instrumentation choices and the
|
||||
+ consequences with regard to the memory model.
|
||||
+ (Olivier Nicole, review by Miod Vallat, Gabriel Scherer, Guillaume
|
||||
+ Munch-Maccagnoni and Fabrice Buoro)
|
||||
+
|
||||
+- #12802: Add manual chapter about ThreadSanitizer support
|
||||
+ (Olivier Nicole, review by Miod Vallat, Sebastien Hinderer, Fabrice Buoro,
|
||||
+ Gabriel Scherer and KC Sivaramakrishnan)
|
||||
+
|
||||
+- #12819: Clarify which runtime interactions are allowed in custom ops
|
||||
+ (Basile Clément, review by Guillaume Munch-Maccagnoni and Xavier Leroy)
|
||||
+
|
||||
+- #12840: manual: update runtime tracing chapter for custom events (ex #12335)
|
||||
+ (Lucas Pluvinage, Sadiq Jaffer and Olivier Nicole, review by Gabriel Scherer,
|
||||
+ David Allsopp, Tim McGilchrist and Thomas Leonard)
|
||||
+
|
||||
+- #13066, update OCAMLRUNPARAM documentation for the stack size parameter l
|
||||
+ (Florian Angeletti, review by Nicolás Ojeda Bär, Tim McGilchrist, and
|
||||
+ Miod Vallat)
|
||||
+
|
||||
+- #13078: update Format tutorial on structural boxes to mention alignment
|
||||
+ questions.
|
||||
+ (Edwin Török, review by Florian Angeletti)
|
||||
+
|
||||
+- #13092: document the existence of the `[@@poll error]` built-in attribute
|
||||
+ (Florian Angeletti, review by Gabriel Scherer)
|
||||
+
|
||||
+### Tools:
|
||||
+
|
||||
+- #12340: testsuite: collect known issues with current -short-paths
|
||||
+ implementation for existential types
|
||||
+ (Florian Angeletti, Samuel Hym, review by Florian Angeletti and Thomas Refis)
|
||||
+
|
||||
+- #12147: ocamllex: Allow carriage returns at the end of line directives.
|
||||
+ (SeungCheol Jung, review by Nicolás Ojeda Bär)
|
||||
+
|
||||
+- #12260: Fix invalid_argument on some external or module aliases in ocamlnat
|
||||
+ (Fabian Hemmer, review by Vincent Laviron)
|
||||
+
|
||||
+- #12185: New script language for ocamltest.
|
||||
+ (Damien Doligez with Florian Angeletti, Sébastien Hinderer, Gabriel Scherer,
|
||||
+ review by Sébastien Hinderer and Gabriel Scherer)
|
||||
+
|
||||
+- #12371: ocamltest: fix recursive expansion of variables.
|
||||
+ (Antonin Décimo, Damien Doligez, review by Sébastien Hinderer,
|
||||
+ Damien Doligez, Gabriel Scherer, and Xavier Leroy)
|
||||
+
|
||||
+* #12497, #12613: Make ocamlc/ocamlopt fail with an error when no
|
||||
+ input files are specified to build an executable.
|
||||
+ (Antonin Décimo, review by Sébastien Hinderer)
|
||||
+
|
||||
+- #12576: ocamldep: various refactors.
|
||||
+ (Antonin Décimo, review by Florian Angeletti, Gabriel Scherer, and Léo Andrès)
|
||||
+
|
||||
+- #12615: ocamldoc: get rid of the odoc_literate and odoc_todo generators.
|
||||
+ (Sébaistien Hinderer, review by Gabriel Scherer and Florian Angeletti)
|
||||
+
|
||||
+- #12624: Use $XDG_CONFIG_DIRS in addition to $XDG_CONFIG_HOME when searching
|
||||
+ for init.ml and use this to extend init.ml support to the toplevel when
|
||||
+ running on Windows.
|
||||
+ (David Allsopp, report by Jonah Beckford, review by Nicolás Ojeda Bär and
|
||||
+ Antonin Décimo)
|
||||
+
|
||||
+- #12688: Setting the env variable `NO_COLOR` with an empty value no longer
|
||||
+ has effects. Previously, setting `NO_COLOR` with any value, including
|
||||
+ the empty value, would disable colors (unless `OCAML_COLOR` is also set).
|
||||
+ After this change, the user must set `NO_COLOR` with an non-empty value
|
||||
+ to disable colors. This reflects a specification clarification/change
|
||||
+ from the upstream website at https://no-color.org.
|
||||
+ (Favonia, review by Gabriel Scherer)
|
||||
+
|
||||
+- #12744: ocamltest: run tests in recursive subdirs more eagerly
|
||||
+ (Nick Roberts, review by Nicolás Ojeda Bär)
|
||||
+
|
||||
+- #12901, 12908: ocamllex: add overflow checks to prevent generating incorrect
|
||||
+ lexers; use unsigned numbers in the table encoding when possible.
|
||||
+ (Vincent Laviron, report by Edwin Török, review by Xavier Leroy)
|
||||
|
||||
### Internal/compiler-libs changes:
|
||||
|
||||
+- #12508 : Add compiler-side support for project-wide occurrences in Merlin, by
|
||||
+ generating index tables of all identifier occurrences. This extra data in .cmt
|
||||
+ files is only added when the new flag -bin-annot-occurrences is passed.
|
||||
+ (Ulysse Gérard, Nathanaëlle Courant, suggestions by Gabriel Scherer and Thomas
|
||||
+ Refis, review by Florian Angeletti, Gabriel Scherer and Thomas Refis)
|
||||
+
|
||||
+- #12236, #12386, #12391, #12496, #12673: Use syntax as sole determiner of arity
|
||||
+ This changes function arity to be based solely on the source program's
|
||||
+ parsetree. Previously, the heuristic for arity had more subtle heuristics
|
||||
+ that involved type information about patterns. Function arity is important
|
||||
+ because it determines when a pattern match's effects run and is an input
|
||||
+ into the fast path for function application.
|
||||
+
|
||||
+ This change affects tooling: it changes the function constructs in parsetree
|
||||
+ and typedtree.
|
||||
+
|
||||
+ See https://github.com/ocaml/RFCs/pull/32 for the original RFC.
|
||||
+
|
||||
+ (Nick Roberts; review by Richard Eisenberg, Leo White, and Gabriel Scherer;
|
||||
+ RFC by Stephen Dolan)
|
||||
+
|
||||
+
|
||||
- #12639: parsing: Attach a location to the RHS of Ptyp_alias
|
||||
and improve the 'alias type mismatch' error message.
|
||||
(Jules Aguillon, review by Florian Angeletti)
|
||||
@@ -583,21 +604,6 @@ OCaml 5.2.0
|
||||
in Typecore in favor of local mutable state.
|
||||
(Nick Roberts, review by Takafumi Saikawa)
|
||||
|
||||
-- #12236, #12386, #12391, #12496, #12673: Use syntax as sole determiner of arity
|
||||
- This changes function arity to be based solely on the source program's
|
||||
- parsetree. Previously, the heuristic for arity had more subtle heuristics
|
||||
- that involved type information about patterns. Function arity is important
|
||||
- because it determines when a pattern match's effects run and is an input
|
||||
- into the fast path for function application.
|
||||
-
|
||||
- This change affects tooling: it changes the function constructs in parsetree
|
||||
- and typedtree.
|
||||
-
|
||||
- See https://github.com/ocaml/RFCs/pull/32 for the original RFC.
|
||||
-
|
||||
- (Nick Roberts; review by Richard Eisenberg, Leo White, and Gabriel Scherer;
|
||||
- RFC by Stephen Dolan)
|
||||
-
|
||||
- #12542: Minor bugfix to #12236: restore dropped call to `instance`
|
||||
(Nick Roberts, review by Jacques Garrigue)
|
||||
|
||||
@@ -650,12 +656,6 @@ OCaml 5.2.0
|
||||
- #12764: Move all installable headers in `caml/` sub-directories.
|
||||
(Antonin Décimo, review by Gabriel Scherer and David Allsopp)
|
||||
|
||||
-- #12508 : Add compiler-side support for project-wide occurrences in Merlin, by
|
||||
- generating index tables of all identifier occurrences. This extra data in .cmt
|
||||
- files is only added when the new flag -bin-annot-occurrences is passed.
|
||||
- (Ulysse Gérard, Nathanaëlle Courant, suggestions by Gabriel Scherer and Thomas
|
||||
- Refis, review by Florian Angeletti, Gabriel Scherer and Thomas Refis)
|
||||
-
|
||||
- #12914: Slightly change the s390x assembly dialect in order to build with
|
||||
Clang's integrated assembler.
|
||||
(Miod Vallat, review by Gabriel Scherer)
|
||||
@@ -888,6 +888,10 @@ OCaml 5.2.0
|
||||
- #13094: Fix undefined behavior of left-shifting a negative number.
|
||||
(Antonin Décimo, review by Miod Vallat and Nicolás Ojeda Bär)
|
||||
|
||||
+- #13130: minor fixes to pprintast for raw identifiers and local module open
|
||||
+ syntax for types.
|
||||
+ (Chet Murthy, review by Gabriel Scherer)
|
||||
+
|
||||
OCaml 5.1.1 (8 December 2023)
|
||||
----------------------------
|
||||
|
||||
--
|
||||
2.44.0
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
From edd903fc73b98eb784b307a47110985967cb1d09 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 4/7] configure: Allow user defined C compiler flags.
|
||||
Subject: [PATCH 2/4] configure: Allow user defined C compiler flags.
|
||||
|
||||
---
|
||||
configure.ac | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
configure.ac | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 48aa9f0a29..fc29c88f50 100644
|
||||
|
|
@ -31,15 +31,3 @@ index 48aa9f0a29..fc29c88f50 100644
|
|||
mkdll_ldflags="${mkdll_ldflags} ${mkexe_ldflags_prefix}${flag}"
|
||||
done
|
||||
mkdll_ldflags_exp="$mkdll_ldflags"])
|
||||
@@ -2674,7 +2678,7 @@ ${mkdll_ldflags}"
|
||||
],[
|
||||
mkdll_ldflags='$(OC_DLL_LDFLAGS) $(LDFLAGS)'
|
||||
mkdll_ldflags_exp="${oc_dll_ldflags}"
|
||||
- AS_IF([test -n ${LDFLAGS}],
|
||||
+ AS_IF([test -n "${LDFLAGS}"],
|
||||
[mkdll_ldflags_exp="$mkdll_ldflags_exp $LDFLAGS"])
|
||||
mkexe_ldflags="\$(OC_LDFLAGS) \$(LDFLAGS)"
|
||||
mkexe_ldflags_exp="${oc_ldflags} ${LDFLAGS}"
|
||||
--
|
||||
2.44.0
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From acdc441ff1acb5390467e649bc9a9bfddd7df774 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Thu, 9 May 2024 10:03:23 +0200
|
||||
Subject: [PATCH 5/7] flambda: Improve transitive closure in
|
||||
Subject: [PATCH 3/4] flambda: Improve transitive closure in
|
||||
invariant_params_in_recursion (#13150)
|
||||
|
||||
The old implementation did not really exploit the sparseness of the
|
||||
|
|
@ -20,17 +20,17 @@ index 75842fc216..d26512067d 100644
|
|||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -1,6 +1,11 @@
|
||||
OCaml 5.2.0 (13 May 2024)
|
||||
-------------------------
|
||||
OCaml 5.2.1 (18 November 2024)
|
||||
------------------------------
|
||||
|
||||
+- #13150: improve a transitive-closure computation algorithm in the flambda
|
||||
+ middle-end to avoid a compilation time blowup on Menhir-generated code
|
||||
+ (Florian Weimer, review by Gabriel Scherer and Pierre Chambart,
|
||||
+ report by Richard Jones)
|
||||
+
|
||||
(Changes that can break existing programs are marked with a "*")
|
||||
|
||||
### Restored and new backends:
|
||||
- #13207: Be sure to reload the register caching the exception handler in
|
||||
caml_c_call and caml_c_call_stack_args, as its value may have been changed
|
||||
if the OCaml stack is expanded during a callback.
|
||||
diff --git a/middle_end/flambda/invariant_params.ml b/middle_end/flambda/invariant_params.ml
|
||||
index 414d39310a..dba63970fd 100644
|
||||
--- a/middle_end/flambda/invariant_params.ml
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From 4eb80b13779125fcd76a445ab0004ca064fab634 Mon Sep 17 00:00:00 2001
|
||||
From: Miod Vallat <miod@tarides.com>
|
||||
Date: Fri, 7 Jun 2024 06:19:45 +0000
|
||||
Subject: [PATCH 7/7] Compute more accurate instruction sizes for branch
|
||||
Subject: [PATCH 4/4] Compute more accurate instruction sizes for branch
|
||||
relaxation.
|
||||
|
||||
(cherry picked from commit 114ddae2d4c85391a4f939dc6623424ae35a07aa)
|
||||
|
|
@ -14,17 +14,17 @@ diff --git a/Changes b/Changes
|
|||
index 53bb5369b9..1a81509247 100644
|
||||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -7,6 +7,10 @@ OCaml 5.2 maintenance version
|
||||
(Miod Vallat, report by Vesa Karvonen, review by Gabriel Scherer and
|
||||
Xavier Leroy)
|
||||
@@ -6,6 +6,10 @@ OCaml 5.2.1 (18 November 2024)
|
||||
(Florian Weimer, review by Gabriel Scherer and Pierre Chambart,
|
||||
report by Richard Jones)
|
||||
|
||||
+- #13221: Compute more accurate instruction sizes for branch relocation on
|
||||
+ POWER.
|
||||
+ (Miod Vallat, review by Gabriel Scherer)
|
||||
+
|
||||
OCaml 5.2.0 (13 May 2024)
|
||||
-------------------------
|
||||
|
||||
- #13207: Be sure to reload the register caching the exception handler in
|
||||
caml_c_call and caml_c_call_stack_args, as its value may have been changed
|
||||
if the OCaml stack is expanded during a callback.
|
||||
diff --git a/asmcomp/power/emit.mlp b/asmcomp/power/emit.mlp
|
||||
index 47f5419a92..fdf22996fa 100644
|
||||
--- a/asmcomp/power/emit.mlp
|
||||
|
|
@ -1,165 +0,0 @@
|
|||
From 8637cac022907501c3c0d941e07e436b70c9d4ac Mon Sep 17 00:00:00 2001
|
||||
From: Miod Vallat <118974489+dustanddreams@users.noreply.github.com>
|
||||
Date: Thu, 30 May 2024 09:57:41 +0000
|
||||
Subject: [PATCH 6/7] Reload exception pointer register in caml_c_call*
|
||||
|
||||
The invoked code may end up causing caml_try_realloc_stack() to be invoked,
|
||||
which in turn may replace the stack TRAP_PTR points to, leading to
|
||||
either crashes with the debug runtime (thanks to the old stack contents
|
||||
being overwritten) or all kinds of memory or control flow corruption otherwise.
|
||||
|
||||
Added test for stack reallocation in callback followed by exception raising.
|
||||
|
||||
(cherry picked from commit 6964d3a90f84402ed6066fb1821679435e063067)
|
||||
(cherry picked from commit 1e8a91d305f1fa4668444fb1cce97952dbc39810)
|
||||
---
|
||||
Changes | 9 +++++++++
|
||||
runtime/arm64.S | 6 ++++--
|
||||
runtime/power.S | 6 ++++--
|
||||
runtime/riscv.S | 6 ++++--
|
||||
runtime/s390x.S | 5 +++--
|
||||
testsuite/tests/callback/test1.ml | 5 +++++
|
||||
6 files changed, 29 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/Changes b/Changes
|
||||
index d26512067d..53bb5369b9 100644
|
||||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -1,3 +1,12 @@
|
||||
+OCaml 5.2 maintenance version
|
||||
+-----------------------------
|
||||
+
|
||||
+- #13207: Be sure to reload the register caching the exception handler in
|
||||
+ caml_c_call and caml_c_call_stack_args, as its value may have been changed
|
||||
+ if the OCaml stack is expanded during a callback.
|
||||
+ (Miod Vallat, report by Vesa Karvonen, review by Gabriel Scherer and
|
||||
+ Xavier Leroy)
|
||||
+
|
||||
OCaml 5.2.0 (13 May 2024)
|
||||
-------------------------
|
||||
|
||||
diff --git a/runtime/arm64.S b/runtime/arm64.S
|
||||
index e71f25ebba..6c6495a0a8 100644
|
||||
--- a/runtime/arm64.S
|
||||
+++ b/runtime/arm64.S
|
||||
@@ -569,8 +569,9 @@ FUNCTION(caml_c_call)
|
||||
str TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Call the function */
|
||||
blr ADDITIONAL_ARG
|
||||
- /* Reload alloc ptr */
|
||||
+ /* Reload new allocation pointer & exn handler */
|
||||
ldr ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ ldr TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Load ocaml stack */
|
||||
SWITCH_C_TO_OCAML
|
||||
#if defined(WITH_THREAD_SANITIZER)
|
||||
@@ -625,8 +626,9 @@ FUNCTION(caml_c_call_stack_args)
|
||||
blr ADDITIONAL_ARG
|
||||
/* Restore stack */
|
||||
mov sp, x19
|
||||
- /* Reload alloc ptr */
|
||||
+ /* Reload new allocation pointer & exn handler */
|
||||
ldr ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ ldr TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Switch from C to OCaml */
|
||||
SWITCH_C_TO_OCAML
|
||||
/* Return */
|
||||
diff --git a/runtime/power.S b/runtime/power.S
|
||||
index bfb37fa989..257678100e 100644
|
||||
--- a/runtime/power.S
|
||||
+++ b/runtime/power.S
|
||||
@@ -445,8 +445,9 @@ FUNCTION caml_c_call
|
||||
mr 2, C_CALL_TOC /* restore current TOC */
|
||||
/* Restore return address (in register C_CALL_RET_ADDR, preserved by C) */
|
||||
mtlr C_CALL_RET_ADDR
|
||||
- /* Reload allocation pointer*/
|
||||
+ /* Reload new allocation pointer and exception pointer */
|
||||
ld ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ ld TRAP_PTR, Caml_state(exn_handler)
|
||||
#if defined(WITH_THREAD_SANITIZER)
|
||||
TSAN_SETUP_C_CALL 16
|
||||
/* Save return value registers. Since the called function could be anything,
|
||||
@@ -497,8 +498,9 @@ FUNCTION caml_c_call_stack_args
|
||||
add SP, SP, STACK_ARG_BYTES
|
||||
/* Restore return address (in register C_CALL_RET_ADDR, preserved by C) */
|
||||
mtlr C_CALL_RET_ADDR
|
||||
- /* Reload allocation pointer*/
|
||||
+ /* Reload new allocation pointer and exception pointer */
|
||||
ld ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ ld TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Switch from C to OCaml */
|
||||
SWITCH_C_TO_OCAML
|
||||
/* Return to caller */
|
||||
diff --git a/runtime/riscv.S b/runtime/riscv.S
|
||||
index a2eca7a315..8934db0bb3 100644
|
||||
--- a/runtime/riscv.S
|
||||
+++ b/runtime/riscv.S
|
||||
@@ -516,8 +516,9 @@ L(caml_c_call):
|
||||
sd TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Call the function */
|
||||
jalr ADDITIONAL_ARG
|
||||
- /* Reload alloc ptr */
|
||||
+ /* Reload new allocation pointer & exn handler */
|
||||
ld ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ ld TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Load ocaml stack */
|
||||
SWITCH_C_TO_OCAML
|
||||
#if defined(WITH_THREAD_SANITIZER)
|
||||
@@ -575,8 +576,9 @@ FUNCTION(caml_c_call_stack_args)
|
||||
jalr ADDITIONAL_ARG
|
||||
/* Restore stack */
|
||||
mv sp, s2
|
||||
- /* Reload alloc ptr */
|
||||
+ /* Reload new allocation pointer & exn handler */
|
||||
ld ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ ld TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Switch from C to OCaml */
|
||||
SWITCH_C_TO_OCAML
|
||||
/* Return */
|
||||
diff --git a/runtime/s390x.S b/runtime/s390x.S
|
||||
index b59822ce57..113831a376 100644
|
||||
--- a/runtime/s390x.S
|
||||
+++ b/runtime/s390x.S
|
||||
@@ -515,7 +515,7 @@ LBL(caml_c_call):
|
||||
#endif
|
||||
basr %r14, ADDITIONAL_ARG
|
||||
CLEANUP_AFTER_C_CALL
|
||||
- /* Reload alloc ptr */
|
||||
+ /* Reload new allocation pointer & exn handler */
|
||||
lg ALLOC_PTR, Caml_state(young_ptr)
|
||||
lg TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Load ocaml stack and restore global variables */
|
||||
@@ -584,8 +584,9 @@ LBL(106):
|
||||
CLEANUP_AFTER_C_CALL
|
||||
/* Restore stack */
|
||||
lgr %r15, %r12
|
||||
- /* Reload alloc ptr */
|
||||
+ /* Reload new allocation pointer & exn handler */
|
||||
lg ALLOC_PTR, Caml_state(young_ptr)
|
||||
+ lg TRAP_PTR, Caml_state(exn_handler)
|
||||
/* Switch from C to OCaml */
|
||||
SWITCH_C_TO_OCAML
|
||||
/* Return */
|
||||
diff --git a/testsuite/tests/callback/test1.ml b/testsuite/tests/callback/test1.ml
|
||||
index c39be0c586..f6ad4356cf 100644
|
||||
--- a/testsuite/tests/callback/test1.ml
|
||||
+++ b/testsuite/tests/callback/test1.ml
|
||||
@@ -11,6 +11,9 @@ external mycallback3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> 'd
|
||||
external mycallback4 :
|
||||
('a -> 'b -> 'c -> 'd -> 'e) -> 'a -> 'b -> 'c -> 'd -> 'e = "mycallback4"
|
||||
|
||||
+let rec growstack n =
|
||||
+ if n <= 0 then 0 else 1 + growstack (n - 1)
|
||||
+
|
||||
let rec tak (x, y, z as _tuple) =
|
||||
if x > y then tak(tak (x-1, y, z), tak (y-1, z, x), tak (z-1, x, y))
|
||||
else z
|
||||
@@ -46,3 +49,5 @@ let _ =
|
||||
print_int(trapexit ()); print_newline();
|
||||
print_string(tripwire mypushroot); print_newline();
|
||||
print_string(tripwire mycamlparam); print_newline();
|
||||
+ begin try ignore (mycallback1 growstack 1_000); raise Exit
|
||||
+ with Exit -> () end
|
||||
--
|
||||
2.44.0
|
||||
|
||||
22
ocaml.spec
22
ocaml.spec
|
|
@ -45,8 +45,8 @@ ExcludeArch: %{ix86}
|
|||
%global rcver %{nil}
|
||||
|
||||
Name: ocaml
|
||||
Version: 5.2.0
|
||||
Release: 3%{?dist}
|
||||
Version: 5.2.1
|
||||
Release: 1%{?dist}
|
||||
|
||||
Summary: OCaml compiler and programming environment
|
||||
|
||||
|
|
@ -74,27 +74,20 @@ Source2: ocaml_files.py
|
|||
# existing patches unchanged) adding a comment to note that it should
|
||||
# be incorporated into the git repo at a later time.
|
||||
|
||||
# Upstream after 5.2.0:
|
||||
Patch: 0001-Changes-synchronisation-and-consistency-with-trunk.patch
|
||||
Patch: 0002-Changes-copy-editing.patch
|
||||
|
||||
# Fedora-specific patches
|
||||
Patch: 0003-Don-t-add-rpaths-to-libraries.patch
|
||||
Patch: 0004-configure-Allow-user-defined-C-compiler-flags.patch
|
||||
Patch: 0001-Don-t-add-rpaths-to-libraries.patch
|
||||
Patch: 0002-configure-Allow-user-defined-C-compiler-flags.patch
|
||||
|
||||
# Improve performance of flambda optimizer in some cases. Required to
|
||||
# compiler blow-up in coccinelle package. Upstream, but not included
|
||||
# in 5.2 branch.
|
||||
# https://github.com/ocaml/ocaml/pull/13150
|
||||
Patch: 0005-flambda-Improve-transitive-closure-in-invariant_para.patch
|
||||
|
||||
# Upstream after 5.2.0:
|
||||
Patch: 0006-Reload-exception-pointer-register-in-caml_c_call.patch
|
||||
Patch: 0003-flambda-Improve-transitive-closure-in-invariant_para.patch
|
||||
|
||||
# Fix for ppc64le code generation issue found after 5.2.0 was released.
|
||||
# https://github.com/ocaml/ocaml/issues/13220
|
||||
# https://github.com/ocaml/ocaml/commit/114ddae2d4c85391a4f939dc6623424ae35a07aa
|
||||
Patch: 0007-Compute-more-accurate-instruction-sizes-for-branch-r.patch
|
||||
Patch: 0004-Compute-more-accurate-instruction-sizes-for-branch-r.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: git
|
||||
|
|
@ -482,6 +475,9 @@ hardlink -t $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs
|
|||
|
||||
|
||||
%changelog
|
||||
* Tue Jan 28 2025 Jerry James <loganjerry@gmail.com> - 5.2.1-1
|
||||
- New upstream version 5.2.1
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (ocaml-5.2.0.tar.gz) = 78115690186c13c1f2480e4812a9fe34cce2c28bf8a89d5c9810bca0391f930cecd9cee2b53daca8a32da1815628b33be68f3948f1ad03fa50b72b14e3ea84f2
|
||||
SHA512 (ocaml-5.2.1.tar.gz) = b0803dd90a0ac6fdf609345c481b3dc637eb9cbb9bea296cfd79f6913ab34b9e02970bcddd83e8bc419cbe1c4694bb7889146615841b5ee101081a82eee024e2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue