From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id CD5145D5 for ; Tue, 17 May 2022 07:12:42 +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=gcbS3KyWPH7tunT7q3Hfxdkm2nK/+YRrNimFzlJyZe4=; b=aYlDvrr1BFJyA/U3DSCnOqHZyctU+1bS9OGLRuWznYLXaapeBmB5w6fH EzLkv/XyVRpNx7cD5tTgvTmWVTdHkvhAKQGNtm8cPDu5VUBbaapdhkH5o XZdykvbSXqmhxqonanwsJPiT8hGGC+M/mhzhfLmB/2QmBE4JbKW0ev3xg Y=; 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@sympa.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.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 ip4:192.134.164.0/24 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 X-IronPort-AV: E=Sophos;i="5.91,232,1647298800"; d="scan'208,217";a="36616168" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 17 May 2022 09:12:41 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 68AA2E033B; Tue, 17 May 2022 09:12:41 +0200 (CEST) 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 089E1E00A8 for ; Tue, 17 May 2022 09:12:37 +0200 (CEST) IronPort-SDR: NQkiAEd21twLmmVqHTurNI25BPQuxlwvvW5GKQ4uS+/JggjwB+Nv75H5EK+NO97Cot37bdHdh0 XGBQbyBxT5nxJ6+3v+YRpQ0rd5L1gknN0pWZL2rVtbul0HRS5MTKwGspKpqmnWEq83XsC3bRdO qSx5UX7AWVhPzZgf381ZP5IPbtbE+zfHXzSPHJfAfgdNpGNTndvODbDkqEnrR3EkEKSuxCiVHi t0mY2Hjd6eFsjAc+/IGmxwUxhKAIUnRKgFiFAGobV66/2gZmuxssO11XptC5hQhoNHQGFdHcGR MCpF3iNrSNX0rizKXfixO63M X-IPAS-Result: =?us-ascii?q?A0DXAAAQSoNimCIeaIFag3mBAxkBXgZVLQcIQ4ROgWOHH?= =?us-ascii?q?YgLiU6UPgNfAQMBDSwBBQ0BAgQBAYNMgU6FKAIeBgEFMxMBAgQBAQEBAwIDA?= =?us-ascii?q?QEBAQEBAwEBBQEBAQIBAQIEBAETAQEBAQEBAQEJCwkHBgoHEA4FPGRkBIFLB?= =?us-ascii?q?IF0CzQNgjUMDAMDg3cBGwYKZSMDFAcDAgQNARcBHhcBEhQGAYJiAYMXBAEKk?= =?us-ascii?q?BOcEYExgQGDTwEDBRABDgmEGYESUySBGIYZWEoBgwmEGQInEIFVRIEVgnpug?= =?us-ascii?q?UJERRcBAQEBAYE7AQEIg26CZQSVaQc6A1SBBRKBIXEBCAYGBwoFMgYCDBgUB?= =?us-ascii?q?AITEk0GHgITDAoGFg5CEhkMDwMSAxEBBwILEggVLAgDAgMIAwIDLgIDGAkHC?= =?us-ascii?q?gMdCAocEhAUAgQTHwsIAxofLQkCBA4DQwgLCgMRBAMTGAsWCBAEBgMJLw0oC?= =?us-ascii?q?wMFDw8BBgMGAgUFAQMgAxQDBScHAyEHCyYNDQQjHQMDBSYDAgIbBwICAwIGF?= =?us-ascii?q?wYCAhlYCigNCAQIBBgEHiUTBQIHMQUELwIeBAUGEQkCFgIGBAUCBAQWAgISC?= =?us-ascii?q?AIIJxsHFjYZAQVdBgsJIxYGHBARBQYWAyZTDgYikmaDHQmBMwgGCjYOPDATH?= =?us-ascii?q?g0BWBkfATEPCQQKSggDOol0iC6YaYJgkUt8NAeDT4E9BgyIK4EgjH+IIoN1g?= =?us-ascii?q?U+RTZFGIZZFIIkmgRqCSIhIi3oDAhWFJIFOKoF+MxowgysJRQEDAg0BAgIDA?= =?us-ascii?q?QIBAgkBAQJTjSiEFIJZC4F1O4VMPzQCAQE3AgYBCgEBAwmFYwEBBRMLAYkGA?= =?us-ascii?q?QE?= IronPort-PHdr: A9a23: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 9aL8pTEkW6GJKQ= IronPort-Data: A9a23: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 r7sSg== IronPort-HdrOrdr: A9a23:wcI8O6uJcX6CgikDFbyNEPZ87skDcdV00zEX/kB9WHVpm62j9/ xG88516faZslwssRIb+OxoWpPvfZq0z/ccirX5Vo3PYOCJggaVBbAnxbSn6TztES/z+4dmpM RdWpk7Lsb/SXxzjcOS2njcLz/M+qjkzJyV X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.91,232,1647298800"; d="scan'208,217";a="36616131" X-MGA-submission: =?us-ascii?q?MDFP3HLENQ58LS/IgfdMGJ3ZmJCIjJePPwqNGn?= =?us-ascii?q?nX3fT71AytM84vb0Cf8eWeyjjwf1WHZKM0s8H+FnUY3ko/zKCkLR/EZm?= =?us-ascii?q?gSd5v90m8QOedgqChktFCUYkA0CfnfNofLD0LiXR1438nDASLzpAMEVz?= =?us-ascii?q?w+2XnCejxf8RRRvbo+e+gSig=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; 17 May 2022 09:12:36 +0200 Received: from set (cbg35-2-78-242-14-140.fbx.proxad.net [78.242.14.140]) (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 749675605B9; Tue, 17 May 2022 09:12:35 +0200 (CEST) From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr Date: Tue, 17 May 2022 09:12:34 +0200 Message-ID: <87lev0zl7h.fsf@m4x.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue May 17 09:12:35 2022 +0200 (CEST)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.024764, queueID=E0FD75605EF 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: 18763 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: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhlIHdl ZWsgb2YgTWF5IDEwIHRvIDE3LA0KMjAyMi4NCg0KVGFibGUgb2YgQ29udGVudHMNCuKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQpCcm93c2luZyBP Q2FtbCBzb3VyY2UgdHJlZSB3aXRoIFZTQ29kZS9tZXJsaW4/DQpyZWxlYXNlIG9mIHByYm5tY24t Z251cGxvdCAwLjAuMw0KQ2FsbCBmb3IgUHJlc2VudGF0aW9ucyBmb3IgIlRlYWNoaW5nIEZ1bmN0 aW9uYWwgUHJvZ3JhbW1pbmcgaW4gT0NhbWwiIGFzIHBhcnQgb2YgdGhlIE9DYW1sIFdvcmtzaG9w IDIwMjINCk9sZCBDV04NCg0KDQpCcm93c2luZyBPQ2FtbCBzb3VyY2UgdHJlZSB3aXRoIFZTQ29k ZS9tZXJsaW4/DQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0 cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Jyb3dzaW5nLW9jYW1sLXNvdXJjZS10cmVlLXdpdGgt dnNjb2RlLW1lcmxpbi85ODE5LzI+DQoNCg0KS2VpZ28gSW1haSBleHBsYWluZWQNCuKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQog IEkgbWFuYWdlZCB0byBicm93c2UgdGhlIE9DYW1sIHNvdXJjZSB0cmVlIHdpdGggVlNDb2RlIHdp dGggdGhlDQogIGZvbGxvd2luZyBzdGVwczoNCg0KICAxLiBQcmVwYXJlIGAubWVybGluJyBmaWxl IChhdHRhY2hlZCBiZWxvdykgcmVmZXJyaW5nIHRvIHRoZSBhbGwgc291cmNlDQogICAgIGRpcmVj dG9yaWVzIGluIHRoZSB0cmVlDQogIDIuIFBpbiB5b3VyIG9jYW1sLWxzcC1zZXJ2ZXIgYXQgMS44 LjMgYnkgYG9wYW0gcGluIG9jYW1sLWxzcC1zZXJ2ZXINCiAgICAgMS44LjMnIChhcyBpdCBpcyB0 aGUgbGFzdCB2ZXJzaW9uIHRoYXQgc3VwcG9ydCBgLm1lcmxpbicpDQogIDMuIENsb25lIE9DYW1s IHJlcG9zaXRvcnkgYW5kIGNoZWNrIG91dCB0aGUgc2FtZSBPQ2FtbCB2ZXJzaW9uIGFzDQogICAg IHlvdXJzIChlLmcuIGBvcGFtIHN3aXRjaCBjcmVhdGUgNC4xMi4xOyBnaXQgY2hlY2tvdXQgNC4x Mi4xJykNCiAgNC4gQnVpbGQgT0NhbWwgKC4vY29uZmlndXJlICYmIG1ha2Ugd29ybGQpDQogIDUu IE9wZW4gdGhlIHRvcCBmb2xkZXIgb2YgdGhlIHNvdXJjZSB0cmVlIHVzaW5nIFZTQ29kZSAob3Ig cmVzdGFydCB0aGUNCiAgICAgbGFuZ3VhZ2Ugc2VydmVyKQ0KICA2LiBCcm93c2UgdGhlIGNvZGUN Cg0KICBDaGVlcnMhDQoNCiAgY29udGVudCBvZiBgLm1lcmxpbic6DQogIOKUjOKUgOKUgOKUgOKU gA0KICDilIIgUyAuL2FzbWNvbXAvDQogIOKUgiBTIC4vYm9vdC9tZW5oaXIvDQogIOKUgiBTIC4v Ynl0ZWNvbXAvDQogIOKUgiBTIC4vZGVidWdnZXIvDQogIOKUgiBTIC4vZHJpdmVyLw0KICDilIIg UyAuL2ZpbGVfZm9ybWF0cy8NCiAg4pSCIFMgLi9sYW1iZGEvDQogIOKUgiBTIC4vbGV4Lw0KICDi lIIgUyAuL21pZGRsZV9lbmQvDQogIOKUgiBTIC4vbWlkZGxlX2VuZC9jbG9zdXJlLw0KICDilIIg UyAuL21pZGRsZV9lbmQvZmxhbWJkYS8NCiAg4pSCIFMgLi9taWRkbGVfZW5kL2ZsYW1iZGEvYmFz ZV90eXBlcy8NCiAg4pSCIFMgLi9vY2FtbGRvYy8NCiAg4pSCIFMgLi9vY2FtbHRlc3QvDQogIOKU giBTIC4vb3RoZXJsaWJzL2R5bmxpbmsvDQogIOKUgiBTIC4vb3RoZXJsaWJzL2R5bmxpbmsvYnl0 ZS8NCiAg4pSCIFMgLi9vdGhlcmxpYnMvZHlubGluay9keW5saW5rX2NvbXBpbGVybGlicy8NCiAg 4pSCIFMgLi9vdGhlcmxpYnMvZHlubGluay9uYXRpdmUvDQogIOKUgiBTIC4vb3RoZXJsaWJzL3N0 ci8NCiAg4pSCIFMgLi9vdGhlcmxpYnMvc3lzdGhyZWFkcy8NCiAg4pSCIFMgLi9vdGhlcmxpYnMv dW5peC8NCiAg4pSCIFMgLi9wYXJzaW5nLw0KICDilIIgUyAuL3N0ZGxpYi8NCiAg4pSCIFMgLi90 b29scy8NCiAg4pSCIFMgLi90b29scy91bmxhYmVsLXBhdGNoZXMvDQogIOKUgiBTIC4vdG9wbGV2 ZWwvDQogIOKUgiBTIC4vdG9wbGV2ZWwvYnl0ZS8NCiAg4pSCIFMgLi90b3BsZXZlbC9uYXRpdmUv DQogIOKUgiBTIC4vdHlwaW5nLw0KICDilIIgUyAuL3V0aWxzLw0KICDilIIgQiAuL2FzbWNvbXAv DQogIOKUgiBCIC4vYXNtY29tcC9kZWJ1Zy8NCiAg4pSCIEIgLi9ib290Lw0KICDilIIgQiAuL2J5 dGVjb21wLw0KICDilIIgQiAuL2RlYnVnZ2VyLw0KICDilIIgQiAuL2RyaXZlci8NCiAg4pSCIEIg Li9maWxlX2Zvcm1hdHMvDQogIOKUgiBCIC4vbGFtYmRhLw0KICDilIIgQiAuL2xleC8NCiAg4pSC IEIgLi9taWRkbGVfZW5kLw0KICDilIIgQiAuL21pZGRsZV9lbmQvY2xvc3VyZS8NCiAg4pSCIEIg Li9taWRkbGVfZW5kL2ZsYW1iZGEvDQogIOKUgiBCIC4vbWlkZGxlX2VuZC9mbGFtYmRhL2Jhc2Vf dHlwZXMvDQogIOKUgiBCIC4vb2NhbWxkb2MvDQogIOKUgiBCIC4vb2NhbWxkb2MvZ2VuZXJhdG9y cy8NCiAg4pSCIEIgLi9vY2FtbHRlc3QvDQogIOKUgiBCIC4vb3RoZXJsaWJzL2JpZ2FycmF5Lw0K ICDilIIgQiAuL290aGVybGlicy9keW5saW5rLw0KICDilIIgQiAuL290aGVybGlicy9keW5saW5r L2J5dGUvDQogIOKUgiBCIC4vb3RoZXJsaWJzL2R5bmxpbmsvZHlubGlua19jb21waWxlcmxpYnMv DQogIOKUgiBCIC4vb3RoZXJsaWJzL2R5bmxpbmsvbmF0aXZlLw0KICDilIIgQiAuL290aGVybGli cy9zdHIvDQogIOKUgiBCIC4vb3RoZXJsaWJzL3N5c3RocmVhZHMvDQogIOKUgiBCIC4vb3RoZXJs aWJzL3VuaXgvDQogIOKUgiBCIC4vcGFyc2luZy8NCiAg4pSCIEIgLi9zdGRsaWIvDQogIOKUgiBC IC4vdGVzdHN1aXRlL3Rlc3RzL25vLWFsaWFzLWRlcHMvDQogIOKUgiBCIC4vdG9vbHMvDQogIOKU giBCIC4vdG9wbGV2ZWwvDQogIOKUgiBCIC4vdG9wbGV2ZWwvYnl0ZS8NCiAg4pSCIEIgLi90b3Bs ZXZlbC9uYXRpdmUvDQogIOKUgiBCIC4vdHlwaW5nLw0KICDilIIgQiAuL3V0aWxzLw0KICDilJTi lIDilIDilIDilIANCg0KDQpyZWxlYXNlIG9mIHByYm5tY24tZ251cGxvdCAwLjAuMw0K4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBz Oi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9hbm4tcmVsZWFzZS1vZi1wcmJubWNuLWdudXBsb3QtMC0w LTMvOTg0MC8xPg0KDQoNCklnYXJuaWVyIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgW3ByYm5tY24tZ251cGxvdF0g aXMgYSBkZWNsYXJhdGl2ZSB3cmFwcGVyIG9uIHRvcCBvZg0KICBbZ251cGxvdF0uIFZlcnNpb24g MC4wLjMgd2FzIGp1c3QgcmVsZWFzZWQuDQoNCiAgVGhlIEFQSSBpcyBub3QgZW50aXJlbHkgc2V0 IGluIHN0b25lIGJ1dCBpdCdzIHJlYXNvbmFibHkgdXNhYmxlLCBhdA0KICBsZWFzdCBmb3IgdXAg dG8gbW9kZXJhdGVseSBzaXplZCBwbG90cy4gSXQgcHJvY2VlZHMgYnkgY29uc3RydWN0aW5nDQog IHNlbGYtY29udGFpbmVkIGdudXBsb3Qgc2NyaXB0cyBmcm9tIGRlY2xhcmF0aXZlIHNwZWNpZmlj YXRpb25zIGFuZA0KICBkZWZlcnJpbmcgdG8gZ251cGxvdCBmb3IgZXhlY3V0aW9uLg0KDQogIEhl cmUncyB0aGUgW2RvY3VtZW50YXRpb25dLg0KDQogIEhhcHB5IGhhY2tpbmchDQoNCg0KW3ByYm5t Y24tZ251cGxvdF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9pZ2Fybmllci9wcmJubWNuLWdudXBsb3Q+ DQoNCltnbnVwbG90XSA8aHR0cDovL3d3dy5nbnVwbG90LmluZm8vPg0KDQpbZG9jdW1lbnRhdGlv bl0gPGh0dHBzOi8vaWdhcm5pZXIuZ2l0aHViLmlvL3ByYm5tY24tZ251cGxvdC8+DQoNCg0KQ2Fs bCBmb3IgUHJlc2VudGF0aW9ucyBmb3IgIlRlYWNoaW5nIEZ1bmN0aW9uYWwgUHJvZ3JhbW1pbmcg aW4gT0NhbWwiIGFzIHBhcnQgb2YgdGhlIE9DYW1sIFdvcmtzaG9wIDIwMjINCuKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwu b3JnL3QvY2FsbC1mb3ItcHJlc2VudGF0aW9ucy1mb3ItdGVhY2hpbmctZnVuY3Rpb25hbC1wcm9n cmFtbWluZy1pbi1vY2FtbC1hcy1wYXJ0LW9mLXRoZS1vY2FtbC13b3Jrc2hvcC0yMDIyLzk4NDcv MT4NCg0KDQpZdXJ1ZyBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgA0KDQpTcGVjaWFsIFNlc3Npb24gLyBDYWxsIGZvciBQcmVzZW50YXRpb25z IGZvciAiVGVhY2hpbmcgRnVuY3Rpb25hbCBQcm9ncmFtbWluZyBpbiBPQ2FtbCIgYXMgcGFydCBv ZiB0aGUgT0NhbWwNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQog IFdvcmtzaG9wIDIwMjINCg0KICDigKIgQWJzdHJhY3QgU3VibWlzc2lvbjogNiBKdW5lIDIwMjIN CiAg4oCiIEF1dGhvciBOb3RpZmljYXRpb246IDcgSnVseSAyMDIyDQogIOKAoiBPQ2FtbCBXb3Jr c2hvcDogOSBTZXB0IDIwMjINCg0KICBUaGUgT0NhbWwgV29ya3Nob3AgMjAyMiwgY28tbG9jYXRl ZCB3aXRoIElDRlAgMjAyMiwgd2lsbCB0YWtlIHBsYWNlDQogIHRoZSAyMDIyLTA5LTE2IGFuZCB3 aWxsIGJlIGhlbGQgYXQgTGp1YmxqYW5hLCBTbG92ZW5pYS4gVGhpcyB5ZWFyLCB3ZQ0KICB3b3Vs ZCBsaWtlIHRvIG9yZ2FuaXplIGEgc3BlY2lhbCBzZXNzaW9uIG9uICJUZWFjaGluZyBGdW5jdGlv bmFsDQogIFByb2dyYW1taW5nIGluIE9DYW1sIi4NCg0KICBIZW5jZSwgd2Ugd291bGQgbGlrZSB0 byBlbmNvdXJhZ2UgYW5kIGludml0ZSBzdWJtaXNzaW9ucyBmb3INCiAgcHJlc2VudGF0aW9ucyB0 aGF0IGhpZ2hsaWdodCB0ZWFjaGluZyBwcmFjdGljZXMgYW5kIGlubm92YXRpb24gdGhhdA0KICBo aWdobGlnaHQgaG93IE9DYW1sIGlzIHRhdWdodCBhcm91bmQgdGhlIGdsb2JlIGFuZCB0aGUgd2lk ZSByYW5nZSBvZg0KICB0b29scyBhbmQgc3RyYXRlZ2llcyB0aGF0IGhhdmUgYmVlbiBkZXZlbG9w ZWQgdG8gdGVhY2ggZWZmZWN0aXZlbHkNCiAgZnVuY3Rpb25hbCBwcm9ncmFtbWluZyB1c2luZyBP Q2FtbC4gSW4gcGFydGljdWxhciwgd2UgYXJlIGludGVyZXN0ZWQNCiAgaW4gYXV0b21hdGVkIHBy b2dyYW0gZXZhbHVhdGlvbiAvIGdyYWRpbmcgdG9vbHMgLyBlcnJvciBhbmFseXNpcyAoYm90aA0K ICB0eXBlIGFuZCBzeW50YXggZXJyb3JzKSBmb3IgT0NhbWwgcHJvZ3JhbXMsIHRvb2xzIHRoYXQg cHJvdmlkZQ0KICBhc3Npc3RhbmNlIGluIHByYWN0aWNhbCBsZXNzb25zIChzdWNoIGFzIHBhaXIg cHJvZ3JhbW1pbmcgZm9yDQogIGV4YW1wbGUpLCBKdXBpdGVyIG5vdGVib29rcyBsaWtlIHNvbHV0 aW9ucyB0byBpbnRlcmFjdGl2ZWx5IGludHJvZHVjZQ0KICBwcm9ncmFtbWluZyBjb25jZXB0cywg b3IgZnVsbC1mZWF0dXJlZCB3ZWIgcGxhdGZvcm1zLiBXZSBhcmUNCiAgcGFydGljdWxhcmx5IHNl ZWtpbmcgY29udHJpYnV0aW9ucyBhbmQgZXhwZXJpZW5jZSByZXBvcnRzIG9mIHRoZQ0KICBMZWFy bi1PQ2FtbCBvbmxpbmUgcHJvZ3JhbW1pbmcgZW52aXJvbm1lbnQgd2hpY2ggaGFzIGJlZW4gdXNl ZCBieSB0aGUNCiAgT0NhbWwgdGVhY2hpbmcgY29tbXVuaXR5IGZvciBvbmxpbmUgYnV0IGFsc28g Zm9yIHJlZ3VsYXIgaW4tcGVyc29uDQogIGNsYXNzZXMuIFRoZSBnb2FsIGlzIHRvIHNoYXJlIGV4 cGVyaWVuY2VzLCBleGNoYW5nZSBpZGVhcyBhbmQgdG9vbHMsDQogIGFuZCBwcm9tb3RlIGJlc3Qg cHJhY3RpY2VzLg0KDQogIEludGVyZXN0ZWQgcmVzZWFyY2hlcnMgYXJlIGludml0ZWQgdG8gc3Vi bWl0IGFuZCByZWdpc3RlciBhDQogIGRlc2NyaXB0aW9uIG9mIHRoZSB0YWxrIChhYm91dCAyIHBh Z2VzIGxvbmcpIGF0DQogIDxodHRwczovL29jYW1sMjAyMi5ob3RjcnAuY29tL3Byb3ZpZGluZz4g YSBjbGVhciBzdGF0ZW1lbnQgb2Ygd2hhdA0KICB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBwcmVz ZW50YXRpb246IHRoZSBwcm9ibGVtcyB0aGF0IGFyZSBhZGRyZXNzZWQsDQogIHRoZSBzb2x1dGlv bnMgb3IgbWV0aG9kcyB0aGF0IGFyZSBwcm9wb3NlZC4NCg0KICBMYVRlWC1wcm9kdWNlZCBQREZz IGFyZSBhIGNvbW1vbiBhbmQgd2VsY29tZSBzdWJtaXNzaW9uIGZvcm1hdC4gRm9yDQogIGFjY2Vz c2liaWxpdHkgcHVycG9zZXMsIHdlIGFzayBQREYgc3VibWl0dGVycyB0byBhbHNvIHByb3ZpZGUg dGhlDQogIHNvdXJjZXMgb2YgdGhlaXIgc3VibWlzc2lvbiBpbiBhIHRleHR1YWwgZm9ybWF0LCBz dWNoIGFzIC4udGV4DQogIHNvdXJjZXMuIFJldmlld2VycyBtYXkgcmVhZCBlaXRoZXIgdGhlIHN1 Ym1pdHRlZCBQREYgb3IgdGhlIHRleHQNCiAgdmVyc2lvbi4NCg0KICBUaGUgT0NhbWwgd29ya3No b3AgYW5kIHRoaXMgc3BlY2lhbCBzZXNzaW9uIGFyZSBpbmZvcm1hbCBtZWV0aW5ncyB3aXRoDQog IG5vIGZvcm1hbCBwcm9jZWVkaW5ncy4gVGhlIHByZXNlbnRhdGlvbiBtYXRlcmlhbCB3aWxsIGJl IGF2YWlsYWJsZQ0KICBvbmxpbmUgZnJvbSB0aGUgd29ya3Nob3AgaG9tZXBhZ2UuIFRoZSBwcmVz ZW50YXRpb25zIG1heSBiZSByZWNvcmRlZA0KICBhbmQgbWFkZSBhdmFpbGFibGUgYXQgYSBsYXRl ciBkYXRlLg0KDQogIFRoZSBtYWluIHByZXNlbnRhdGlvbiBmb3JtYXQgaXMgYSB3b3Jrc2hvcCB0 YWxrLCB0cmFkaXRpb25hbGx5IGFyb3VuZA0KICAyMCBtaW51dGVzIGluIGxlbmd0aCwgcGx1cyBx dWVzdGlvbiB0aW1lLCBidXQgd2UgYWxzbyBoYXZlIGEgcG9zdGVyDQogIHNlc3Npb24gZHVyaW5n IHRoZSB3b3Jrc2hvcCAtIHRoaXMgYWxsb3dzIHVzIHRvIHByZXNlbnQgbW9yZSBkaXZlcnNlDQog IHdvcmsgYW5kIGdpdmVzIHRpbWUgZm9yIGRpc2N1c3Npb24uIFRoZSBwcm9ncmFtIGNvbW1pdHRl ZSBmb3IgdGhlDQogIE9DYW1sIFdvcmtzaG9wIHdpbGwgZGVjaWRlIHdoaWNoIHByZXNlbnRhdGlv bnMgc2hvdWxkIGJlIGRlbGl2ZXJlZCBhcw0KICBwb3N0ZXJzIG9yIHRhbGtzLg0KDQogIOKAoiBT aW3Do28gTWVsbyBkZSBTb3VzYSAoVW5pdmVyc2l0eSBvZiBCZWlyYSBJbnRlcmlvcikNCiAg4oCi IEJyaWdpdHRlIFBpZW50a2EgKE1jR2lsbCBVbml2ZXJzaXR5KQ0KICDigKIgWWFubiBSZWdpcy1H aWFuYXMgKE5vbWFkaWMgTGFicykNCiAg4oCiIFh1amllIFNpIChNY0dpbGwgVW5pdmVyc2l0eSkN Cg0KDQpPbGQgQ1dODQrilZDilZDilZDilZDilZDilZDilZANCg0KICBJZiB5b3UgaGFwcGVuIHRv IG1pc3MgYSBDV04sIHlvdSBjYW4gW3NlbmQgbWUgYSBtZXNzYWdlXSBhbmQgSSdsbCBtYWlsDQog IGl0IHRvIHlvdSwgb3IgZ28gdGFrZSBhIGxvb2sgYXQgW3RoZSBhcmNoaXZlXSBvciB0aGUgW1JT UyBmZWVkIG9mIHRoZQ0KICBhcmNoaXZlc10uDQoNCiAgSWYgeW91IGFsc28gd2lzaCB0byByZWNl aXZlIGl0IGV2ZXJ5IHdlZWsgYnkgbWFpbCwgeW91IG1heSBzdWJzY3JpYmUNCiAgW29ubGluZV0u DQoNCiAgW0FsYW4gU2NobWl0dF0NCg0KDQpbc2VuZCBtZSBhIG1lc3NhZ2VdIDxtYWlsdG86YWxh bi5zY2htaXR0QHBvbHl0ZWNobmlxdWUub3JnPg0KDQpbdGhlIGFyY2hpdmVdIDxodHRwczovL2Fs YW4ucGV0aXRlcG9tbWUubmV0L2N3bi8+DQoNCltSU1MgZmVlZCBvZiB0aGUgYXJjaGl2ZXNdIDxo dHRwczovL2FsYW4ucGV0aXRlcG9tbWUubmV0L2N3bi9jd24ucnNzPg0KDQpbb25saW5lXSA8aHR0 cDovL2xpc3RzLmlkeWxsLm9yZy9saXN0aW5mby9jYW1sLW5ld3Mtd2Vla2x5Lz4NCg0KW0FsYW4g U2NobWl0dF0gPGh0dHBzOi8vYWxhbi5wZXRpdGVwb21tZS5uZXQvPg0KDQo= --=-=-= 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 10 to 17, 2022.

