From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=YiqOEu8e; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver=tunbury.org Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by plum.tunbury.org (Postfix) with ESMTP id EC54640093 for ; Sat, 5 Sep 2026 10:24:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=WiWNQgELmPSTzyq55u07uIbYYri7qxQ1AzVQ2pwDnrU=; b=YiqOEu8elvo97pFGXe4r2bldnZEAQIZmYnVFoXZlgRpqx098uOmxzmrw N6NbWkBq5XRSBKEUs7bXnAoNDoTk0XJdmGnbJKSENeDwiN1zoVQRXfvzt DooQ4D0k8VCmpjCw98b8/L0QNJRzVCCJHyxypvooOcMAvByWDhcYji8Mo Q=; X-CSE-ConnectionGUID: OV1nUXazR5KeWinMOfyEFw== X-CSE-MsgGUID: kxFymHOqQJqOyqfRTVr//A== Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@prod-sympa-app.inria.fr Received-SPF: SoftFail (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr is inclined to not designate 128.93.162.27 as permitted sender) identity=mailfrom; client-ip=128.93.162.27; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@prod-sympa-app.inria.fr) identity=helo; client-ip=128.93.162.27; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@prod-sympa-app.inria.fr"; x-conformance=spf_only X-IronPort-AV: E=Sophos;i="6.25,263,1779141600"; d="scan'208,217";a="293341211" Received: from prod-sympa-app.inria.fr ([128.93.162.27]) by mail2-relais-roc.national.inria.fr with ESMTP; 05 Sep 2026 12:24:30 +0200 Received: by prod-sympa-app.inria.fr (Postfix, from userid 990) id 8673F8235E; Sat, 5 Sep 2026 12:24:30 +0200 (CEST) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by prod-sympa-app.inria.fr (Postfix) with ESMTP id 5B1DE8234C; Sat, 5 Sep 2026 12:24:15 +0200 (CEST) X-CSE-ConnectionGUID: knEchG/VQI+xZyu41mnqKg== X-CSE-MsgGUID: 5njcijVlRD6M/KiPMKWBeQ== X-ThreatScanner-Verdict: Negative IronPort-Data: A9a23:8p0tZq5Q0tg526mK2UIW5AxRtODGchMFZxGqfqrLsTDasY5as4F+v mRLW2uHPazfM2H3ed9wbYi+pBhUsMWEzYBnSgo/q3szEysa+MHIO4ilIxarNUt+DOWTFRM9t 512hvrodZ1vECeE/n9BFpC78BGQAInRHuKU5NbsY343HUk4Dn9413qPosZh6qZwm9+1HgiRj t37pszbKTeN1iV9Wo4uw/vrRChH4rKo5Vv0gnRkPaoV5A6GyiFMZH4iDfrZw0XQEtE88tGSH L6rIIGRpgvx4xorA9W5pbf3GmViaqLSJwWHlk1NUKGkhBVYzgRqukrsHKd0he9/0l1lrvgpo Dl/ncXYpTQBZ8UgrN8gvyxwT0mSC4UWoe6deSDXXfu7lCUqe1O0qxln4dpf0Ycwoo6bCkkXn RAUxaxkgrluSItazZriItSAiPjPI+HoOq4Uul4n8wj4TuYUUI2fGqDM/PxXiWJYasBmRZ4yZ uILYiE1KQ/cZAdCYxEWDog/laGmnBETcRUB8gLT9PFxujSJilcZPLvFaLI5fvSEQcJPn0+e4 GvA8Gn9Dw0GNfSezyCE+zSinIcjmAuhCdlJSOXoraECbFu7m2oRAxwUa1+BjaeczW2/Y/d8F GYZw397xUQ13AnxJjXnZDWzqXuA+xodQMZ4CPw/8AjLy6zO4g/fCHJsZjVIbdhjvckwQiEs3 VKhhMLsHTUpsbuPSHvb+K38kN+pEToeNjVHfjMDVwZcpdjluoA6yBzVJjp+LJOIYhTOMWmY6 1i3QOIW3d3/UeZjO2SHEVH7b/aEtJPSFEsu+gLNUzvj7wVjZYfjaZbABZ03KxpfBN7xc7VDl CBsdwuiACQmDJeXlSXLTv9l8HSB+aOeKDOF6bJwN8BJyglBMEJPsWydDP+S6aup3gs5lefVX XLu IronPort-HdrOrdr: A9a23:A9bmOaGBGEjcAu4wpLqE/ceALOsnbusQ8zAXPiFKKCC9Hfbyqy nDpp4mPHzP5gr5OktNpTnoAsDpfZq2z/FICPwqTNWftX7dyQ6Vxe9ZgLcKuweQeBEWodQ86Z td X-Talos-CUID: =?us-ascii?q?9a23=3Avkz9vmiXniG8Bvm+FE0gb3wDSzJucXvwx3f/ZHG?= =?us-ascii?q?BKCV5eqyIFQaV/rpHnJ87?= X-Talos-MUID: =?us-ascii?q?9a23=3AaKLRIg7JERgWlCrqzMsf7m9uxow15aalCUIzla8?= =?us-ascii?q?q5ezDFi1IHhSipjmOF9o=3D?= X-IronPort-AV: E=Sophos;i="6.25,263,1779141600"; d="scan'208,217";a="293340837" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown X-MGA-submission: =?us-ascii?q?MDFEUN8eL/imdgPqRpGWPBls5bFTZjTIGCRnf4?= =?us-ascii?q?4qV60wVLokbcRwZLpwYBwAqpD/cmhPoam6flK7gmhjc1c/LRLTYPsvcE?= =?us-ascii?q?2qe5lGswTyWtMjEaV5tQAIHLNHBZSPPC14X6pwNyNKLdcsfiKecQJbYJ?= =?us-ascii?q?YACEV5BExM6Sio+YjY0Cmm5A=3D=3D?= Received: from zcs2-store1.inria.fr ([128.93.142.3]) by mail2-relais-roc.national.inria.fr with ESMTP; 05 Sep 2026 12:24:15 +0200 Date: Sat, 5 Sep 2026 12:24:15 +0200 (CEST) From: Florian Angeletti To: caml-list , caml-announce Message-ID: <1559947875.4488406.1788603855185.JavaMail.zimbra@inria.fr> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=_74dcc6a9-854a-4a8d-8ce5-f9918efde471" X-Originating-IP: [88.162.13.102] X-Mailer: Zimbra 10.1.20_GA_4893 (ZimbraWebClient - FF154 (Linux)/10.1.20_GA_4894) Thread-Index: 2YqUS00SwrFdSdIz6qrieJjW5iAvpA== Thread-Topic: OCaml 5.5.1released Subject: [Caml-list] OCaml 5.5.1released Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 19572 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: Archived-At: --=_74dcc6a9-854a-4a8d-8ce5-f9918efde471 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Dear OCaml users,=20 We have the pleasure of celebrating the birthday of Giovanni Girolamo Sacch= eri=20 by announcing the release of OCaml version 5.5.1.=20 This patch-level release fixes a major type system bug for module-dependent= =20 functions and also contains two security fixes for the runtime: one in the= =20 Marshal module, another inside the loading of bytecode.=20 At a less severe level, this release also fixes two bugs in the runtime for= =20 concurrent programs, another runtime bug for musl users; and a handful of o= ther=20 bugs.=20 The release also restores support for cloning the compiler on macOS.=20 Overall, we are strongly advising you to switch to OCaml 5.5.1 if you were= =20 already using OCaml 5.5.0.=20 The full list of bug fixes is available below for more details.=20 Happy hacking,=20 -- Florian Angeletti, for the OCaml team.=20 Installation Instructions=20 -------------------------------=20 The base compiler can be installed as an opam switch with the following com= mands:=20 opam update=20 opam switch create 5.5.1=20 The source code for the release is also directly available on:=20 * GitHub: https://github.com/ocaml/ocaml/archive/5.5.1.tar.gz)=20 * Inria archive: https://caml.inria.fr/pub/distrib/ocaml-5.5/ocaml-5.5.1.ta= r.gz=20 Changes compared to 5.5.0=20 -------------------------------------=20 ### Type system=20 - [14891](https://github.com/ocaml/ocaml/issues/14891), [14982](https://git= hub.com/ocaml/ocaml/issues/14982): fix scope error leading to an erroneous = typechecking for=20 non-dependent application of module-dependent function in presence of=20 dependent first-class module types:=20 ```ocaml=20 module type T =3D sig module type S end=20 let f (module M:T) (m: (module M.S)) =3D m=20 module type P =3D sig type 'a t end=20 let error =3D=20 f (module struct module type S =3D P end) (module List)=20 ````=20 (Florian Angeletti, report by Hazem ElMasry, review by Gabriel Scherer)=20 ### Runtime=20 - [14872](https://github.com/ocaml/ocaml/issues/14872): harden loading of b= ytecode executable files against corrupted=20 or malicious files having 2^29 TOC entries or more.=20 (Xavier Leroy, review by Nicol=E1s Ojeda B=E4r)=20 - [15019](https://github.com/ocaml/ocaml/issues/15019): `Marshal.from_{stri= ng,bytes}`: guard against overflow in=20 the computation of the total data length.=20 (Xavier Leroy, report by Akshay Singh, review by Nicol=E1s Ojeda B=E4r=20 and Antonin D=E9cimo)=20 - [14933](https://github.com/ocaml/ocaml/issues/14933): Respect `sysconf(_S= C_SIGSTKSZ)` when choosing the size for the=20 alternate signal stack, avoiding fatal errors when linked against musl libc= on=20 some Intel CPUs.=20 (Nat Mote, review by Florian Angeletti and Miod Vallat)=20 - [14940](https://github.com/ocaml/ocaml/issues/14940), fix a memory leak i= n the OCaml runtime by bounding the size=20 of the internal cache of stacks.=20 (Vesa Karvonen, Florian Angeletti, review by Gabriel Scherer)=20 - [15029](https://github.com/ocaml/ocaml/issues/15029): Fix a regression on= Windows where an OCaml thread that never=20 yielded voluntarily would keep the runtime lock forever, so that the other= =20 threads of its domain never ran. Preemptive switching between systhreads ha= d=20 no effect; only explicit calls to `Thread.yield` or blocking sections would= =20 let other threads run.=20 (Nicol=E1s Ojeda B=E4r, report by Daniel Larraz, review by Antonin D=E9cimo= )=20 ### Build system=20 - [14883](https://github.com/ocaml/ocaml/issues/14883), [14884](https://git= hub.com/ocaml/ocaml/issues/14884): fix Windows cross-compilation with older= mingw32-gcc versions=20 (Brian Ward, review by Antonin D=E9cimo and Stefan Muenzel)=20 - [14871](https://github.com/ocaml/ocaml/issues/14871), [14914](https://git= hub.com/ocaml/ocaml/issues/14914): Ignore OCAMLTOP_INCLUDE_PATH during the = build.=20 (David Allsopp, report by Andreas Rossberg, review by Florian Angeletti)=20 - [14901](https://github.com/ocaml/ocaml/issues/14901), [14923](https://git= hub.com/ocaml/ocaml/issues/14923): Fix the generated installation script to= cope with macOS's=20 geriatric version of bash when executing in opam's sandbox.=20 (David Allsopp, report by Julian Fondren and Sacha-=C9lie Ayoun, investigat= ion=20 and initial fix by Kate Deplaix, review by Florian Angeletti)=20 - [14989](https://github.com/ocaml/ocaml/issues/14989): Improve build repro= ducibility by letting only otherlibs/{str,unix}=20 build their own .cmi and .cmx. The generic %.cmi/%.cmx rules of the root=20 Makefile were racing with them under make -j and recorded a different sourc= e=20 path, which changed the interface digest (and, through it, most other compi= led=20 artefacts) as well as the debug info packed into str.a and unix.a.=20 (Bernhard M. Wiedemann, review by David Allsopp and Stefan Muenzel)=20 ### User interface=20 - [14881](https://github.com/ocaml/ocaml/issues/14881), [14882](https://git= hub.com/ocaml/ocaml/issues/14882): fix printing of external types that are = subject to module=20 constraints.=20 (Stefan Muenzel, review by Florian Angeletti)=20 ### Runtime events library=20 - [14966](https://github.com/ocaml/ocaml/issues/14966): add the missing EV_= MINOR_EPHE_CLEAN constructor to=20 Runtime_events.runtime_phase, introduced in [13643](https://github.com/ocam= l/ocaml/issues/13643). The runtime has emitted=20 this phase since 5.4, when a minor collection has to clean locked ephemeron= s,=20 but the OCaml type had no constructor for it, so consumers were handed an= =20 out-of-range value and crashed when matching on it.=20 (Tim McGilchrist, review by Florian Angeletti)=20 - [14969](https://github.com/ocaml/ocaml/issues/14969): Fix the units of th= e runtime events counter EV_C_MINOR_ALLOCATED_WORDS=20 to report as the number of words of minor heap consumed, including headers.= =20 (Tim McGilchrist, review by Nicol=E1s Ojeda B=E4r)=20 --=_74dcc6a9-854a-4a8d-8ce5-f9918efde471 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Dear OCaml users,

