From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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= Authentication-Results: plum; dmarc=fail (p=none dis=none) header.from=polytechnique.org 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=W//aDg8m; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=polytechnique.org header.i=@polytechnique.org header.a=rsa-sha256 header.s=svoboda header.b=Ch86oxbb; dkim-atps=neutral Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id D1D62B80123 for ; Tue, 12 Nov 2024 15:00:30 +0000 (GMT) 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=nHiIbRdg6S3Qxf5l3Wk4GiJe+6prS95K3Ev/2ahadFs=; b=W//aDg8mb/L9aztUq/0sPUEWyHF4o4C3mURNjTZaoXKxUrYN8IYM95zD M9acmgKVEGvvKqRS8IbXQLf0m+mW99Ts6bVCuDFjjrge13OdDbLofC7xG uYsK9W163a9OJ6bsVRrQQhEO7AmJgfI0fqUqkbe2p722shLpSw/HukqMc k=; Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr designates 128.93.162.160 as permitted sender) identity=mailfrom; client-ip=128.93.162.160; 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 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com 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@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only Authentication-Results: mail2-relais-roc.national.inria.fr; spf=Pass smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr; dkim=hardfail (body hash did not verify [final]) header.i=@polytechnique.org X-IronPort-AV: E=Sophos;i="6.12,148,1728943200"; d="scan'208,217";a="193413683" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 12 Nov 2024 16:00:29 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 240B9E0D22; Tue, 12 Nov 2024 16:00:29 +0100 (CET) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 9774FE00B7 for ; Tue, 12 Nov 2024 16:00:23 +0100 (CET) IronPort-SDR: 67336d86_ZLKL6hFi8XSNV4KQOt6MN8+DQlwfAvyC77YBGGXW4HkXqYL GgoJW5iYQq6qBkgyBGlfs8mHIuByUzXw7u2xVVg== X-IPAS-Result: =?us-ascii?q?A0GjBwC0bDNngSIeaIFaFoJGgUFbKBkBXQZaMwcISIRWg?= =?us-ascii?q?0+FLYhygRWQNop3gVYUgREDGBYjFAEDAQ0uAQUNAQIEAQEDAQIBhQACijsCH?= =?us-ascii?q?wYBBDIHDgECBAEBAQEDAgMBAQEBAQEQAQEFAQEBAgEBAgQGAQIQAQE9BUmFe?= =?us-ascii?q?w2CRVFTHmEEAwYGAQEBAQEBAQEBAQEBAQEiAQEBAQEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIMATMEC1wJChMBATgYIwMQBAEGA?= =?us-ascii?q?wIRATUXARIagg9Zgh9FAwQBDAaUe5p6Gjd6gTKBAYIMAQEGgQg+AgELAgIDD?= =?us-ascii?q?y4B2gaBGkoJgUiFaoJIGgEqSGoChEaEPCcPgVVEgRWCC25vgj8FBgwLAQEBA?= =?us-ascii?q?RiBCBwBAQJLCYMlgmmCMxKBNQmCaWQSIwKBFhCGYoENg3+DNBOCMoIggUyBM?= =?us-ascii?q?4k4gUciAyYzMgFVExcLBwVggRYDgXuBVoE5gVFDgl1KhRqBBTmCEWlLOgINA?= =?us-ascii?q?jaCJCRZgk+DWIFChG2EZoIhHUADC209NRQbnkQBCTNpAUaCYQ4fGQYBWBwVB?= =?us-ascii?q?QEHDBIEAQEgAiwCBAQODQgWCigXBQUBAysfCAMLLwOSThAYgSGcVZRbNAeEH?= =?us-ascii?q?YFdBgyJA4EklXaEBIFWiyuHAJJIIphVIoI0hyEDgSUJX4EOHkyIfowVECwCN?= =?us-ascii?q?4UcgVEdDiU8bxwFCQczGjBDgmcJCjwcD44qAheBSXGBHhCBLoEmgXU7gm29K?= =?us-ascii?q?0I1AgEBNwIHAQoBAQMJhUUdAQGJQIFLAQE?= IronPort-PHdr: A9a23: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 w== IronPort-Data: A9a23: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 w== IronPort-HdrOrdr: A9a23:3JayBKDL+FfvyUDlHemR55DYdb4zR+YMi2TDtnoBKiC9F/bzqy nAppomPHPP5Qr5O0tBpTnjAsi9qBrnnPYf3WB7B9iftWfd1FeAHcVL0s/JwjHrGSHyn9Qtt5 tIQuxZE9O1KVB7iK/BkW2F+jsbsby6zJw= X-Talos-CUID: =?us-ascii?q?9a23=3ACVrwSmhSTh1KAG5NULHMsPqK7zJuKlDdnFLrJEK?= =?us-ascii?q?BKU12RreHRFOwu4Enup87?= X-Talos-MUID: =?us-ascii?q?9a23=3AIl7GFA0s0/hQgU5SrcQzoe1PzzUj6Z6NLxgfs8Q?= =?us-ascii?q?8uIqUBBJ7CRqngg+Fa9py?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.12,148,1728943200"; d="scan'208,217";a="193413618" X-URL-ContentFilter: X-MGA-submission: =?us-ascii?q?MDFMPTxQUtQC0hKj6BKopLM8KbITWqM2nLXFqX?= =?us-ascii?q?gmZ6FWoK8Is7NSSpmCMTczdwkU3FKEapWJMxTACoNwUCoTzyrG6kYBc6?= =?us-ascii?q?W0WyVZRWf8Is71wEYwIr2FoZycRa++3LXLE7G+cplwk0FqIOv4MIQnkN?= =?us-ascii?q?X+3ngaX06bUc1cbSyMcJqPcA=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Nov 2024 16:00:22 +0100 Received: from TM.local (88-121-115-170.subs.proxad.net [88.121.115.170]) (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 39429564A30; Tue, 12 Nov 2024 16:00:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1731423621; bh=UDHvvkpG04xUl6pLtKB8AFdzGpglTdHcr441FJRi5H8=; h=From:To:Subject:Date:Message-ID; b=Ch86oxbbFCk1MO0dpRcY5BiMyLx/1Ud759MPhrOhzNVCS6P+alCsPzT0zqp/Gih2k UXaJdEgYp+zXYB0371IzrBOCl2b1B63ZH8nJOnWzbquX9RqP1Bjxa1i4o1v/4H1NNX Iki8R3+f4KPW/oBOj0U5sSwmtLo+g7KFq0Pc27cM= From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 12 Nov 2024 16:00:19 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Nov 12 16:00:21 2024 +0100 (CET)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.046131, queueID=C3DF7564A31 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: 19198 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: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Here is the latest OCaml Weekly News, for the week of November 05 to 12, 2024. 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 Picos =E2=80=94 Interoperable effects based concurrency findlib-1.9.7 First release candidate for OCaml 5.2.1 mirage-swapfs Dune dev meeting Other OCaml News Old CWN Picos =E2=80=94 Interoperable effects based concurrency =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: polytypic 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 I'm happy to announce that Picos version 0.6.0 has been released! Picos is a systems programming interface between effects based schedulers and concurrent abstractions. A lot of work has been done on Picos since previous announcements. You might start on the new minimalist landing page for [Picos], which, among other things, allows you to access the documentation of all the released Picos versions. Also, in case you missed it, a recording of the talk [Picos =E2=80=94 Interoperable effects based concurrency] can be found [here]. We also held a workshop on concurrency and parallelism at [Fun OCaml]. You might enjoy trying out [the exercise we developed for the workshop]. As, for reasons of dependencies, Picos now comes in no less than [8 packages] and multiple libraries, here is a summary of the packages and the libraries inside each package: =E2=80=A2 [`picos'] =E2=80=94 Picos =E2=80=94 Interoperable effects based= concurrency =E2=80=A2 [`picos'] =E2=80=94 A systems programming interface between e= ffects based schedulers and concurrent abstractions =E2=80=A2 [`picos.domain'] =E2=80=94 Minimalistic domain API available = both on OCaml 5 and on OCaml 4 =E2=80=A2 [`picos.thread'] =E2=80=94 Minimalistic thread API available = with or without threads.posix =E2=80=A2 [`picos_mux'] =E2=80=94 Sample schedulers for Picos =E2=80=A2 [`picos_mux.fifo'] =E2=80=94 Basic single-threaded effects ba= sed Picos compatible scheduler for OCaml 5 =E2=80=A2 [`picos_mux.multififo'] =E2=80=94 Basic multi-threaded effect= s based Picos compatible scheduler for OCaml 5 =E2=80=A2 [`picos_mux.random'] =E2=80=94 Randomized multi-threaded effe= cts based Picos compatible scheduler for OCaml 5 =E2=80=A2 [`picos_mux.thread'] =E2=80=94 Basic Thread based Picos compa= tible scheduler for OCaml 4 =E2=80=A2 [`picos_std'] =E2=80=94 Sample libraries for Picos =E2=80=A2 [`picos_std.finally'] =E2=80=94 Syntax for avoiding resource = leaks for Picos =E2=80=A2 [`picos_std.awaitable'] =E2=80=94 Basic futex-like awaitable = atomic location for Picos =E2=80=A2 [`picos_std.event'] =E2=80=94 Basic event abstraction for Pic= os =E2=80=A2 [`picos_std.structured'] =E2=80=94 Basic structured concurren= cy primitives for Picos =E2=80=A2 [`picos_std.sync'] =E2=80=94 Basic communication and synchron= ization primitives for Picos =E2=80=A2 [`picos_io'] =E2=80=94 Asynchronous IO system for Picos =E2=80=A2 [`picos_io'] =E2=80=94 Basic IO facilities based on OCaml sta= ndard libraries for Picos =E2=80=A2 [`picos_io.select'] =E2=80=94 Basic Unix.select based IO even= t loop for Picos =E2=80=A2 [`picos_io.fd'] =E2=80=94 Externally reference counted file d= escriptors =E2=80=A2 [`picos_io_cohttp'] =E2=80=94 Cohttp running on Picos IO =E2=80=A2 [`picos_io_cohttp'] =E2=80=94 Minimalistic Cohttp implementat= ion using Picos_io for Picos =E2=80=A2 [`picos_lwt'] =E2=80=94 Lwt interface for Picos =E2=80=A2 [`picos_lwt'] =E2=80=94 Direct style Picos compatible interfa= ce to Lwt for OCaml 5 =E2=80=A2 [`picos_lwt.unix'] =E2=80=94 Direct style Picos compatible in= terface to Lwt with Lwt_unix for OCaml 5 =E2=80=A2 [`picos_aux'] =E2=80=94 Auxiliary libraries for Picos =E2=80=A2 [`picos_aux.htbl'] =E2=80=94 Lock-free hash table =E2=80=A2 [`picos_aux.mpmcq'] =E2=80=94 Lock-free multi-producer, multi= -consumer queue =E2=80=A2 [`picos_aux.mpscq'] =E2=80=94 Lock-free multi-producer, singl= e-consumer queue =E2=80=A2 [`picos_aux.rc'] =E2=80=94 External reference counting tables= for disposable resources =E2=80=A2 [`picos_meta'] =E2=80=94 Integration tests for Picos packages In addition to the above, [Moonpool] now uses Picos underneath. And, I almost forgot, there is a ready to be merged [PR for Kcas to change it to use Picos]. You should be able to try it with an opam [pin-depends]. [Picos] [Picos =E2=80=94 Interoperable effects based concurrency] [here] [Fun OCaml] [the exercise we developed for the workshop] [8 packages] [`picos'] [`picos'] [`picos.domain'] [`picos.thread'] [`picos_mux'] [`picos_mux.fifo'] [`picos_mux.multififo'] [`picos_mux.random'] [`picos_mux.thread'] [`picos_std'] [`picos_std.finally'] [`picos_std.awaitable'] [`picos_std.event'] [`picos_std.structured'] [`picos_std.sync'] [`picos_io'] [`picos_io'] [`picos_io.select'] [`picos_io.fd'] [`picos_io_cohttp'] [`picos_io_cohttp'] [`picos_lwt'] [`picos_lwt'] [`picos_lwt.unix'] [`picos_aux'] [`picos_aux.htbl'] [`picos_aux.mpmcq'] [`picos_aux.mpscq'] [`picos_aux.rc'] [`picos_meta'] [Moonpool] [PR for Kcas to change it to use Picos] [pin-depends] findlib-1.9.7 =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: Gerd Stolpmann 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 findlib-1.9.7 is out. This is mostly a bugfix release. There is now also some support for relocability (driven by environment variables), contributed by Marek Kubica. For manual, download, manuals, etc. see here: An updated OPAM package will follow soon. First release candidate for OCaml 5.2.1 =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: octachron 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 The release of OCaml version 5.2.1 is imminent. OCaml 5.2.1 is a collection of safe but import runtime time bug fixes backported from the 5.3 branch of OCaml. The full list of bug fixes is available below. In order to ensure that the future release works as expected, we are planning to test a release candidate during the upcoming week. If you find any bugs, please report them here on [GitHub]. [GitHub] Installation Instructions =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 base compiler can be installed as an opam switch with the following commands on opam 2.1: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 opam update =E2=94=82 opam switch create 5.2.1~rc1 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 The source code for the release candidate is available on =E2=80=A2 [GitHub] =E2=80=A2 [Inria archives] [GitHub] [Inria archives] =E2=97=8A Fine-Tuned Compiler Configuration If you want to tweak the configuration of the compiler, you can switch to the option variant with: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 opam update =E2=94=82 opam switch create ocaml-variants.5.2.1~rc1+optio= ns =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 where `` is a space-separated list of `ocaml-option-*` packages. For instance, for a `flambda` and `no-flat-float-array` switch: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 opam switch create 5.2.1~rc1+flambda+nffa ocaml-variants.5.2.1~= rc1+options ocaml-option-flambda ocaml-option-no-flat-float-array =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 All available options can be listed with `opam search ocaml-option`. *Changes Since OCaml 5.2.0* Runtime System: =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 [#13207]: Be sure to reload the register caching the exception handler in caml_c_call and caml_c_call_stack_args, as its value may have been changed if the OCaml stack is expanded during a callback. (Miod Vallat, report by Vesa Karvonen, review by Gabriel Scherer and Xavier Leroy) =E2=80=A2 [#13252]: Rework register assignment in the interpreter code on= m68k on Linux, due to the %a5 register being used by Glibc. (Miod Vallat, report by St=C3=A9phane Glondu, review by Gabriel Scherer and Xavier Leroy) =E2=80=A2 [#13268]: Fix a call to test in configure.ac that was causing e= rrors when LDFLAGS contains several words. (St=C3=A9phane Glondu, review by Miod Vallat) =E2=80=A2 [#13234], [#13267]: Open runtime events file in read-write mode= on armel (armv5) systems due to atomic operations limitations on that platform. (St=C3=A9phane Glondu, review by Miod Vallat and Vincent Laviron) =E2=80=A2 [#13188]: fix races in the FFI code coming from the use of Int_val(=E2=80=A6) on rooted values inside blocking questions / withou= t the runtime lock. (Calling Int_val(=E2=80=A6) on non-rooted immediates is = fine, but any access to rooted values must be done outside blocking sections / with the runtime lock.) (Etienne Millon, review by Gabriel Scherer, Jan Midtgaard, Olivier Nicole) =E2=80=A2 [#13318]: Fix regression in GC alarms, and fix them for flambda. (Guillaume Munch-Maccagnoni, report by Benjamin Monate, review by Vincent Laviron and Gabriel Scherer) =E2=80=A2 [#13140]: POWER back-end: fix issue with call to `caml_call_realloc_stack` from a DLL (Xavier Leroy, review by Miod Vallat) =E2=80=A2 [#13370]: Fix a low-probability crash when calling Gc.counters. (Demi Marie Obenour, review by Gabriel Scherer) =E2=80=A2 [#13402], [#13512], [#13549], [#13553]: Revise bytecode implementation of callbacks so that it no longer produces dangling registered bytecode fragments. (Xavier Leroy, report by Jan Midtgaard, analysis by Stephen Dolan, review by Miod Vallat) =E2=80=A2 [#13502]: Fix misindexing related to `Gc.finalise_last` that co= uld prevent finalisers from being run. (Nick Roberts, review by Mark Shinwell) =E2=80=A2 [#13520]: Fix compilation of native-code version of systhreads. Bytecode fields were being included in the thread descriptors. (David Allsopp, review by S=C3=A9bastien Hinderer and Miod Vallat) [#13207] [#13252] [#13268] [#13234] [#13267] [#13188] [#13318] [#13140] [#13370] [#13402] [#13512] [#13549] [#13553] [#13502] [#13520] mirage-swapfs =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: Reynir Bj=C3=B6rnsson 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 I am pleased to announce the first release of [mirage-swapfs] (swapfs on opam). It is an experimental library to use a mirage block device for ephemeral, append-only, anonymous "files". It was developed for use cases such as in [opam-mirror] where opam package source archives are downloaded. The files are first downloaded to "swap" and if the download succeeds and the checksum is as expected the data is then copied over to the tar filesystem. Internally it uses a weak pointer array (`Weak.t') to map "block" offsets to handles. The idea is the garbage collector can help us free up "blocks" if the user forgets to explicitly free the handle. A "block" is (configurable, see `blocking_factor') multiple of sectors in order to reduce bookkeeping overhead. With a sector size of 512 bytes the default is 1 MiB per block. See also the documentation I would be interested to hear about other ideas or approaches. [mirage-swapfs] [opam-mirror] Dune dev meeting =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: Etienne Marais 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 We will hold our regular Dune dev meeting tomorrow, on Wednesday, November, 13th at *9:00* CET. :warning: Note that the session has been moved *one hour earlier*. As usual, the session will be one hour long. Whether you are a maintainer, a regular contributor, a new joiner or just curious, you are welcome to join: these discussions are opened! The goal of these meetings is to provide a place to discuss the ongoing work together and synchronise between the Dune developers !:smile: :calendar: Agenda =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 agenda is available on the [meeting dedicated page]. Feel free to ask if you want to add more items in it. [meeting dedicated page] :computer: Links =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 Meeting link:[ zoom] =E2=80=A2 Calendar event:[ google calendar] =E2=80=A2 Wiki with information and previous notes:[ GitHub Wiki] [ zoom] [ google calendar] [ GitHub Wiki] Other OCaml News =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 >>From the ocaml.org blog =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 Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. =E2=80=A2 [Beta release of Frama-C 30.0~beta (Zinc)] =E2=80=A2 [Making OCaml Mainstream: Support Our Open Source Work on GitHu= b] [the ocaml.org blog] [Beta release of Frama-C 30.0~beta (Zinc)] [Making OCaml Mainstream: Support Our Open Source Work on GitHub] 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 November 05 to 12, 20= 24.

