Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt <[email protected]> Tue, 29 Apr 2025 10:39:48 +0200
Newsgroups gmane.comp.lang.caml.inria
Message-ID <[email protected]>
Hello

Here is the latest OCaml Weekly News, for the week of April 22 to 29,
2025.

Table of Contents
─────────────────

dream-html, pure-html 3.10.0 and 3.10.1
State of OCaml Platform on Windows
Upgrading Semgrep from OCaml 4 to OCaml 5 + dynamic_gc utility
Typesafe complicated combinations
Other OCaml News
Old CWN


dream-html, pure-html 3.10.0 and 3.10.1
═══════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-dream-html-pure-html-3-10-0-3-10-1/16537/1>


Yawar Amin announced
────────────────────

  Happy to announce a couple of releases of [dream-html]:

  3.10.0: add support for [RSS/Atom] markup; add ability to handle
  [multiple] nested form values; [concatenate] HTML nodes with a
  separator node between them; add support for [popovers] and
  [Declarative Shadow DOM] markup.

  3.10.1: use single quotes for attributes which must contain JSON
  values, like htmx's [hx-vals].


[dream-html] <https://github.com/yawaramin/dream-html>

[RSS/Atom]
<https://yawaramin.github.io/dream-html/pure-html/Pure_html/#rss-and-atom>

[multiple]
<https://yawaramin.github.io/dream-html/dream-html/Dream_html/Form/index.html#val-multiple>

[concatenate]
<https://yawaramin.github.io/dream-html/pure-html/Pure_html/#val-concat>

[popovers]
<https://yawaramin.github.io/dream-html/pure-html/Pure_html/HTML/index.html#val-popover>

[Declarative Shadow DOM]
<https://yawaramin.github.io/dream-html/pure-html/Pure_html/HTML/index.html#val-shadowrootclonable>

[hx-vals]
<https://yawaramin.github.io/dream-html/pure-html/Pure_html/Hx/index.html#val-vals>


State of OCaml Platform on Windows
══════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-state-of-ocaml-platform-on-windows/16540/1>


Leandro Ostera announced
────────────────────────

  Hello folks :waving_hand:

  We're happy to share the first version of the State of the OCaml
  Platform on Windows document with you. Please find the document here:
  <https://docs.google.com/document/d/1-aTygzDsxy4mnqvSKEVhifA1KDRyP-Axdogjgb8i3Gg/edit?usp=sharing>.

  As part of the [First-Class Windows] project, we've been assessing the
  state of OCaml on Windows. This document is a summary of our
  investigation, including our consultations with individuals involved
  in Windows-related work.

  This document started internally at Tarides and quickly included major
  contributors and users of OCaml on Windows for its drafting and review
  stages. Thank you to @jbeckford, @klakplok, @Vincent_Balat, @Rucikir,
  @lambda_foo, @rikusilvola, @kayceesrk, @dra27, @Isabella, @rjbou,
  @avsm, @kentookura, @oandrieu, @shonfeder, @sabine, and everyone else
  at Tarides for helping us shape and review this document!
  :folded_hands:

  The immediate call to action for you is to give us your inputs and
  thoughts, challenge it and help us make it better. You can do this
  directly on that document, or by quoting into this thread.

  We'll have a window of 8 weeks to allow for this to happen. After that
  we will move this into the OCaml Platform section of OCaml.org to use
  as a reference and keep it updated over time.

  Happy coding! :two_hump_camel:

  / @sudha & @leostera on behalf of Tarides


[First-Class Windows]
<https://tarides.com/blog/2024-05-22-launching-the-first-class-windows-project/>


Upgrading Semgrep from OCaml 4 to OCaml 5 + dynamic_gc utility
══════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/upgrading-semgrep-from-ocaml-4-to-ocaml-5-dynamic-gc-utility/16256/5>


Continuing this thread, Nat Mote announced
──────────────────────────────────────────

  I've just released a new version that includes the following module:

  ┌────
  │ module Config : sig
  │   (** Produces a simple config that will set space_overhead to 120, the default,
  │    * when the size of the major heap is below the given threshold. When the heap
  │    * is larger than the given threshold, space_overhead will be set to 80. *)
  │   val simple: threshold_mb:int -> config
  │ end
  └────

  That will make the utility even easier to configure while still
  allowing the application developer to set a memory threshold that is
  relevant to them.


Typesafe complicated combinations
═════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-typesafe-complicated-combinations/16548/1>


rand announced
──────────────

  Heya everyone –

  I've [written a blogpost] based on a recent experience adding
  typesafety to the `pmmd' codebase – handling a lot of different data
  and functions that needs to be combined in the right ways.

  In it I make use of phantom types and OCamls module system to express
  the invariants - which I find is a nice set of typesystem features to
  express complicated relations in a relatively simple but efficient and
  scaleable way. Also, I think interesting design patterns can emerge
  from this way of working.

  Let me know here if you have any questions or comments

  Thanks (:


[written a blogpost]
<https://r7p5.earth/blog/2025-4-25/Typesafe%20complicated%20combinations>


Other OCaml News
════════════════

From the ocaml.org blog
───────────────────────

  Here are links from many OCaml blogs aggregated at [the ocaml.org
  blog].

  • [SPF, DKIM, DMARC and ARC]
  • [Feature Parity Series: Restoring the MSVC Port]


[the ocaml.org blog] <https://ocaml.org/blog/>

[SPF, DKIM, DMARC and ARC]
<https://blog.robur.coop/articles/2025-04-23-email-verification.html>

[Feature Parity Series: Restoring the MSVC Port]
<https://tarides.com/blog/2025-04-23-feature-parity-series-restoring-the-msvc-port>


Old CWN
═══════

  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/>