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=ankiZn+W; 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 6C33B400A8 for ; Tue, 12 May 2026 07:28:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:date:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=CIZbpfHnjO2PalAj8+D8gBLwSVNCjsTJSxa0zAi4a/8=; b=ankiZn+WLhg3pX7F4vTST3A6sVFH2UEy4INz9kJft32BljVTyDjkAN9G F+0eaXvFxHHK9wP6Gh5s9RFjujiRHwhZTwUjCca2YA7/pO/PC/eCYMqeU k4N7RqfNS5WErCNsbYC5B++8nV8VBBngP/niDkBcfAKRZkIfSq0xdkKKC A=; X-CSE-ConnectionGUID: QghT0yKqSCq5SLGB28BY0A== X-CSE-MsgGUID: /WQ+yw4aRNWHiIZKJcoKkQ== 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.23,230,1770591600"; d="asc'?scan'208,217";a="276295956" Received: from prod-sympa-app.inria.fr ([128.93.162.27]) by mail2-relais-roc.national.inria.fr with ESMTP; 12 May 2026 09:28:40 +0200 Received: by prod-sympa-app.inria.fr (Postfix, from userid 990) id 2F7028267F; Tue, 12 May 2026 09:28:40 +0200 (CEST) Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by prod-sympa-app.inria.fr (Postfix) with ESMTP id 346DC8267A for ; Tue, 12 May 2026 09:28:29 +0200 (CEST) X-CSE-ConnectionGUID: wX2RlWKxTRWBZhP8u1UmTQ== X-CSE-MsgGUID: MQVFcPyKTaGOJtCpS5JSoQ== IronPort-SDR: 6a02d68c_as+HbCfrWvT3/yqqn9Q6Crg/Fe13jYYQlrJW/HTcgin4V8Y KrpJirrfCH4JcfcRRJuvV8//ERlahjMJnUeEcYQ== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A0FiBwAf1gJqjyIeaIFahBZbKRsBbFoFMwcISYRYg0+OJ?= =?us-ascii?q?ZxIgxUWBRwCDgcBAwEIBS4BGwQBAgQBAQECAQIBgguCdI01Ah8GAQQ0EwECB?= =?us-ascii?q?AMCAwEBAQEBAQEBAQEBCwEBAQQBAQECAQECBAMBAQEBAhABAQEBAQE5BUmGF?= =?us-ascii?q?QczDYJFUVMeYAcNAQEBAQEBAQEBAQEBAQEiAQEBAQEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIEBAQBGRppCwQGEwEBLAQIGCMDE?= =?us-ascii?q?AQBBgMCEQE1FwESGgGCD1gBgiICTwMEAQwGlxybRHp/M4EBggwBAQaBCD4DA?= =?us-ascii?q?g0DDy/aFIFeCQMGgTUYgViEGoJLDw0BKklqAgEChE+EQAcgD4FVRIQOb4IeL?= =?us-ascii?q?BcCAQEYgSQBAU2DLoJpgiaBDoF1gxMLBRsBM4EGLDAChyKBZgNZLAFVExcLB?= =?us-ascii?q?wVegQgDKi8tbjIdgSM+FzNYGwcFgUuCBYFcgQKEX3gjLANOgSUDC209NxQbi?= =?us-ascii?q?SoQIQ2BJUQZHQ+BYw4LIRICFhYfFRoOBQECERYBASACDRcQAgUDARoKDActF?= =?us-ascii?q?QUJAgIYCyMLCwKTIQsDKp10lGM0B4QfgV4GDIkIgSaWB4QEjROHApJSIpgmP?= =?us-ascii?q?iKJXoEmCYFva5UkKBQvhSmBfyOBKwEbAgwHMxowQ4IzATMJRxwPiTaIbRAxf?= =?us-ascii?q?YEmgXQ7WoEXvwNCNQIBATsHAgcBCwSFTh0BAYw6gUsBAQ?= IronPort-PHdr: A9a23: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 TdvDSgT1DIUEYSa025a6to= IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:tCP5i60XmtzVbPpWS7jcKQqjBI0kLtp133Aq2lEZdPU1SL37qy nKpp536faaslcssR0b9exoW5PwIk80l6QU3WB5B97LNzUO01HHEGgN1+Tf6gylMxK73O9Q36 VtfsFFebjNJGk/q931pC2xE9NI+qjhzElEv5a780tQ X-Talos-CUID: 9a23:ut4VLW4gVm5fIoIqAdss635OIMQaUW3h9kj6EU+AWXswdbipcArF X-Talos-MUID: 9a23:I98cDwtHud+iKN8Axc2noQhcGsxQ8oeSAW8qs4kto/LZFxd3AmLI X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.23,230,1770591600"; d="asc'?scan'208,217";a="146311924" X-URL-ContentFilter: X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown X-MGA-submission: =?us-ascii?q?MDFiYlB/vsMBg3iGcbbiCJO7YBwRwujdq/SBeX?= =?us-ascii?q?LOt7M7Aa/3NAIAFFBekHYfIQC3yEmphwTqilz1ONIsSWe2HV0Ty3x45i?= =?us-ascii?q?CzJzAqjPnNcUFjfVd94tqtmCrNcE9uyxYvOXT9rOFRF85IWPkT59cHdv?= =?us-ascii?q?muU1THjpMHu7kdSab+HyAEBg=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 May 2026 09:28:13 +0200 Received: from TM.local (unknown [212.133.41.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id E30E51A51D; Tue, 12 May 2026 09:28:11 +0200 (CEST) From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 12 May 2026 09:28:09 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="===-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue May 12 09:28:12 2026 +0200 (CEST)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.473318, queueID=66DD71A548 X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 19506 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: --===-=-= 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 05 to 12, 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.0 Orcaset: Financial models in code Miou, a simple scheduler for OCaml 5 Run-time types: uses and wants Old CWN Dune 3.23.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 Archive: 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 The Dune team is pleased to announce [the release of dune 3.23.0]. Along with many other fixes and improvements, some highlights include: =E2=80=A2 Add support for `c_library_flags' in foreign_stubs ([#13484], [@madroach]) =E2=80=A2 Many improvements to the promotion and diffing functionality, by [@rgrinberg]. =E2=80=A2 As part of the previous, a breaking change to the promotion log= ic has been introduced: Dune does automatically promote generated opam files, which must now be manually promoted with `dune promote'. You can trigger building `.opam' files with the `@install', `@runtest', and `@opam' aliases. In release mode, `.opam' files aren't generated at all and whatever is in the source is used ([ocaml/dune#14108], [@rgrinberg]). =E2=80=A2 User rules and inline test runners are now sandboxed by default ([ocaml/dune#13805] and [ocaml/dune#14257], [@rgrinberg]). =E2=80=A2 The minimum OCaml version required to build dune is now 4.14. See [the full changelog] for all new features and fixes, and for attribution to the contributors who made it all possible. Thank you, contributors! If you encounter a problem with this release, please report it in [our issue tracker]. [the release of dune 3.23.0] [#13484] [@madroach] [@rgrinberg] [ocaml/dune#14108] [ocaml/dune#13805] [ocaml/dune#14257] [the full changelog] [our issue tracker] Orcaset: Financial models in code =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: Jordan 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 Hi all, sharing `orcaset', a library for building financial statement models in code. Orcaset aims to give agents a robust tool for financial analysis. Based on tests against Claude and Codex Excel tools I've seen lower model error rates while using ~=E2=80=8B40% fewer tokens. I ex= pect the gap to widen as a function of model scale (e.g. easier to reuse components in `orcaset') but haven't benchmarked in depth beyond models of a few hundred line items. It's mainly built from a private equity and credit perspective, but there's nothing inherently specific to those industries. A trivially simple example below for a taste of what it looks like. =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 open Orcaset =E2=94=82 open Series =E2=94=82=20 =E2=94=82 let offset =3D Offset.make ~quarters:1 ~month_end:true () =E2=94=82 let periods =3D Period.make_seq ~start:(Date.make 2026 1 1) ~of= fset |> Seq.take 4 |> List.of_seq =E2=94=82=20 =E2=94=82 let revenue_proj =3D =E2=94=82 List.mapi (fun i period -> (period, 100.0 *. (1.03 ** float_o= f_int (i - 1)))) periods =E2=94=82=20 =E2=94=82 (* Define model *) =E2=94=82 let revenue =3D Spans.of_list ~label:"Revenue" ~split:Split.dai= ly ~agg:Agg.sum revenue_proj =E2=94=82 let costs =3D Spans.scale ~label:"Costs" (-0.45) revenue =E2=94=82 let income =3D Spans.sum ~label:"Income" ~agg:Agg.sum [ revenue= ; costs ] =E2=94=82=20 =E2=94=82 (* Build and print statement *) =E2=94=82 let () =3D =E2=94=82 let stmt =3D Stmt.span_total income (Stmt.span_lines [ revenu= e; costs ]) in =E2=94=82 let resolved =3D Stmt.eval_periods periods stmt in =E2=94=82 Printf.printf "\n%s\n\n" (Stmt.fixed_width resolved) =E2=94=82=20 =E2=94=82 (* Output: =E2=94=82 2026-04-30 2026-07-31 2026-10-31 2027-01-31 =E2=94=82 Revenue 97.09 100.00 103.00 106.09 =E2=94=82 Costs -43.69 -45.00 -46.35 -47.74 =E2=94=82 ---------- ---------- ---------- ---------- =E2=94=82 Income 53.40 55.00 56.65 58.35 *) =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Calculations are fully auditable. Line item relationships can be statically inspected, and dependencies across materialized values can also be traced. Dependencies can be cyclic, meaning you can easily model revolver plugs (or solve revenue growth to a 20% return, as is tradition). Experimental, but would appreciate feedback or suggestions! Miou, a simple scheduler for OCaml 5 =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: Calascibetta Romain 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 I am delighted to announce the release of [miou.0.6.0]. This release mainly adds two new features: =E2=80=A2 a Miou event logging system =E2=80=A2 a new `Miou.take' function allowing you to retrieve tasks avail= able in a `Miou.orphans' The addition of a logging system allows us to record events related to Miou (such as the creation of a new task) and to analyse these events to diagnose a Miou application that does not comply with [our fundamental rules] (such as never forgetting its children). This is why we offer several tools: =E2=80=A2 `mtbox.recd', which allows you to record Miou events in JSON fo= rmat so that you can analyse a Miou application using software such as [perfetto.dev]. =E2=80=A2 `mtbox.diag', which explains why a Miou application terminates = with an exception such as `Still_has_children' (which results from a violation of one of our [rules]) =E2=80=A2 `mtbox.mtop', which provides an _`htop'-style_ TUI for monitori= ng a Miou application. You can see an example here: `mtbox' is experimental (very first release) but it demonstrates what can be done with Miou and now offers a [`nott{y,ui}-miou'] library allowing you to build your own TUI applications with Miou and [`lwd']. The addition of `Miou.take' relates more to our HTTP stack provided by our [`httpcats'] library and the [=CE=BD=CE=B9=CF=9D] Web Framework. Alon= gside a few additions and bug fixes, we have notably undertaken to provide [a reproducible] benchmark of our HTTP servers, the results of which are available [here]. So, in addition to this Miou release, we continue to maintain and improve `httpcats', `vif' and [`hurl'] to provide an HTTP stack for the Miou ecosystem. Finally, as you are no doubt aware, we are continuing to experiment with the development of unikernels in OCaml using Miou, and this release is accompanied by a release of [`mkernel'] (our scheduler for unikernels), [`mnet'] (our TCP/IP stack), and [`mhttp'] and `vifu' (our HTTP stack for unikernels). Added to this are [`msendmail'] (recently released to deploy our mailing list ptt@mailingl.st), [`mfat'] (our FAT32 file system in OCaml) and `mnet-dns'. We are now able to offer you (in addition to [our existing unikernels]) new unikernels with OCaml 5: =E2=80=A2 [`ptt'] to manage your mailing list (announced [here]) =E2=80=A2 [`annuaire'] acting as a recursive DNS resolver and stub DNS resolver (with a ban list) =E2=80=A2 [`contruno'] as a TLS termination proxy managing your Let=E2=80= =99s Encrypt certificates and their renewal =E2=80=A2 and of course [`immuable'], our unikernel that enables the deli= very of a static website (notably that of and ) We invite you to read [our tutorial] to learn how to develop unikernels and we recommend our [Albatross] project for deploying them. In short, we are beginning to consolidate the ecosystem around Miou and offer more and more libraries enabling you to develop your applications with our scheduler. We would like to thank everyone who has contributed, directly or indirectly, to the development of Miou, as well as those who have helped improve the libraries that make up our ecosystem. Please feel free to get involved, ask questions and, above all, start hacking! Happy hacking! [miou.0.6.0] [our fundamental rules] [perfetto.dev] [rules] [`nott{y,ui}-miou'] [`lwd'] [`httpcats'] [=CE=BD=CE=B9=CF=9D] [a reproducible] [here] [`hurl'] [`mkernel'] [`mnet'] [`mhttp'] [`msendmail'] [`mfat'] [our existing unikernels] [`ptt'] [here] [`annuaire'] [`contruno'] [`immuable'] [our tutorial] [Albatross] Run-time types: uses and wants =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: Rapha=C3=ABl Proust asked =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 This is an informal survey to assess the interest in run-time types from various users. If you are not sure what this is about check [lexifi's talk at funocaml] and specifically the type reflection section (timecode on the video: 33:00, slide number: 32). [lexifi's talk at funocaml] the questions =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 Answer in any format you like :) Do you use type reflection / run-time types / whatchacallit? If not, would you use it if it was in the Stdlib or in an established lib in the ecosystem? Do you use some in-house solution or some off the shelf library? (Are you able to show the code?) What do you use it for? What would you use it for? Do you think it'd be useful even without any compiler support? What kind of tooling would make this viable? the why =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C I've seen these things re-implemented multiple times. (I've even had to implement a couple of them myself.) I'm not sure there can be a stdlib module that covers all uses cases completely, but this survey and the ensuing conversation could maybe reveal that a large portion of use cases could be covered. I'm keen for this to exist in the Stdlib but I'm not keen to make a proposal that fails before it even leaves prototyping phase. 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] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt] --==-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week<= /a> Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of May 05 to 12, 2026.

Dune 3.23.0

Shon announced

The Dune team is pleased to announce the release of dune 3.23.0.

Along with many other fixes and improvements, some highlights include:

  • Add support for c_library_flags in foreign_stubs (#13484, @madroach)
  • Many improvements to the promotion and diffing functionality, by @rgrinberg.
  • As part of the previous, a breaking change to the promotion logic has b= een introduced: Dune does automatically promote generated opam files, which must now be manually promoted with dune promote. You can trigger bu= ilding .opam files with the @install, @runtest, and @opa= m aliases. In release mode, .opam files aren't generated at all and whatever is in the sou= rce is used (ocaml/dune#14108,= @rgrinberg).
  • User rules and inline test runners are now sandboxed by default (ocaml/dune#13805 = and ocaml/dune#14257, @rgrinberg).
  • The minimum OCaml version required to build dune is now 4.14.

See the full = changelog for all new features and fixes, and for attribution to the co= ntributors who made it all possible. Thank you, contributors!

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

Orcaset: Financial models in code

Jordan announced

Hi all, sharing orcaset, a library for building financial stat= ement models in code.

Orcaset aims to give agents a robust tool for financial analysis. Based on = tests against Claude and Codex Excel tools I've seen lower model error rate= s while using ~=E2=80=8B40% fewer tokens. I expect the gap to widen as a fu= nction of model scale (e.g. easier to reuse components in orcaset) but haven't benchmarked in depth beyond models of a few hundred line i= tems.

It's mainly built from a private equity and credit perspective, but there's= nothing inherently specific to those industries.

A trivially simple example below for a taste of what it looks like.

open O=
rcaset
open Series

let offset =3D Offset.make ~quarters:1 ~month_end:true ()
let periods =3D Period.make_seq ~start:(Date.make 2026 1 1) ~offset |&=
gt; Seq.ta=
ke 4 |> List.of_seq

let revenue_proj =3D
  List.mapi (fun i period ->=
 (period, 100.0 *. (1.03 ** float_of_int (i - 1)))) periods

(* Define model *)
let revenue =3D Spans.of_list ~label:"Revenue"=
 ~split:Split.daily ~agg:Agg.sum revenue_proj
let costs =3D Spans.scale ~label:"Costs" (-0.4=
5) revenue
let income =3D Spans.sum ~label:"Income" ~agg:Agg.sum [ revenue; costs ]

(* Build and print statement *)
let () =3D
  let stmt =3D Stmt.span_total income (Stmt.span_lines [ revenue; costs ]) in
  let resolved =3D Stmt.eval_periods periods stmt in
  Printf.printf <=
span style=3D"color: #ca3400;">"\n%s\n\n" (Stmt.fixed_width resolved)

(* Output:
           2026-04-30  =
2026-07-31  2026-10-31  2027-01-31
  Revenue       97.09  =
    100.00      103.00      106.09
  Costs        -43.69  =
    -45.00      -46.35      -47.74
           ----------  =
----------  ----------  ----------
Income          53.40  =
     55.00       56.65       58.35 *)

Calculations are fully auditable. Line item relationships can be statically= inspected, and dependencies across materialized values can also be traced.= Dependencies can be cyclic, meaning you can easily model revolver plugs (o= r solve revenue growth to a 20% return, as is tradition).=20

Experimental, but would appreciate feedback or suggestions!

https://github.com/Orcase= t/orcaset-oc

Miou, a simple scheduler for OCaml 5

Calascibetta Romain announced

I am delighted to announce the release of miou.0.6.0. This release mainly adds two new features:

  • a Miou event logging system
  • a new Miou.take function allowing you to retrieve tasks av= ailable in a Miou.orphans

The addition of a logging system allows us to record events related to Miou= (such as the creation of a new task) and to analyse these events to diagno= se a Miou application that does not comply with our fundamental rules= (such as never forgetting its children). This is why we offer several = tools:

  • mtbox.recd, which allows you to record Miou events in JSON= format so that you can analyse a Miou application using software such as <= a href=3D"https://perfetto.dev/">perfetto.dev.
  • mtbox.diag, which explains why a Miou application terminat= es with an exception such as Still_has_children (which results= from a violation of one of our rules)
  • mtbox.mtop, which provides an htop-style TUI for monitoring a Miou application. You can= see an example here:

3D"demo.gif?raw=3Dtrue"

mtbox is experimental (very first release) but it demonstrates= what can be done with Miou and now offers a nott{y,ui}-miou library allowing yo= u to build your own TUI applications with Miou and lwd.

The addition of Miou.take relates more to our HTTP stack provi= ded by our httpcat= s library and the = =CE=BD=CE=B9=CF=9D Web Framework. Alongside a few additions and bug fix= es, we have notably undertaken to provide a reproducible benchmark = of our HTTP servers, the results of which are available here.

3D"92b03ba0b15881db=

So, in addition to this Miou release, we continue to maintain and improve <= code>httpcats, vif and hurl to provide an HTTP stack for the Miou = ecosystem.

Finally, as you are no doubt aware, we are continuing to experiment with th= e development of unikernels in OCaml using Miou, and this release is accomp= anied by a release of mkernel (our scheduler for unikernels), mnet (our TCP/IP stack), and mhttp and vifu (our HTTP stack for unikernels). Added to this are msendmail (re= cently released to deploy our mailing list ptt@mailingl.st), mfat (our FAT32 file syst= em in OCaml) and mnet-dns. We are now able to offer you (in ad= dition to our existing un= ikernels) new unikernels with OCaml 5:

  • ptt to m= anage your mailing list (announced here)
  • annuaire acting as a recursive DNS resolver and stub DNS resolver (with a ban = list)
  • contruno= as a TLS termination proxy managing your Let=E2=80=99s Encrypt certifi= cates and their renewal
  • and of course i= mmuable, our unikernel that enables the delivery of a static web= site (notably that of https://mailingl.st and https://docs.osau.re)

We invite you to read our tu= torial to learn how to develop unikernels and we recommend our Albatross project for depl= oying them.

In short, we are beginning to consolidate the ecosystem around Miou and off= er more and more libraries enabling you to develop your applications with o= ur scheduler. We would like to thank everyone who has contributed, directly= or indirectly, to the development of Miou, as well as those who have helpe= d improve the libraries that make up our ecosystem. Please feel free to get= involved, ask questions and, above all, start hacking!

Happy hacking!

Run-time types: uses and wants

Rapha=C3=ABl Proust asked

This is an informal survey to assess the interest in run-time types from va= rious users. If you are not sure what this is about check lexifi's talk at funocaml = and specifically the type reflection section (timecode on the video: 33:00,= slide number: 32).

the questions

Answer in any format you like :)

Do you use type reflection / run-time types / whatchacallit? If not, would = you use it if it was in the Stdlib or in an established lib in the ecosyste= m?

Do you use some in-house solution or some off the shelf library? (Are you a= ble to show the code?)

What do you use it for? What would you use it for?

Do you think it'd be useful even without any compiler support? What kind of= tooling would make this viable?

the why

I've seen these things re-implemented multiple times. (I've even had to imp= lement a couple of them myself.) I'm not sure there can be a stdlib module = that covers all uses cases completely, but this survey and the ensuing conv= ersation could maybe reveal that a large portion of use cases could be cove= red.

I'm keen for this to exist in the Stdlib but I'm not keen to make a proposa= l that fails before it even leaves prototyping phase.

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 loo= k at the archive or the <= a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive= s.

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

--==-=-=-- --=-=-=-- --===-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFvBAEBCABZFiEE6lXof/BsSVW56ZmGBA0KO07S5ccFAmoC1oobFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzHxxhbGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5v cmcACgkQBA0KO07S5ccCOggAypZyzUjQTYy2sAlTkum4QQyYvDWYOLXJRK0CBF83 ktVEKLejS6ZuQftq/25Cv6+ho9IPzGI3v9Wk+W4oNoEOnPaN9TJZsej+4rVKEJzg 262HpLzdbOGJth2WM52d+4BCr7zEi5i4OdLG3V+KoOlDwfuDAG3BhsiitJVUdc65 /8mLMimGGuYf3+R7SdASKRfxfcYDbQnOVyiAHbSlSdpZHnXbCVzTGMm+lObP59Bg pv3SCLkLdpZfk8Sas8kfqCzALd3lZnuHtQ4a/5jQv3lRDdbMd7v6BFKKNxstMB1n mRQpi2Au7D4aaAdweAP3ivKspho+fi0P5FOk3FpX6ilstg== =OEXD -----END PGP SIGNATURE----- --===-=-=--