Picos =E2=80=94 Interoperable effects based concurrency

polytypic announced

I'm happy to announce that Picos version 0.6.0 has been released!

Picos is a systems programming interface between effects based schedulers a= nd concurrent abstractions.

A lot of work has been done on Picos since previous announcements.

You might start on the new minimalist landing page for Picos, which, among other things, allo= ws you to access the documentation of all the released Picos versions.

Also, in case you missed it, a recording of the talk

Picos =E2=80=94 Interoperable effects= based concurrency

can be found here.

We also held a workshop on concurrency and parallelism at Fun OCaml. You might enjoy trying out the exercise we develope= d for the workshop.

As, for reasons of dependencies, Picos now comes in no less than 8 packages and multipl= e libraries, here is a summary of the packages and the libraries inside eac= h package:

  • picos =E2=80=94 Picos =E2=80=94 Interoperable effects = based concurrency
    • picos =E2=80=94 A systems programming interface = between effects based schedulers and concurrent abstractions
    • picos.domain =E2=80=94 Minimalistic domai= n API available both on OCaml 5 and on OCaml 4
    • picos.thread =E2=80=94 Minimalistic threa= d API available with or without threads.posix
  • picos_mux =E2=80=94 Sample schedulers for Picos
    • picos_mux.fifo =E2=80=94 Basic sing= le-threaded effects based Picos compatible scheduler for OCaml 5
    • picos_mux.multififo =E2=80=94 = Basic multi-threaded effects based Picos compatible scheduler for OCaml 5
    • picos_mux.random =E2=80=94 Random= ized multi-threaded effects based Picos compatible scheduler for OCaml 5
    • picos_mux.thread =E2=80=94 Basic = Thread based Picos compatible scheduler for OCaml 4
  • picos_std =E2=80=94 Sample libraries for Picos
  • picos_io =E2=80=94 Asynchronous IO system for Picos
    • picos_io =E2=80=94 Basic IO facilities bas= ed on OCaml standard libraries for Picos
    • picos_io.select =E2=80=94 Basic Uni= x.select based IO event loop for Picos
    • picos_io.fd =E2=80=94 Externally refere= nce counted file descriptors
  • picos_io_cohttp =E2=80=94 Cohttp running on = Picos IO
    • picos_io_cohttp =E2=80=94 Mi= nimalistic Cohttp implementation using Picos_io for Picos
  • picos_lwt =E2=80=94 Lwt interface for Picos
    • picos_lwt =E2=80=94 Direct style Picos c= ompatible interface to Lwt for OCaml 5
    • picos_lwt.unix =E2=80=94 Direct sty= le Picos compatible interface to Lwt with Lwt_unix for OCaml 5
  • picos_aux =E2=80=94 Auxiliary libraries for Picos
    • picos_aux.htbl =E2=80=94 Lock-free = hash table
    • picos_aux.mpmcq =E2=80=94 Lock-fre= e multi-producer, multi-consumer queue
    • picos_aux.mpscq =E2=80=94 Lock-fre= e multi-producer, single-consumer queue
    • picos_aux.rc =E2=80=94 External refer= ence counting tables for disposable resources
  • picos_meta =E2=80=94 Integration tests for Picos = packages

