Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt <[email protected]> Tue, 26 May 2026 09:36:50 +0200
Newsgroups gmane.comp.lang.caml.inria
Message-ID <[email protected]>
--===-=-=
Content-Type: multipart/mixed; boundary="=-=-="

--=-=-=
Content-Type: multipart/alternative; boundary="==-=-="

--==-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello

Here is the latest OCaml Weekly News, for the week of May 19 to 26,
2026.

Table of Contents
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80

Dune 3.23
Call for Presentations: ML Family Workshop 2026
ocaml-halo 0.1 =E2=80=93 Performance oriented HTTP 1.1 server built on top =
of libuv
dead_code_analyzer 1.1.1 and 1.2.0
Old CWN


Dune 3.23
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90

  Archive: <https://discuss.ocaml.org/t/ann-dune-3-23/18055/5>


Continuing this thread, Shon announced
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80

  The Dune team is pleased to announce [the release of dune 3.23.1].

  This is a patch release consisting of the following bug fixes.

  If you encounter a problem with this release, please report it in [our
  issue tracker].


[the release of dune 3.23.1]
<https://github.com/ocaml/dune/releases/tag/3.23.1>

[our issue tracker] <https://github.com/ocaml/dune/issues>

Fixed
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C

  =E2=80=A2 Fix the `menhir' opam dependency injection introduced in 3.23. =
Dune
    now only fills in the lower bound `{>=3D "20180523"}' on an existing
    user-declared `menhir' dependency; it no longer adds `menhir' as a
    new dependency to packages that did not declare it themselves.
    (#14434, fixes #14428, @robinbb)
  =E2=80=A2 Gate the `dune' version-bound deduplication in generated opam f=
iles
    (introduced in 3.23) on `(lang dune 3.23)'. Projects at earlier lang
    versions get the prior `And [...]' shape =E2=80=94 e.g.  `{>=3D "3.17" =
& >=3D
    "3.20"}' =E2=80=94 restoring 3.22 behaviour and avoiding a silent chang=
e to
    opam output on dune-binary upgrade. (#14436, @robinbb)
  =E2=80=A2 Preserve library order when building a shared jsoo standalone
    runtime.  (#14438, @vouillon)
  =E2=80=A2 Fix the fallback to the secondary compiler, allowing recovering=
 of
    support for packages with upper bounds on OCaml less than
    4.14. Packages depending on dune 3.23.1 or later and with an upper
    bound on the OCaml compiler that is less than 4.14, will now be able
    to use the latest dune, but dune will be built with the secondary
    compiler at version 4.14. (#14443, @Alizter)
  =E2=80=A2 Fix the bootstrap on NetBSD by including `<sys/wait.h>' in
    `lev_stubs.c', matching the existing FreeBSD/OpenBSD guard.
    (#14512, fixes #14484, @0-wiz-0)


Call for Presentations: ML Family Workshop 2026
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90

  Archive:
  <https://discuss.ocaml.org/t/call-for-presentations-ml-family-workshop-20=
26/18155/1>


Beno=C3=AEt Montagu announced
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80

  *Higher-order, Typed, Inferred, Strict: ML Family Workshop 2026*

  *August 28, 2026*

  *Indianapolis (Co-located with [ICFP]) + Paris (Co-located with
   [FW'26])*

  *Website:* <https://icfp26.sigplan.org/home/mlfamilyworkshop-2026>

  *Submission Link:* <https://ml2026.hotcrp.com/>

  *Submission Deadline:* June 24, 2026, AoE


[ICFP] <https://icfp26.sigplan.org/>

[FW'26] <https://www.irif.fr/~scherer/events/fpw-2026/announce.html>

Call for Presentations
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=
=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C

  ML (originally, "Meta Language") is a family of programming languages
  that includes dialects known as Standard ML, OCaml, and F#, among
  others. The development of these languages has inspired a large amount
  of computer science research, both practical and theoretical.

  The ML 2026 workshop will continue the informal approach followed
  since 2010. Presentations are selected by the program committee from
  submitted proposals. There are no published proceedings, so
  contributions may be submitted for publication elsewhere. The main
  criterion is promoting and informing the development of the entire
  extended ML family and delivering a lively workshop atmosphere. We
  particularly encourage talks about works in progress, presentations of
  negative results (things that were expected to but did not quite work
  out) and informed positions.

  Each presentation should take 20-25 minutes. The exact time will be
  decided based on scheduling constraints.

  *Note*: this year, the workshop will take place across two events: (1)
  co-located with [ICFP=E2=80=9926], and (2) co-located with [FW=E2=80=9926=
]. We will
  have a single Program Committee to review submissions. Presenters can
  choose either event to attend in-person. We also encourage remote
  participation, and plan to facilitate remote presentations.


[ICFP=E2=80=9926] <https://icfp26.sigplan.org/>

[FW=E2=80=9926] <https://www.irif.fr/~scherer/events/fpw-2026/announce.html>


Scope
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C

  We seek presentations on topics including (but not limited to):

  =E2=80=A2 Language design: abstraction, higher forms of polymorphism,
    concurrency and parallelism, distribution and mobility, staging,
    extensions for semi-structured data, generic programming, object
    systems, etc.

  =E2=80=A2 Implementation: compilers, interpreters, type checkers, partial
    evaluators, runtime systems, garbage collectors, foreign function
    interfaces, etc.

  =E2=80=A2 Type systems: inference, effects, modules, contracts, specifica=
tions
    and assertions, dynamic typing, error reporting, etc.

  =E2=80=A2 Applications: case studies, experience reports, pearls, etc.

  =E2=80=A2 Environments: libraries, tools, editors, debuggers, cross-langu=
age
    interoperability, functional data structures, etc.

  =E2=80=A2 Semantics of ML-family languages: operational and denotational
    semantics, program equivalence, parametricity, mechanization, etc.

  We specifically encourage reporting what did not meet expectations or
  what, despite all efforts, did not work to satisfaction.

  Four kinds of submissions are solicited: Research Presentations,
  Experience Reports, Demos, and Informed Positions.

  =E2=80=A2 Research Presentations: Research presentations should describe =
new
    ideas, experimental results, or significant advances in ML-related
    projects. We especially encourage presentations that describe work
    in progress, that outline a future research agenda, or that
    encourage lively discussion. These presentations should be
    structured in a way which can be, at least in part, of interest to
    (advanced) users.

  =E2=80=A2 Experience Reports: Users are invited to submit Experience Repo=
rts
    about their use of ML and related languages. These presentations do
    not need to contain original research but they should tell an
    interesting story to researchers or other advanced users, such as an
    innovative or unexpected use of advanced features or a description
    of the challenges they are facing or attempting to solve.

  =E2=80=A2 Demos: Live demonstrations or short tutorials should show new
    developments, interesting prototypes, or work in progress, in the
    form of tools, libraries, or applications built on or related to ML
    and related languages. (You will need to provide all the hardware
    and software required for your demo; the workshop organizers are
    only able to provide a projector.)

  =E2=80=A2 Informed Positions: A justified argument for or against a langu=
age
    feature. The argument must be substantiated, either theoretically
    (e.g., by a demonstration of (un)soundness, an inference algorithm,
    a complexity analysis), empirically or by substantial
    experience. Personal experience is accepted as justification so long
    as it is extensive and illustrated with concrete examples.


Submission details
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=
=8C=E2=95=8C

  Submissions must be in the PDF format and have a short summary
  (abstract) at the beginning. Submissions in the categories of
  Experience Reports, Demos, or Informed Positions should indicate so in
  the title or subtitle. The point of the submission should be clear
  from its two first pages (PC members are not obligated to read any
  further.)

  Submissions must be uploaded to the workshop submission website before
  the submission deadline.

  Only the short summary/abstract of accepted submissions will be
  published on the conference website. After acceptance, authors will
  have the opportunity to attach or link to that summary any relevant
  material (such as the updated submission, slides, etc.)

  *Submission Website*: <https://ml2026.hotcrp.com/>

  *Workshop Website*:
   <https://icfp26.sigplan.org/home/mlfamilyworkshop-2026>


Dates and Deadlines
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=
=8C=E2=95=8C=E2=95=8C

  *Submission Deadline*: Wednesday, June 24 AoE

  *Initial Author Notification* (most cases): Thursday, July 23

  *Final Author Notification* (if needed): Thursday, July 30

  *Workshop Date*: Friday, August 28


Program Committee
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=
=8C

  =E2=80=A2 Beno=C3=AEt Montagu (Inria, France)
  =E2=80=A2 Gabriel Scherer (Inria, France)
  =E2=80=A2 Sam Westrick (New York University, United States)
  =E2=80=A2 Cl=C3=A9ment Blaudeau (Inria, France)
  =E2=80=A2 Richard A. Eisenberg (Jane Street, United States)
  =E2=80=A2 Kavon Farvardin (Apple, United States)
  =E2=80=A2 Kiran Gopinathan (Basis, United States)
  =E2=80=A2 Magnus Madsen (Aarhus University, Denmark)
  =E2=80=A2 Alexandre Moine (New York University, United States)
  =E2=80=A2 Dominic Orchard (University of Cambridge; University of Kent, U=
nited
    Kingdom)
  =E2=80=A2 Lionel Parreaux (HKUST (The Hong Kong University of Science and
    Technology), Hong Kong SAR China)
  =E2=80=A2 Gabriel Radanne (Inria, France)
  =E2=80=A2 Takafumi Saikawa (Nagoya University, Japan)
  =E2=80=A2 Milla Valnet (Sorbonne Universit=C3=A9, France)
  =E2=80=A2 Michael Vollmer (University of Kent, United Kingdom)
  =E2=80=A2 Ningning Xie (University of Toronto, Canada)
  =E2=80=A2 Yizhou Zhang (University of Waterloo, Canada)


Past Iterations
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C

  2025:
  <https://conf.researchr.org/home/icfp-splash-2025/mlsymposium-2025>

  2024: <https://icfp24.sigplan.org/home/mlworkshop-2024>

  2023: <https://icfp23.sigplan.org/home/mlworkshop-2023>

  2022: <https://icfp22.sigplan.org/home/mlfamilyworkshop-2022>

  2021: <https://icfp21.sigplan.org/home/mlfamilyworkshop-2021>

  More info: <https://www.mlworkshop.org/home>


Coordination with the OCaml Users and Developers Workshop
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=
=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=
=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=
=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C

  The OCaml workshop is seen as more practical and is dedicated in
  significant part to OCaml community building and the development of
  the OCaml system. In contrast, the ML family workshop is not focused
  on any language in particular, is more research-oriented, and deals
  with general issues of ML-style programming and type systems. There is
  some overlap, which we are keen to explore in various ways. The
  authors who feel their submission fits both workshops are encouraged
  to mention it at submission time or contact the program chairs.


ocaml-halo 0.1 =E2=80=93 Performance oriented HTTP 1.1 server built on top =
of libuv
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90

  Archive:
  <https://discuss.ocaml.org/t/ann-ocaml-halo-0-1-performance-oriented-http=
-1-1-server-built-on-top-of-libuv/18161/1>


Firgeis announced
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80

  Hi community, I'm happy to announce the first "alpha" release of
  [ocaml-halo], a performance oriented Ocaml HTTP 1.1 server.

  The main idea behind this server is keep the performance sensitive
  parts of an HTTP in C, leveraging Effects to ease the transition
  between the boundary of FFI and ocaml resolvers.


[ocaml-halo] <https://github.com/Firgeis/ocaml-halo>

Features
=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C

  =E2=80=A2 Full HTTP 1.1 spec
  =E2=80=A2 SSL/TLS enabled
  =E2=80=A2 Streaming
  =E2=80=A2 Performance, currently on par with with Go frameworks like gin-=
gonic


dead_code_analyzer 1.1.1 and 1.2.0
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90

  Archive:
  <https://discuss.ocaml.org/t/ann-dead-code-analyzer-1-1-1-and-1-2-0/18164=
/1>


fantazio announced
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80

  Hello everyone,

  I am happy to announce [2 releases of the dead_code_analyzer]
  (available via `opam') :

  =E2=80=A2 Release [1.1.1] includes a number of bug fixes and strengthens
    semantics. It also improves the [user documentation] by describing
    each report section, their usage and limitations with examples. This
    release is compatible with **OCaml 5.2**.

  =E2=80=A2 Release [1.2.0] is an update of 1.1.1, compatible with **OCaml
    5.3**. The analyzer now takes `.cmti' and `.cmt' files as input
    instead of `.cmi' and `.cmt'. You may notice a larger memory
    consumption (more information available [here]).

  I addition to these releases, a version compatible with **OCaml 4.14**
  is [available on my fork].

  Thanks to the [OCaml Software Foundation] its funding!

  If you encounter any issue with these releases, please [report it on
  the github repository].  Feedback and contributions are welcome.


[2 releases of the dead_code_analyzer]
<https://github.com/LexiFi/dead_code_analyzer/releases>

[1.1.1]
<https://github.com/LexiFi/dead_code_analyzer/releases/tag/1.1.1>

[user documentation]
<https://github.com/LexiFi/dead_code_analyzer/blob/1.1.1/docs/USER_DOC.md>

[1.2.0]
<https://github.com/LexiFi/dead_code_analyzer/releases/tag/1.2.0>

[here] <https://github.com/LexiFi/dead_code_analyzer/pull/38>

[available on my fork]
<https://github.com/fantazio/dead_code_analyzer/tree/4.14>

[OCaml Software Foundation] <https://ocaml-sf.org/>

[report it on the github repository]
<https://github.com/LexiFi/dead_code_analyzer/issues>


Old CWN
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90

  If you happen to miss a CWN, you can [send me a message] and I'll mail
  it to you, or go take a look at [the archive] or the [RSS feed of the
  archives].

  If you also wish to receive it every week by mail, you may subscribe
  to the [caml-list].

  [Alan Schmitt]


[send me a message] <mailto:[email protected]>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[caml-list] <https://sympa.inria.fr/sympa/info/caml-list>

[Alan Schmitt] <https://alan.petitepomme.net/>


--==-=-=
Content-Type: text/html; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

<?xml version=3D"1.0" encoding=3D"utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">
<head>
<!-- 2026-05-26 Tue 09:36 -->
<meta http-equiv=3D"Content-Type" content=3D"text/html;charset=3Dutf-8" />
<meta name=3D"viewport" content=3D"width=3Ddevice-width, initial-scale=3D1"=
 />
<title>OCaml Weekly News</title>
<meta name=3D"generator" content=3D"Org Mode" />
<style type=3D"text/css">
  #content { max-width: 60em; margin: auto; }
  .title  { text-align: center;
             margin-bottom: .2em; }
  .subtitle { text-align: center;
              font-size: medium;
              font-weight: bold;
              margin-top:0; }
  .todo   { font-family: monospace; color: red; }
  .done   { font-family: monospace; color: green; }
  .priority { font-family: monospace; color: orange; }
  .tag    { background-color: #eee; font-family: monospace;
            padding: 2px; font-size: 80%; font-weight: normal; }
  .timestamp { color: #bebebe; }
  .timestamp-kwd { color: #5f9ea0; }
  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  .underline { text-decoration: underline; }
  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  p.verse { margin-left: 3%; }
  pre {
    border: 1px solid #e6e6e6;
    border-radius: 3px;
    background-color: #f2f2f2;
    padding: 8pt;
    font-family: monospace;
    overflow: auto;
    margin: 1.2em;
  }
  pre.src {
    position: relative;
    overflow: auto;
  }
  pre.src:before {
    display: none;
    position: absolute;
    top: -8px;
    right: 12px;
    padding: 3px;
    color: #555;
    background-color: #f2f2f299;
  }
  pre.src:hover:before { display: inline; margin-top: 14px;}
  /* Languages per Org manual */
  pre.src-asymptote:before { content: 'Asymptote'; }
  pre.src-awk:before { content: 'Awk'; }
  pre.src-authinfo::before { content: 'Authinfo'; }
  pre.src-c:before { content: 'C'; }
  pre.src-C:before { content: 'C'; }
  /* pre.src-C++ doesn't work in CSS */
  pre.src-clojure:before { content: 'Clojure'; }
  pre.src-css:before { content: 'CSS'; }
  pre.src-D:before { content: 'D'; }
  pre.src-ditaa:before { content: 'ditaa'; }
  pre.src-dot:before { content: 'Graphviz'; }
  pre.src-calc:before { content: 'Emacs Calc'; }
  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  pre.src-fortran:before { content: 'Fortran'; }
  pre.src-gnuplot:before { content: 'gnuplot'; }
  pre.src-haskell:before { content: 'Haskell'; }
  pre.src-hledger:before { content: 'hledger'; }
  pre.src-java:before { content: 'Java'; }
  pre.src-js:before { content: 'JavaScript'; }
  pre.src-latex:before { content: 'LaTeX'; }
  pre.src-ledger:before { content: 'Ledger'; }
  pre.src-lisp:before { content: 'Lisp'; }
  pre.src-lilypond:before { content: 'Lilypond'; }
  pre.src-lua:before { content: 'Lua'; }
  pre.src-matlab:before { content: 'MATLAB'; }
  pre.src-mscgen:before { content: 'Mscgen'; }
  pre.src-ocaml:before { content: 'Objective Caml'; }
  pre.src-octave:before { content: 'Octave'; }
  pre.src-org:before { content: 'Org mode'; }
  pre.src-oz:before { content: 'OZ'; }
  pre.src-plantuml:before { content: 'Plantuml'; }
  pre.src-processing:before { content: 'Processing.js'; }
  pre.src-python:before { content: 'Python'; }
  pre.src-R:before { content: 'R'; }
  pre.src-ruby:before { content: 'Ruby'; }
  pre.src-sass:before { content: 'Sass'; }
  pre.src-scheme:before { content: 'Scheme'; }
  pre.src-screen:before { content: 'Gnu Screen'; }
  pre.src-sed:before { content: 'Sed'; }
  pre.src-sh:before { content: 'shell'; }
  pre.src-sql:before { content: 'SQL'; }
  pre.src-sqlite:before { content: 'SQLite'; }
  /* additional languages in org.el's org-babel-load-languages alist */
  pre.src-forth:before { content: 'Forth'; }
  pre.src-io:before { content: 'IO'; }
  pre.src-J:before { content: 'J'; }
  pre.src-makefile:before { content: 'Makefile'; }
  pre.src-maxima:before { content: 'Maxima'; }
  pre.src-perl:before { content: 'Perl'; }
  pre.src-picolisp:before { content: 'Pico Lisp'; }
  pre.src-scala:before { content: 'Scala'; }
  pre.src-shell:before { content: 'Shell Script'; }
  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  /* additional language identifiers per "defun org-babel-execute"
       in ob-*.el */
  pre.src-cpp:before  { content: 'C++'; }
  pre.src-abc:before  { content: 'ABC'; }
  pre.src-coq:before  { content: 'Coq'; }
  pre.src-groovy:before  { content: 'Groovy'; }
  /* additional language identifiers from org-babel-shell-names in
     ob-shell.el: ob-shell is the only babel language using a lambda to put
     the execution function name together. */
  pre.src-bash:before  { content: 'bash'; }
  pre.src-csh:before  { content: 'csh'; }
  pre.src-ash:before  { content: 'ash'; }
  pre.src-dash:before  { content: 'dash'; }
  pre.src-ksh:before  { content: 'ksh'; }
  pre.src-mksh:before  { content: 'mksh'; }
  pre.src-posh:before  { content: 'posh'; }
  /* Additional Emacs modes also supported by the LaTeX listings package */
  pre.src-ada:before { content: 'Ada'; }
  pre.src-asm:before { content: 'Assembler'; }
  pre.src-caml:before { content: 'Caml'; }
  pre.src-delphi:before { content: 'Delphi'; }
  pre.src-html:before { content: 'HTML'; }
  pre.src-idl:before { content: 'IDL'; }
  pre.src-mercury:before { content: 'Mercury'; }
  pre.src-metapost:before { content: 'MetaPost'; }
  pre.src-modula-2:before { content: 'Modula-2'; }
  pre.src-pascal:before { content: 'Pascal'; }
  pre.src-ps:before { content: 'PostScript'; }
  pre.src-prolog:before { content: 'Prolog'; }
  pre.src-simula:before { content: 'Simula'; }
  pre.src-tcl:before { content: 'tcl'; }
  pre.src-tex:before { content: 'TeX'; }
  pre.src-plain-tex:before { content: 'Plain TeX'; }
  pre.src-verilog:before { content: 'Verilog'; }
  pre.src-vhdl:before { content: 'VHDL'; }
  pre.src-xml:before { content: 'XML'; }
  pre.src-nxml:before { content: 'XML'; }
  /* add a generic configuration mode; LaTeX export needs an additional
     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  pre.src-conf:before { content: 'Configuration File'; }

  table { border-collapse:collapse; }
  caption.t-above { caption-side: top; }
  caption.t-bottom { caption-side: bottom; }
  td, th { vertical-align:top;  }
  th.org-right  { text-align: center;  }
  th.org-left   { text-align: center;   }
  th.org-center { text-align: center; }
  td.org-right  { text-align: right;  }
  td.org-left   { text-align: left;   }
  td.org-center { text-align: center; }
  dt { font-weight: bold; }
  .footpara { display: inline; }
  .footdef  { margin-bottom: 1em; }
  .figure { padding: 1em; }
  .figure p { text-align: center; }
  .equation-container {
    display: table;
    text-align: center;
    width: 100%;
  }
  .equation {
    vertical-align: middle;
  }
  .equation-label {
    display: table-cell;
    text-align: right;
    vertical-align: middle;
  }
  .inlinetask {
    padding: 10px;
    border: 2px solid gray;
    margin: 10px;
    background: #ffffcc;
  }
  #org-div-home-and-up
   { text-align: right; font-size: 70%; white-space: nowrap; }
  textarea { overflow-x: auto; }
  .linenr {
    font-size: smaller;
    @supports (content: attr(data-linenr)) {
      visibility: hidden;
      &::before { content: attr(data-linenr); visibility: visible; }
    }
  }
  .code-highlighted { background-color: #ffff00; }
  .org-info-js_info-navigation { border-style: none; }
  #org-info-js_console-label
    { font-size: 10px; font-weight: bold; white-space: nowrap; }
  .org-info-js_search-highlight
    { background-color: #ffff00; color: #000000; font-weight: bold; }
  .org-svg { }
</style>
<style type=3D"text/css">#table-of-contents h2 { display: none } .title { d=
isplay: none } .authorname { text-align: right }</style>
<style type=3D"text/css">.outline-2 {border-top: 1px solid black;}</style>
</head>
<body>
<div id=3D"content" class=3D"content">
<h1 class=3D"title">OCaml Weekly News</h1>
<p>
<a href=3D"https://alan.petitepomme.net/cwn/2026.05.19.html">Previous Week<=
/a> <a href=3D"https://alan.petitepomme.net/cwn/index.html">Up</a> <a href=
=3D"https://alan.petitepomme.net/cwn/2026.06.02.html">Next Week</a>
</p>

<p>
Hello
</p>

<p>
Here is the latest OCaml Weekly News, for the week of May 19 to 26, 2026.
</p>

<div id=3D"table-of-contents" role=3D"doc-toc">
<h2>Table of Contents</h2>
<div id=3D"text-table-of-contents" role=3D"doc-toc">
<ul>
<li><a href=3D"#1">Dune 3.23</a></li>
<li><a href=3D"#2">Call for Presentations: ML Family Workshop 2026</a></li>
<li><a href=3D"#3">ocaml-halo 0.1 &ndash; Performance oriented HTTP 1.1 ser=
ver built on top of libuv</a></li>
<li><a href=3D"#4">dead_code_analyzer 1.1.1 and 1.2.0</a></li>
<li><a href=3D"#org8bd8361">Old CWN</a></li>
</ul>
</div>
</div>
<div id=3D"outline-container-1" class=3D"outline-2">
<h2 id=3D"1">Dune 3.23</h2>
<div class=3D"outline-text-2" id=3D"text-1">
<p>
Archive: <a href=3D"https://discuss.ocaml.org/t/ann-dune-3-23/18055/5">http=
s://discuss.ocaml.org/t/ann-dune-3-23/18055/5</a>
</p>
</div>
<div id=3D"outline-container-orgf956b12" class=3D"outline-3">
<h3 id=3D"orgf956b12">Continuing this thread, Shon announced</h3>
<div class=3D"outline-text-3" id=3D"text-orgf956b12">
<p>
The Dune team is pleased to announce <a href=3D"https://github.com/ocaml/du=
ne/releases/tag/3.23.1">the release of dune 3.23.1</a>.
</p>

<p>
This is a patch release consisting of the following bug fixes.
</p>

<p>
If you encounter a problem with this release, please report it in <a href=
=3D"https://github.com/ocaml/dune/issues">our issue
tracker</a>.
</p>
</div>
<div id=3D"outline-container-org6063baa" class=3D"outline-4">
<h4 id=3D"org6063baa">Fixed</h4>
<div class=3D"outline-text-4" id=3D"text-org6063baa">
<ul class=3D"org-ul">
<li>Fix the <code>menhir</code> opam dependency injection introduced in 3.2=
3. Dune    now only fills in the lower bound <code>{&gt;=3D "20180523"}</co=
de> on an existing   user-declared <code>menhir</code> dependency; it no lo=
nger adds <code>menhir</code> as a new dependency to packages that did not =
declare it themselves.    (#14434, fixes #14428, @robinbb)</li>
<li>Gate the <code>dune</code> version-bound deduplication in generated opa=
m files    (introduced in 3.23) on <code>(lang dune 3.23)</code>. Projects =
at earlier lang    versions get the prior <code>And [...]</code> shape =E2=
=80=94 e.g.
<code>{&gt;=3D "3.17" &amp; &gt;=3D "3.20"}</code> =E2=80=94 restoring 3.22=
 behaviour and avoiding a    silent change to opam output on dune-binary up=
grade. (#14436, @robinbb)</li>
<li>Preserve library order when building a shared jsoo standalone runtime. =
   (#14438, @vouillon)</li>
<li>Fix the fallback to the secondary compiler, allowing recovering of supp=
ort for    packages with upper bounds on OCaml less than 4.14. Packages dep=
ending on dune    3.23.1 or later and with an upper bound on the OCaml comp=
iler that is less    than 4.14, will now be able to use the latest dune, bu=
t dune will be built    with the secondary compiler at version 4.14. (#1444=
3, @Alizter)</li>
<li>Fix the bootstrap on NetBSD by including <code>&lt;sys/wait.h&gt;</code=
> in <code>lev_stubs.c</code>,   matching the existing FreeBSD/OpenBSD guar=
d.    (#14512, fixes #14484, @0-wiz-0)</li>
</ul>
</div>
</div>
</div>
</div>
<div id=3D"outline-container-2" class=3D"outline-2">
<h2 id=3D"2">Call for Presentations: ML Family Workshop 2026</h2>
<div class=3D"outline-text-2" id=3D"text-2">
<p>
Archive: <a href=3D"https://discuss.ocaml.org/t/call-for-presentations-ml-f=
amily-workshop-2026/18155/1">https://discuss.ocaml.org/t/call-for-presentat=
ions-ml-family-workshop-2026/18155/1</a>
</p>
</div>
<div id=3D"outline-container-org0ebd022" class=3D"outline-3">
<h3 id=3D"org0ebd022">Beno=C3=AEt Montagu announced</h3>
<div class=3D"outline-text-3" id=3D"text-org0ebd022">
<p>
<b>Higher-order, Typed, Inferred, Strict: ML Family Workshop 2026</b>
</p>

<p>
<b>August 28, 2026</b>
</p>

<p>
<b>Indianapolis (Co-located with <a href=3D"https://icfp26.sigplan.org/">IC=
FP</a>) + Paris (Co-located with <a href=3D"https://www.irif.fr/~scherer/ev=
ents/fpw-2026/announce.html">FW'26</a>)</b>
</p>

<p>
<b>Website:</b> <a href=3D"https://icfp26.sigplan.org/home/mlfamilyworkshop=
-2026">https://icfp26.sigplan.org/home/mlfamilyworkshop-2026</a>
</p>

<p>
<b>Submission Link:</b> <a href=3D"https://ml2026.hotcrp.com/">https://ml20=
26.hotcrp.com/</a>
</p>

<p>
<b>Submission Deadline:</b> June 24, 2026, AoE
</p>
</div>
<div id=3D"outline-container-org115a2f8" class=3D"outline-4">
<h4 id=3D"org115a2f8">Call for Presentations</h4>
<div class=3D"outline-text-4" id=3D"text-org115a2f8">
<p>
ML (originally, "Meta Language") is a family of programming languages=20
that includes dialects known as Standard ML, OCaml, and F#, among=20
others. The development of these languages has inspired a large amount=20
of computer science research, both practical and theoretical.
</p>

<p>
The ML 2026 workshop will continue the informal approach followed=20
since 2010. Presentations are selected by the program committee from=20
submitted proposals. There are no published proceedings, so=20
contributions may be submitted for publication elsewhere. The main=20
criterion is promoting and informing the development of the entire=20
extended ML family and delivering a lively workshop atmosphere. We=20
particularly encourage talks about works in progress, presentations of=20
negative results (things that were expected to but did not quite work=20
out) and informed positions.
</p>

<p>
Each presentation should take 20-25 minutes. The exact time will be=20
decided based on scheduling constraints.
</p>

<p>
<b>Note</b>: this year, the workshop will take place across two events: (1)=
 co-located
with <a href=3D"https://icfp26.sigplan.org/">ICFP=E2=80=9926</a>, and (2) c=
o-located with <a href=3D"https://www.irif.fr/~scherer/events/fpw-2026/anno=
unce.html">FW=E2=80=9926</a>. We will have a single Program
Committee to review submissions. Presenters can choose either event to
attend in-person. We also encourage remote participation, and plan to
facilitate remote presentations.
</p>
</div>
</div>
<div id=3D"outline-container-orge21b05b" class=3D"outline-4">
<h4 id=3D"orge21b05b">Scope</h4>
<div class=3D"outline-text-4" id=3D"text-orge21b05b">
<p>
We seek presentations on topics including (but not limited to):
</p>

<ul class=3D"org-ul">
<li>Language design: abstraction, higher forms of polymorphism, concurrency=
 and parallelism, distribution and mobility, staging, extensions for semi-s=
tructured data, generic programming, object systems, etc.</li>

<li>Implementation: compilers, interpreters, type checkers, partial evaluat=
ors, runtime systems, garbage collectors, foreign function interfaces, etc.=
</li>

<li>Type systems: inference, effects, modules, contracts, specifications an=
d assertions, dynamic typing, error reporting, etc.</li>

<li>Applications: case studies, experience reports, pearls, etc.</li>

<li>Environments: libraries, tools, editors, debuggers, cross-language inte=
roperability, functional data structures, etc.</li>

<li>Semantics of ML-family languages: operational and denotational semantic=
s, program equivalence, parametricity, mechanization, etc.</li>
</ul>

<p>
We specifically encourage reporting what did not meet expectations or=20
what, despite all efforts, did not work to satisfaction.
</p>

<p>
Four kinds of submissions are solicited: Research Presentations,=20
Experience Reports, Demos, and Informed Positions.
</p>

<ul class=3D"org-ul">
<li>Research Presentations: Research presentations should describe new idea=
s, experimental results, or significant advances in ML-related projects. We=
 especially encourage presentations that describe work in progress, that ou=
tline a future research agenda, or that encourage lively discussion. These =
presentations should be structured in a way which can be, at least in part,=
 of interest to (advanced) users.</li>

<li>Experience Reports: Users are invited to submit Experience Reports abou=
t their use of ML and related languages. These presentations do not need to=
 contain original research but they should tell an interesting story to res=
earchers or other advanced users, such as an innovative or unexpected use o=
f advanced features or a description of the challenges they are facing or a=
ttempting to solve.</li>

<li>Demos: Live demonstrations or short tutorials should show new developme=
nts, interesting prototypes, or work in progress, in the form of tools, lib=
raries, or applications built on or related to ML and related languages. (Y=
ou will need to provide all the hardware and software required for your dem=
o; the workshop organizers are only able to provide a projector.)</li>

<li>Informed Positions: A justified argument for or against a language feat=
ure. The argument must be substantiated, either theoretically (e.g., by a d=
emonstration of (un)soundness, an inference algorithm, a complexity analysi=
s), empirically or by substantial experience. Personal experience is accept=
ed as justification so long as it is extensive and illustrated with concret=
e examples.</li>
</ul>
</div>
</div>
<div id=3D"outline-container-org151a610" class=3D"outline-4">
<h4 id=3D"org151a610">Submission details</h4>
<div class=3D"outline-text-4" id=3D"text-org151a610">
<p>
Submissions must be in the PDF format and have a short summary=20
(abstract) at the beginning. Submissions in the categories of=20
Experience Reports, Demos, or Informed Positions should indicate so in=20
the title or subtitle. The point of the submission should be clear=20
from its two first pages (PC members are not obligated to read any=20
further.)
</p>

<p>
Submissions must be uploaded to the workshop submission website before=20
the submission deadline.
</p>

<p>
Only the short summary/abstract of accepted submissions will be=20
published on the conference website. After acceptance, authors will=20
have the opportunity to attach or link to that summary any relevant=20
material (such as the updated submission, slides, etc.)
</p>

<p>
<b>Submission Website</b>: <a href=3D"https://ml2026.hotcrp.com/">https://m=
l2026.hotcrp.com/</a>
</p>

<p>
<b>Workshop Website</b>: <a href=3D"https://icfp26.sigplan.org/home/mlfamil=
yworkshop-2026">https://icfp26.sigplan.org/home/mlfamilyworkshop-2026</a>
</p>
</div>
</div>
<div id=3D"outline-container-org8b976c2" class=3D"outline-4">
<h4 id=3D"org8b976c2">Dates and Deadlines</h4>
<div class=3D"outline-text-4" id=3D"text-org8b976c2">
<p>
<b>Submission Deadline</b>: Wednesday, June 24 AoE
</p>

<p>
<b>Initial Author Notification</b> (most cases): Thursday, July 23
</p>

<p>
<b>Final Author Notification</b> (if needed): Thursday, July 30
</p>

<p>
<b>Workshop Date</b>: Friday, August 28
</p>
</div>
</div>
<div id=3D"outline-container-org0b8e29a" class=3D"outline-4">
<h4 id=3D"org0b8e29a">Program Committee</h4>
<div class=3D"outline-text-4" id=3D"text-org0b8e29a">
<ul class=3D"org-ul">
<li>Beno=C3=AEt Montagu (Inria, France)</li>
<li>Gabriel Scherer (Inria, France)</li>
<li>Sam Westrick (New York University, United States)</li>
<li>Cl=C3=A9ment Blaudeau (Inria, France)</li>
<li>Richard A. Eisenberg (Jane Street, United States)</li>
<li>Kavon Farvardin (Apple, United States)</li>
<li>Kiran Gopinathan (Basis, United States)</li>
<li>Magnus Madsen (Aarhus University, Denmark)</li>
<li>Alexandre Moine (New York University, United States)</li>
<li>Dominic Orchard (University of Cambridge; University of Kent, United Ki=
ngdom)</li>
<li>Lionel Parreaux (HKUST (The Hong Kong University of Science and Technol=
ogy), Hong Kong SAR China)</li>
<li>Gabriel Radanne (Inria, France)</li>
<li>Takafumi Saikawa (Nagoya University, Japan)</li>
<li>Milla Valnet (Sorbonne Universit=C3=A9, France)</li>
<li>Michael Vollmer (University of Kent, United Kingdom)</li>
<li>Ningning Xie (University of Toronto, Canada)</li>
<li>Yizhou Zhang (University of Waterloo, Canada)</li>
</ul>
</div>
</div>
<div id=3D"outline-container-org092212d" class=3D"outline-4">
<h4 id=3D"org092212d">Past Iterations</h4>
<div class=3D"outline-text-4" id=3D"text-org092212d">
<p>
2025: <a href=3D"https://conf.researchr.org/home/icfp-splash-2025/mlsymposi=
um-2025">https://conf.researchr.org/home/icfp-splash-2025/mlsymposium-2025<=
/a>
</p>

<p>
2024: <a href=3D"https://icfp24.sigplan.org/home/mlworkshop-2024">https://i=
cfp24.sigplan.org/home/mlworkshop-2024</a>
</p>

<p>
2023: <a href=3D"https://icfp23.sigplan.org/home/mlworkshop-2023">https://i=
cfp23.sigplan.org/home/mlworkshop-2023</a>
</p>

<p>
2022: <a href=3D"https://icfp22.sigplan.org/home/mlfamilyworkshop-2022">htt=
ps://icfp22.sigplan.org/home/mlfamilyworkshop-2022</a>
</p>

<p>
2021: <a href=3D"https://icfp21.sigplan.org/home/mlfamilyworkshop-2021">htt=
ps://icfp21.sigplan.org/home/mlfamilyworkshop-2021</a>
</p>

<p>
More info: <a href=3D"https://www.mlworkshop.org/home">https://www.mlworksh=
op.org/home</a>
</p>
</div>
</div>
<div id=3D"outline-container-orgd437003" class=3D"outline-4">
<h4 id=3D"orgd437003">Coordination with the OCaml Users and Developers Work=
shop</h4>
<div class=3D"outline-text-4" id=3D"text-orgd437003">
<p>
The OCaml workshop is seen as more practical and is dedicated in=20
significant part to OCaml community building and the development of=20
the OCaml system. In contrast, the ML family workshop is not focused=20
on any language in particular, is more research-oriented, and deals=20
with general issues of ML-style programming and type systems. There=20
is some overlap, which we are keen to explore in various ways. The=20
authors who feel their submission fits both workshops are encouraged=20
to mention it at submission time or contact the program chairs.
</p>
</div>
</div>
</div>
</div>
<div id=3D"outline-container-3" class=3D"outline-2">
<h2 id=3D"3">ocaml-halo 0.1 &ndash; Performance oriented HTTP 1.1 server bu=
ilt on top of libuv</h2>
<div class=3D"outline-text-2" id=3D"text-3">
<p>
Archive: <a href=3D"https://discuss.ocaml.org/t/ann-ocaml-halo-0-1-performa=
nce-oriented-http-1-1-server-built-on-top-of-libuv/18161/1">https://discuss=
.ocaml.org/t/ann-ocaml-halo-0-1-performance-oriented-http-1-1-server-built-=
on-top-of-libuv/18161/1</a>
</p>
</div>
<div id=3D"outline-container-org599286b" class=3D"outline-3">
<h3 id=3D"org599286b">Firgeis announced</h3>
<div class=3D"outline-text-3" id=3D"text-org599286b">
<p>
Hi community, I'm happy to announce the first "alpha" release of <a href=3D=
"https://github.com/Firgeis/ocaml-halo">ocaml-halo</a>, a performance orien=
ted Ocaml HTTP 1.1 server.
</p>

<p>
The main idea behind this server is keep the performance sensitive parts of=
 an HTTP in C, leveraging Effects to ease the transition between the bounda=
ry of FFI and ocaml resolvers.
</p>
</div>
<div id=3D"outline-container-orge810a25" class=3D"outline-4">
<h4 id=3D"orge810a25">Features</h4>
<div class=3D"outline-text-4" id=3D"text-orge810a25">
<ul class=3D"org-ul">
<li>Full HTTP 1.1 spec</li>
<li>SSL/TLS enabled</li>
<li>Streaming</li>
<li>Performance, currently on par with with Go frameworks like gin-gonic</l=
i>
</ul>
</div>
</div>
</div>
</div>
<div id=3D"outline-container-4" class=3D"outline-2">
<h2 id=3D"4">dead_code_analyzer 1.1.1 and 1.2.0</h2>
<div class=3D"outline-text-2" id=3D"text-4">
<p>
Archive: <a href=3D"https://discuss.ocaml.org/t/ann-dead-code-analyzer-1-1-=
1-and-1-2-0/18164/1">https://discuss.ocaml.org/t/ann-dead-code-analyzer-1-1=
-1-and-1-2-0/18164/1</a>
</p>
</div>
<div id=3D"outline-container-org263665b" class=3D"outline-3">
<h3 id=3D"org263665b">fantazio announced</h3>
<div class=3D"outline-text-3" id=3D"text-org263665b">
<p>
Hello everyone,
</p>

<p>
I am happy to announce <a href=3D"https://github.com/LexiFi/dead_code_analy=
zer/releases">2 releases of the dead_code_analyzer</a> (available via <code=
>opam</code>) :
</p>

<ul class=3D"org-ul">
<li>Release <a href=3D"https://github.com/LexiFi/dead_code_analyzer/release=
s/tag/1.1.1">1.1.1</a> includes a number of bug fixes and strengthens seman=
tics. It also improves the <a href=3D"https://github.com/LexiFi/dead_code_a=
nalyzer/blob/1.1.1/docs/USER_DOC.md">user documentation</a> by describing e=
ach report section, their usage and limitations with examples. This release=
 is compatible with <b><b>OCaml 5.2</b></b>.</li>

<li>Release <a href=3D"https://github.com/LexiFi/dead_code_analyzer/release=
s/tag/1.2.0">1.2.0</a> is an update of 1.1.1, compatible with <b><b>OCaml 5=
.3</b></b>. The analyzer now takes <code>.cmti</code> and <code>.cmt</code>=
 files as input instead of <code>.cmi</code> and <code>.cmt</code>. You may=
 notice a larger memory consumption (more information available <a href=3D"=
https://github.com/LexiFi/dead_code_analyzer/pull/38">here</a>).</li>
</ul>

<p>
I addition to these releases, a version compatible with <b><b>OCaml 4.14</b=
></b> is <a href=3D"https://github.com/fantazio/dead_code_analyzer/tree/4.1=
4">available on my fork</a>.
</p>

<p>
Thanks to the <a href=3D"https://ocaml-sf.org/">OCaml Software Foundation</=
a> its funding!
</p>

<p>
If you encounter any issue with these releases, please <a href=3D"https://g=
ithub.com/LexiFi/dead_code_analyzer/issues">report it on the github reposit=
ory</a>.
Feedback and contributions are welcome.
</p>
</div>
</div>
</div>
<div id=3D"outline-container-org8bd8361" class=3D"outline-2">
<h2 id=3D"org8bd8361">Old CWN</h2>
<div class=3D"outline-text-2" id=3D"text-org8bd8361">
<p>
If you happen to miss a CWN, you can <a href=3D"mailto:alan.schmitt@polytec=
hnique.org">send me a message</a> and I'll mail it to you, or go take a loo=
k at <a href=3D"https://alan.petitepomme.net/cwn/">the archive</a> or the <=
a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive=
s</a>.
</p>

<p>
If you also wish to receive it every week by mail, you may subscribe to the=
 <a href=3D"https://sympa.inria.fr/sympa/info/caml-list">caml-list</a>.
</p>

<div class=3D"authorname" id=3D"orgfeff88a">
<p>
<a href=3D"https://alan.petitepomme.net/">Alan Schmitt</a>
</p>

</div>
</div>
</div>
</div>
</body>
</html>


--==-=-=--

--=-=-=--

--===-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQFvBAEBCABZFiEE6lXof/BsSVW56ZmGBA0KO07S5ccFAmoVTZIbFIAAAAAABAAO
bWFudTIsMi41KzEuMTIsMCwzHxxhbGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5v
cmcACgkQBA0KO07S5cfwoAf+MvR6rbgRlOFFRUg9MKxQrCenU84VDqqSh5IdPAgb
Mqv28d6/1ROYBxcxGZTVmmgLx7GEt+dBTNQSUqjIiD21f8le//I9R09gz2q1dw80
phvB/w79WVzizdFhG9kmQJwzTK1WypUdWCPE3g5+I9mJ9eVOHoY77fp17ZlknJoo
6jUzC1PjdOf1zYZRFAWJMf+QXI3RrgHXA+tGgFb9/ZIK8RqPQANB9CC84yUSnf+C
/8VVEQ1gVb24vD6bBup2Ke/wENVLQfaCICih4Ykj0XMpSdWUQ0SQVnMznw/sk57X
ilN+lr3CqMarPvUXnxCK065aYCODzV7bc+DKoP0b8M3AaA==
=e6Rv
-----END PGP SIGNATURE-----
--===-=-=--