···1919 (Leo White, Tom Kelly, Anil Madhavapeddy, KC Sivaramakrishnan, Xavier Leroy
2020 and Florian Angeletti, review by the same, Hugo Heuzard, and Ulysse Gérard)
21212222+### Type system
2323+2424+- #11891, #12507: Allow to name new locally abstract types in constructor type
2525+ annotations.
2626+ (Jacques Garrigue, report and review by Gabriel Scherer and Florian Angeletti)
2727+2228### Runtime system:
23292430- #11911, #12923: Multicore statistical memory profiling.
···4046- #11779, #13117: Improve logic for fiber stack alignment.
4147 (Miod Vallat, report by Damien Doligez, review by Gabriel Scherer)
42484949+- #12839: Remove ATOMIC_UINTNAT_INIT from camlatomic.h (as part of a larger
5050+ cleanup of camlatomic.h)
5151+ (David Allsopp, review by Antonin Décimo, Sébastien Hinderer, Samuel Hym,
5252+ Guillaume Munch-Maccagnoni and Miod Vallat)
5353+4354### Code generation and optimizations:
44554556- #13014: Enable compile-time option -function-sections on all previously
···5162 Note that #7241 is not fully fixed yet, see the issue for the
5263 current status.
5364 (Gabriel Scherer, review by Nick Roberts)
5454-5555-- #13079: Save and restore frame pointer across Iextcall on ARM64
5656- (Tim McGilchrist, review by KC Sivaramakrishnan and Miod Vallat)
57655866### Standard library:
5967···7684### Other libraries:
77857886### Tools:
8787+8888+- #11716: ocamllex: mismatched parentheses and curly brackets are now caught
8989+ by ocamllex, instead of causing invalid OCaml code to be generated.
9090+ (Demi Marie Obenour)
79918092- #12904: Run the testsuite with ThreadSanitizer on a PR when label
8193 `run-thread-sanitizer` is added
···116128- #13045: Emphasize caution about behaviour of custom block finalizers.
117129 (Nick Barnes)
118130119119-- #13078: update Format tutorial on structural boxes to mention alignment
120120- questions.
121121- (Edwin Török, review by Florian Angeletti)
122122-123131### Compiler user-interface and warnings:
124132125133* #12084: Check link order when creating archive and when using ocamlopt
···195203196204### Bug fixes:
197205206206+- #12854: Add a test in the regression suite that flags the bug #12825.
207207+ (Luc Maranget)
208208+198209- #12888: fix printing of uncaught exceptions in `.cmo` files passed on the
199210 command-line of the toplevel.
200211 (Nicolás Ojeda Bär, review by Florian Angeletti, report by Daniel Bünzli)
···202213- #12910, #12920: Fix an unsound interaction between first-class modules
203214 and polymorphic records by saving and restoring univar_pairs.
204215 (Stephen Dolan, review by Gabriel Scherer, report by Jeremy Yallop)
205205-206206-- #12924, #12930: Rework package constraint checking to improve interaction with
207207- immediacy
208208- (Chris Casinghino and Florian Angeletti, review by Florian Angeletti and
209209- Richard Eisenberg)
210216211217- #12994: Remove un-used and unsafe caml_drop_continuation
212218 (Tim McGilchrist, reviewed by Gabriel Scherer and Miod Vallat)
···216222 Implementation missing since OCaml 5.0.
217223 (Tim McGilchrist, reviewed by David Allsopp and Miod Vallat)
218224219219-- #13019: Remove linking instructions for the Unix library from threads.cma
220220- (this was done for threads.cmxa in OCaml 3.11). Eliminates warnings from
221221- new lld when using threads.cma of duplicated libraries.
222222- (David Allsopp, review by Nicolás Ojeda Bär)
223223-224225- #13012: parsing: Fix dropped attributes after a '-' or '+'
225226 The syntax '-(1 [@foo])' was incorrectly parsed as '-1'.
226227 (Jules Aguillon, reviewed by Gabriel Scherer, report by Gabriel Scherer)
···234235 output under Windows.
235236 (B. Szilvasy, review by Nicolás Ojeda Bär and Miod Vallat)
236237237237-- #13094: Fix undefined behavior of left-shifting a negative number.
238238- (Antonin Décimo, review by Miod Vallat and Nicolás Ojeda Bär)
239239-240238- #13088: A few type-checker behaviors look at a type to see if there are
241239 any labeled arguments in it. This sometimes required expansion, which
242240 could, in obscure scenarios, result in superfluous type errors.
···317315- #12313, #11799: Do not re-build as-pattern type when a ground type annotation
318316 is given. This allows to work around problems with GADTs in as-patterns.
319317 (Jacques Garrigue, report by Leo White, review by Gabriel Scherer)
320320-321321-- #11891, #12507: Allow to name new locally abstract types in constructor type
322322- annotations.
323323- (Jacques Garrigue, report and review by Gabriel Scherer and Florian Angeletti)
324318325319### Runtime system:
326320···503497 (Guillaume Munch-Maccagnoni, reported by Miod Vallat, suggested by
504498 Hari Hara Naveen S, reviewed by Fabrice Buoro, Gabriel Scherer and
505499 Miod Vallat)
506506-507507-- #12839: Remove ATOMIC_UINTNAT_INIT from camlatomic.h (as part of a larger
508508- cleanup of camlatomic.h)
509509- (David Allsopp, review by Antonin Décimo, Sébastien Hinderer, Samuel Hym,
510510- Guillaume Munch-Maccagnoni and Miod Vallat)
511500512501- #12876: Port ThreadSanitizer support to Linux on POWER
513502 (Miod Vallat, review by Tim McGilchrist)
···548537 (Gabriel Scherer, review by KC Sivaramakrishnan, Xavier Leroy
549538 and Vincent Laviron, report by Vesa Karvonen)
550539551551-- #12854: Add a test in the regression suite that flags the bug #12825.
552552- (Luc Maranget)
553553-554540### Standard library:
555541556542- #12716: Add `Format.pp_print_nothing` function.
···736722- #13066, update OCAMLRUNPARAM documentation for the stack size parameter l
737723 (Florian Angeletti, review by Nicolás Ojeda Bär, Tim McGilchrist, and
738724 Miod Vallat)
725725+726726+- #13078: update Format tutorial on structural boxes to mention alignment
727727+ questions.
728728+ (Edwin Török, review by Florian Angeletti)
739729740730- #13092: document the existence of the `[@@poll error]` built-in attribute
741731 (Florian Angeletti, review by Gabriel Scherer)
···11211111- #12919: Fix register corruption in caml_callback2_asm on s390x.
11221112 (Miod Vallat, review by Gabriel Scherer)
1123111311141114+- #12924, #12930: Rework package constraint checking to improve interaction with
11151115+ immediacy
11161116+ (Chris Casinghino and Florian Angeletti, review by Florian Angeletti and
11171117+ Richard Eisenberg)
11181118+11241119- #12969: Fix a data race in caml_darken_cont
11251120 (Fabrice Buoro and Olivier Nicole, review by Gabriel Scherer and Miod Vallat)
11261121···11281123 invalid programs forming recursive types.
11291124 (Gabriel Scherer, review by Florian Angeletti, report by Neven Villani)
1130112511261126+- #13019: Remove linking instructions for the Unix library from threads.cma
11271127+ (this was done for threads.cmxa in OCaml 3.11). Eliminates warnings from
11281128+ new lld when using threads.cma of duplicated libraries.
11291129+ (David Allsopp, review by Nicolás Ojeda Bär)
11301130+11311131- #13058: Add TSan instrumentation to caml_call_gc(), since it may raise
11321132 exceptions.
11331133 (Fabrice Buoro, Olivier Nicole, Gabriel Scherer and Miod Vallat)
11341134+11351135+- #13079: Save and restore frame pointer across Iextcall on ARM64
11361136+ (Tim McGilchrist, review by KC Sivaramakrishnan and Miod Vallat)
11371137+11381138+- #13094: Fix undefined behavior of left-shifting a negative number.
11391139+ (Antonin Décimo, review by Miod Vallat and Nicolás Ojeda Bär)
1134114011351141OCaml 5.1.1 (8 December 2023)
11361142----------------------------
···15961602- #11889, #11978: ocamldoc: handle injectivity annotations and wildcards in type
15971603 parameters.
15981604 (Florian Angeletti, report by Wiktor Kuchta, review by Jules Aguillon)
15991599-16001600-- #11716: ocamllex: mismatched parentheses and curly brackets are now caught
16011601- by ocamllex, instead of causing invalid OCaml code to be generated.
16021602- (Demi Marie Obenour)
1603160516041606- #11787: Fix GDB scripts to work with OCaml 5's heap layout. (Nick
16051607 Barnes)