In addition to the above, Mo= onpool now uses Picos underneath.

And, I almost forgot, there is a ready to be merged PR for Kcas to change it to use Picos= . You should be able to try it with an opam pin-depends.

findlib-1.9.7

Gerd Stolpmann announced

findlib-1.9.7 is out. This is mostly a bugfix release. There is now also some support for relocability (driven by environment variables), contributed by Marek Kubica.

For manual, download, manuals, etc. see here:

http://proje= cts.camlcity.org/projects/findlib.html

An updated OPAM package will follow soon.

First release candidate for OCaml 5.2.1

octachron announced

The release of OCaml version 5.2.1 is imminent.

OCaml 5.2.1 is a collection of safe but import runtime time bug fixes backp= orted from the 5.3 branch of OCaml. The full list of bug fixes is available= below.

In order to ensure that the future release works as expected, we are planni= ng to test a release candidate during the upcoming week.

If you find any bugs, please report them here on GitHub.

Installation Instructions

The base compiler can be installed as an opam switch with the following com= mands on opam 2.1:

opam update
opam switch create 5.2.1~rc1

The source code for the release candidate is available on

  • Fine-Tuned Compiler Configuration

    If you want to tweak the configuration of the compiler, you can switch to t= he option variant with:

    opam update
    opam switch create <switch_name> ocaml-variants.5.2.1~rc1+options <=
    ;option_list>
    

    where `<option_list>` is a space-separated list of `ocaml-option-*` p= ackages. For instance, for a `flambda` and `no-flat-float-array` switch:

    opam switch create 5.2.1~rc1+flambda+nffa ocaml-variants.5.2.1~rc1+options =
    ocaml-option-flambda ocaml-option-no-flat-float-array
    

    All available options can be listed with `opam search ocaml-option`.

    Changes Since OCaml 5.2.0