Browsing OCaml source tree with VSCode/merlin?

Keigo Imai explained

I managed to browse the OCaml source tree with VSCode with the following st= eps:

  1. Prepare .merlin file (attached below) referring to the all= source directories in the tree
  2. Pin your ocaml-lsp-server at 1.8.3 by opam pin ocaml-lsp-server 1= .8.3 (as it is the last version that support .merlin)
  3. Clone OCaml repository and check out the same OCaml version as yours (e= .g. opam switch create 4.12.1; git checkout 4.12.1)
  4. Build OCaml (./configure && make world)
  5. Open the top folder of the source tree using VSCode (or restart the lan= guage server)
  6. Browse the code

Cheers!

content of .merlin:

S ./asmcomp/
S ./boot/menhir/
S ./bytecomp/
S ./debugger/
S ./driver/
S ./file_formats/
S ./lambda/
S ./lex/
S ./middle_end/
S ./middle_end/closure/
S ./middle_end/flambda/
S ./middle_end/flambda/base_types/
S ./ocamldoc/
S ./ocamltest/
S ./otherlibs/dynlink/
S ./otherlibs/dynlink/byte/
S ./otherlibs/dynlink/dynlink_compilerlibs/
S ./otherlibs/dynlink/native/
S ./otherlibs/str/
S ./otherlibs/systhreads/
S ./otherlibs/unix/
S ./parsing/
S ./stdlib/
S ./tools/
S ./tools/unlabel-patches/
S ./toplevel/
S ./toplevel/byte/
S ./toplevel/native/
S ./typing/
S ./utils/
B ./asmcomp/
B ./asmcomp/debug/
B ./boot/
B ./bytecomp/
B ./debugger/
B ./driver/
B ./file_formats/
B ./lambda/
B ./lex/
B ./middle_end/
B ./middle_end/closure/
B ./middle_end/flambda/
B ./middle_end/flambda/base_types/
B ./ocamldoc/
B ./ocamldoc/generators/
B ./ocamltest/
B ./otherlibs/bigarray/
B ./otherlibs/dynlink/
B ./otherlibs/dynlink/byte/
B ./otherlibs/dynlink/dynlink_compilerlibs/
B ./otherlibs/dynlink/native/
B ./otherlibs/str/
B ./otherlibs/systhreads/
B ./otherlibs/unix/
B ./parsing/
B ./stdlib/
B ./testsuite/tests/no-alias-deps/
B ./tools/
B ./toplevel/
B ./toplevel/byte/
B ./toplevel/native/
B ./typing/
B ./utils/