We have the pleasu= re of celebrating the birthday of Giovanni Girolamo Saccheri
by announci= ng the release of OCaml version 5.5.1.

This patch-level release fixe= s a major type system bug for module-dependent
functions and also contai= ns two security fixes for the runtime: one in the 
Marshal module, = another inside the loading of bytecode.

At a less severe level, this= release also fixes two bugs in the runtime for
concurrent programs, ano= ther runtime bug for musl users; and a handful of other
bugs.

The= release also restores support for cloning the compiler on macOS.

Ov= erall, we are strongly advising you to switch to OCaml 5.5.1 if you werealready using OCaml 5.5.0.

The full list of bug fixes is available = below for more details.

Happy hacking,
-- Florian Angeletti, for = the OCaml team.

Installation Instructions
-----------------------= --------

The base compiler can be installed as an opam switch with t= he following commands:

    opam update
    op= am switch create 5.5.1

The source code for the release is also direc= tly available on:

* GitHub: https://github.com/ocaml/ocaml/archive/5= .5.1.tar.gz)
* Inria archive: https://caml.inria.fr/pub/distrib/ocaml-5.= 5/ocaml-5.5.1.tar.gz

Changes compared to 5.5.0
------------------= -------------------

### Type system

- [14891](https://github.= com/ocaml/ocaml/issues/14891), [14982](https://github.com/ocaml/ocaml/issue= s/14982): fix scope error leading to an erroneous typechecking for
 = ; non-dependent application of module-dependent function in presence of
=   dependent first-class module types:
  ```ocaml
  mod= ule type T =3D sig module type S end
  let f (module M:T) (m: (modu= le M.S)) =3D m
  module type P =3D sig type 'a t end
  let = error =3D
    f (module struct module type S =3D P end) (modul= e List)
  ````
  (Florian Angeletti, report by Hazem ElMasr= y, review by Gabriel Scherer)

### Runtime

- [14872](https://g= ithub.com/ocaml/ocaml/issues/14872): harden loading of bytecode executable = files against corrupted
  or malicious files having 2^29 TOC entrie= s or more.
  (Xavier Leroy, review by Nicol=E1s Ojeda B=E4r)
- [15019](https://github.com/ocaml/ocaml/issues/15019): `Marshal.from_{str= ing,bytes}`: guard against overflow in
  the computation of the tot= al data length.
  (Xavier Leroy, report by Akshay Singh, review by = Nicol=E1s Ojeda B=E4r
  and Antonin D=E9cimo)

- [14933](http= s://github.com/ocaml/ocaml/issues/14933): Respect `sysconf(_SC_SIGSTKSZ)` w= hen choosing the size for the
  alternate signal stack, avoiding fa= tal errors when linked against musl libc on
  some Intel CPUs.
&= nbsp; (Nat Mote, review by Florian Angeletti and Miod Vallat)

- [149= 40](https://github.com/ocaml/ocaml/issues/14940), fix a memory leak in the = OCaml runtime by bounding the size
  of the internal cache of stack= s.
  (Vesa Karvonen, Florian Angeletti, review by Gabriel Scherer)<= br>
- [15029](https://github.com/ocaml/ocaml/issues/15029): Fix a regres= sion on Windows where an OCaml thread that never
  yielded voluntar= ily would keep the runtime lock forever, so that the other
  thread= s of its domain never ran. Preemptive switching between systhreads had
&= nbsp; no effect; only explicit calls to `Thread.yield` or blocking sections= would
  let other threads run.
  (Nicol=E1s Ojeda B=E4r, r= eport by Daniel Larraz, review by Antonin D=E9cimo)

### Build system=

- [14883](https://github.com/ocaml/ocaml/issues/14883), [14884](htt= ps://github.com/ocaml/ocaml/issues/14884): fix Windows cross-compilation wi= th older mingw32-gcc versions
  (Brian Ward, review by Antonin D=E9= cimo and Stefan Muenzel)

- [14871](https://github.com/ocaml/ocaml/is= sues/14871), [14914](https://github.com/ocaml/ocaml/issues/14914): Ignore O= CAMLTOP_INCLUDE_PATH during the build.
  (David Allsopp, report by = Andreas Rossberg, review by Florian Angeletti)

- [14901](https://git= hub.com/ocaml/ocaml/issues/14901), [14923](https://github.com/ocaml/ocaml/i= ssues/14923): Fix the generated installation script to cope with macOS's  geriatric version of bash when executing in opam's sandbox.
&nbs= p; (David Allsopp, report by Julian Fondren and Sacha-=C9lie Ayoun, investi= gation
   and initial fix by Kate Deplaix, review by Florian A= ngeletti)

- [14989](https://github.com/ocaml/ocaml/issues/14989): Im= prove build reproducibility by letting only otherlibs/{str,unix}
  = build their own .cmi and .cmx. The generic %.cmi/%.cmx rules of the root  Makefile were racing with them under make -j and recorded a differe= nt source
  path, which changed the interface digest (and, through = it, most other compiled
  artefacts) as well as the debug info pack= ed into str.a and unix.a.
  (Bernhard M. Wiedemann, review by David= Allsopp and Stefan Muenzel)

### User interface

- [14881](htt= ps://github.com/ocaml/ocaml/issues/14881), [14882](https://github.com/ocaml= /ocaml/issues/14882): fix printing of external types that are subject to mo= dule
  constraints.
  (Stefan Muenzel, review by Florian An= geletti)

### Runtime events library

- [14966](https://github.= com/ocaml/ocaml/issues/14966): add the missing EV_MINOR_EPHE_CLEAN construc= tor to
  Runtime_events.runtime_phase, introduced in [13643](https:= //github.com/ocaml/ocaml/issues/13643). The runtime has emitted
  t= his phase since 5.4, when a minor collection has to clean locked ephemerons= ,
  but the OCaml type had no constructor for it, so consumers were= handed an
  out-of-range value and crashed when matching on it.  (Tim McGilchrist, review by Florian Angeletti)

- [14969](htt= ps://github.com/ocaml/ocaml/issues/14969): Fix the units of the runtime eve= nts counter EV_C_MINOR_ALLOCATED_WORDS
  to report as the number of= words of minor heap consumed, including headers.
  (Tim McGilchris= t, review by Nicol=E1s Ojeda B=E4r)


--=_74dcc6a9-854a-4a8d-8ce5-f9918efde471--