Runtime System:

  • #13207: Be = sure to reload the register caching the exception handler in caml_c_call and caml_c_call_stack_args, as its value may have been changed if the OCaml stack is expanded during a callback. (Miod Vallat, report by Vesa Karvonen, review by Gabriel Scherer and Xavier Leroy)
  • #13252: Rew= ork register assignment in the interpreter code on m68k on Linux, due to the %a5 register being used by Glibc. (Miod Vallat, report by St=C3=A9phane Glondu, review by Gabriel Scherer and Xavier Leroy)
  • #13268: Fix= a call to test in configure.ac that was causing errors when LDFLAGS contains several words. (St=C3=A9phane Glondu, review by Miod Vallat)
  • #13234, #13267: Open runti= me events file in read-write mode on armel (armv5) systems due to atomic operations limitations on that platform. (St=C3=A9phane Glondu, review by Miod Vallat and Vincent Laviron)
  • #13188: fix= races in the FFI code coming from the use of Int_val(…) on rooted values inside blocking questions / without the runtime lock. (Calling Int_val(…) on non-rooted immediates is fine, but any access to rooted values must be done outside blocking sections / with the runtime lock.) (Etienne Millon, review by Gabriel Scherer, Jan Midtgaard, Olivier Nicole)<= /li>
  • #13318: Fix= regression in GC alarms, and fix them for flambda. (Guillaume Munch-Maccagnoni, report by Benjamin Monate, review by Vincent Laviron and Gabriel Scherer)
  • #13140: POW= ER back-end: fix issue with call to `caml_call_realloc_stack` from a DLL (Xavier Leroy, review by Miod Vallat)
  • #13370: Fix= a low-probability crash when calling Gc.counters. (Demi Marie Obenour, review by Gabriel Scherer)
  • #13402, #13512, #13549, #13553: Revise bytecode implemen= tation of callbacks so that it no longer produces dangling registered bytecode fragments. (Xavier Leroy, report by Jan Midtgaard, analysis by Stephen Dolan, review by Miod Vallat)
  • #13502: Fix= misindexing related to `Gc.finalise_last` that could prevent finalisers from being run. (Nick Roberts, review by Mark Shinwell)
  • #13520: Fix= compilation of native-code version of systhreads. Bytecode fields were being included in the thread descriptors. (David Allsopp, review by S=C3=A9bastien Hinderer and Miod Vallat)