release of prbnmcn-gnuplot 0.0.3

Igarnier announced

prbnmcn-gnuplot= is a declarative wrapper on top of gnuplot. Version 0.0.3 was just re= leased.

The API is not entirely set in stone but it's reasonably usable, at least f= or up to moderately sized plots. It proceeds by constructing self-contained gnuplot scripts from declarative sp= ecifications and deferring to gnuplot for execution.

Here's the document= ation.

Happy hacking!

Call for Presentations for "Teaching Functional Programming in= OCaml" as part of the OCaml Workshop 2022

Yurug announced

Special Session / Call for Presentations for "Teachin= g Functional Programming in OCaml" as part of the OCaml

Workshop 2022

  • Abstract Submission: 6 June 2022
  • Author Notification: 7 July 2022
  • OCaml Workshop: 9 Sept 2022

The OCaml Workshop 2022, co-located with ICFP 2022, will take place the 202= 2-09-16 and will be held at Ljubljana, Slovenia. This year, we would like to organize a special session on "Teachi= ng Functional Programming in OCaml".

Hence, we would like to encourage and invite submissions for presentations = that highlight teaching practices and innovation that highlight how OCaml is taught around the globe and the wide= range of tools and strategies that have been developed to teach effectively functional programming using OCaml. In = particular, we are interested in automated program evaluation / grading tools / error analysis (both type and syntax e= rrors) for OCaml programs, tools that provide assistance in practical lessons (such as pair programming for examp= le), Jupiter notebooks like solutions to interactively introduce programming concepts, or full-featured web platform= s. We are particularly seeking contributions and experience reports of the Learn-OCaml online programming = environment which has been used by the OCaml teaching community for online but also for regular in-person classes.= The goal is to share experiences, exchange ideas and tools, and promote best practices.

Interested researchers are invited to submit and register a description of = the talk (about 2 pages long) at https://ocaml2022.hotcrp= .com/providing a clear statement of what will be provided by the presen= tation: the problems that are addressed, the solutions or methods that are proposed.

LaTeX-produced PDFs are a common and welcome submission format. For accessi= bility purposes, we ask PDF submitters to also provide the sources of their submission in a textual format, such as .= .tex sources. Reviewers may read either the submitted PDF or the text version.

The OCaml workshop and this special session are informal meetings with no f= ormal proceedings. The presentation material will be available online from the workshop homepage. The presentat= ions may be recorded and made available at a later date.

The main presentation format is a workshop talk, traditionally around 20 mi= nutes in length, plus question time, but we also have a poster session during the workshop - this allows us to prese= nt more diverse work and gives time for discussion. The program committee for the OCaml Workshop will decide which = presentations should be delivered as posters or talks.

  • Sim=C3=A3o Melo de Sousa (University of Beira Interior)
  • Brigitte Pientka (McGill University)
  • Yann Regis-Gianas (Nomadic Labs)
  • Xujie Si (McGill University)

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 online.

--=-=-=--