mirage-swapfs

Reynir Bj=C3=B6rnsson announced

I am pleased to announce the first release of mirage-swapfs (swapfs on opam). It is an exp= erimental library to use a mirage block device for ephemeral, append-only, = anonymous "files". It was developed for use cases such as in opam-mirror where opam package= source archives are downloaded. The files are first downloaded to "swap" a= nd if the download succeeds and the checksum is as expected the data is the= n copied over to the tar filesystem.

Internally it uses a weak pointer array (Weak.t) to map "block= " offsets to handles. The idea is the garbage collector can help us free up= "blocks" if the user forgets to explicitly free the handle. A "block" is (= configurable, see blocking_factor) multiple of sectors in orde= r to reduce bookkeeping overhead. With a sector size of 512 bytes the defau= lt is 1 MiB per block.

See also the documentation https://robur-coop.github.io/mirage-swapfs/doc= /swapfs/index.html

I would be interested to hear about other ideas or approaches.

Dune dev meeting

Etienne Marais announced

We will hold our regular Dune dev meeting tomorrow, on Wednesday, November,= 13th at 9:00 CET. :warning: Note that the session has been moved one hour earlier. As usual, the session will be one hour long.

Whether you are a maintainer, a regular contributor, a new joiner or just c= urious, you are welcome to join: these discussions are opened! The goal of = these meetings is to provide a place to discuss the ongoing work together a= nd synchronise between the Dune developers !:smile:

:calendar: Agenda

The agenda is available on the meeting dedicated page. Feel free to ask if y= ou want to add more items in it.

:computer: Links

Other OCaml News

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.

--=-=-=--