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=r26jkek5; 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=kuvUX29l; 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 1C728B80123 for ; Tue, 28 May 2024 10:07:57 +0100 (BST) 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=/w5R03JbbNmZqxuaJM86Nlqx6U+F1v0Wvj6UpX3THXo=; b=r26jkek5xjcjGzRljXZtgE0t94db+iyw768FeP6KPjPUV1MDmtobmofB Atqs+7vxDItNnUKwyynIeVLkiXmxJ2Aev6E9c1fx1dBAMeELKIknPd7M5 ynjlUNLMLLhrrYA6h3amjyTkCf/zLKiIOeiizwOykqk5hqt9h34saz2mk 0=; 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: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 (signature did not verify [final]) header.i=@polytechnique.org X-IronPort-AV: E=Sophos;i="6.08,194,1712613600"; d="scan'208,217";a="167766382" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 28 May 2024 11:07:57 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 1E833E0AF1; Tue, 28 May 2024 11:07:57 +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 2BAF0E00B7 for ; Tue, 28 May 2024 11:07:49 +0200 (CEST) IronPort-SDR: 66559ee3_Mva7fckXm9eKxivttWbD3hr9a5ucVaFPg0BXIrZiVu33jM/ esvUarDvXGQVZrY7u44rcN7PHxlWakJOw0JtB1g== X-IPAS-Result: =?us-ascii?q?A0HdBgCDnVVmkCIeaIFagliBQYEDGQFcBloZGgcISIQaP?= =?us-ascii?q?IFjgWyOG5FHiEGCMIFWgSUDGBYFHhQBAwENLgEFDQECBAEBAwECAYILgT2BN?= =?us-ascii?q?wIWiDYCHwYBBDIHDgECBAEBAQEDAgMBAQEBAQEIAQEFAQEBAgEBAgQGAQIQA?= =?us-ascii?q?QEBAQEBIB4QDieFRi4NgkouI1EaZQkGAQEBAQEBAQEBAQEBAQEiAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIMAQcLJVcOC?= =?us-ascii?q?QoTAQErDRgjAxAEAQYDAgQNATUDARMBEhQGAoJkAYJkAwQBDAaTJJs7eoEyg?= =?us-ascii?q?QGCDAEBBoEIPgMCCQICAxglAdoEgRlKCYFIiBQaASRIaQKEJQmENycPgVVEg?= =?us-ascii?q?z1Rb4I/CxcBAQEBFQNEYAEBCARBCYMlgmmBaYQhJoFdAYVJIS4HFYRmalsSg?= =?us-ascii?q?QpFAkqCDR0MEyt7B3cCBhYITAgJCgQmWTYjAwxZARhbSBRCAgyDDwSIEIFLI?= =?us-ascii?q?gMmMzIBVRMXCz4dAhYDGxQEMA8JCyYqBjYCEgwGBgZZNAkEIwMIBANCAyBxE?= =?us-ascii?q?QMEGgQLB3WBPIFpBBNEA4E3hx2CU4M7gh6EGkuEcYFrDmGIGoFzgUSBaXgdQ?= =?us-ascii?q?AMLbT01FBulbAQ2AoJ9DjoEAikDKwgUDigOAQEEHAIuCAUJDRIHBAEKGRkEC?= =?us-ascii?q?QUJBBgPGQYLDS2EWoglhTwKJQMqA7AmgUk0B4QWgVwGDIh9gSSHNIZxh0qEB?= =?us-ascii?q?YFWiymYGYEYIphBIII0gTuBOYQqCoEbCYFtaYdOjTg8BA+FP4FRGwsoPG8BH?= =?us-ascii?q?QwHMxowQw0OghgBMwkKPBwPVodLhVcBBoQcEDEpVIEmgXU7WifFakE1AgEBN?= =?us-ascii?q?wIHAQoBAQMJhUUdAQGDPmcEXQEB?= IronPort-PHdr: A9a23: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 HxjFyFAlEck IronPort-Data: A9a23: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 vRAI5TzOahdFH1s5Q== IronPort-HdrOrdr: A9a23:vKZvTaji6NFgWx7V877n/romDXBQXucji2hC6mlwRA09TyX4rb HMoB1/73XJYVkqNk3I9ersBEDiexPhHPxOgLX5VI3KNGLbUQCTQ72Kg7GP/xTQXwXAssRd2a 1jf6UWMqyTMXFKyeDg7k2dG9YkqeP3lJxAaN2uqktQcQ== X-Talos-CUID: 9a23:Mz4Ldm1CEYLXSZfaFSP7ybxfOsUXQEyDlVvpHGSZL35STuWpYkS19/Yx X-Talos-MUID: 9a23:n1Wb2gZ7r8l5H+BTmAbHmAM4E/5R4eeyIW4Lq8hcppaVDHkl X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.08,194,1712613600"; d="scan'208,217";a="167766320" X-URL-ContentFilter: X-MGA-submission: =?us-ascii?q?MDEJRIILcZkCc6oCblD17elr7zhO2ZrtYD0lIO?= =?us-ascii?q?HkvXIIvbv+shPxARrCbaxmRWT5FfXu6FMwFxd5NOJK10PRDX9MphPpav?= =?us-ascii?q?Ido8FqnWg6nZEUnHYRmN0Umln4glT0rY4r7Kmk5WWwCOlBG4so25NcJ3?= =?us-ascii?q?kKYhSjTFFcxGeN3Hl81iPRTQ=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; 28 May 2024 11:07:47 +0200 Received: from TM.local (unknown [82.66.240.41]) (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 7804B56484D; Tue, 28 May 2024 11:07:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1716887265; bh=BlthIaJShLKAPxOnbyYcu4ANwbMq2ff0TCJsnAyUXjc=; h=From:To:Subject:Date:Message-ID; b=kuvUX29lGEV3BKPj6WRoNU2NZ3mj+wPKIji3sCqAErRho3LKXwkxeLy1H7IkPro1g gzOdyYWIIxmT6CaiWzh+0lT2OjGxIScSiFgklhAKczUtbK4XQU8BKmWfwyGQ/I66j2 Xx+LiaD18E2DYiSO7HdrXUEmG6WEaSmMLvCV+MsQ= From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 28 May 2024 11:07:45 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue May 28 11:07:46 2024 +0200 (CEST)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.497908, queueID=DB16556484E 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: 19138 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 ZWsgb2YgTWF5IDIxIHRvIDI4LA0KMjAyNC4NCg0KVGFibGUgb2YgQ29udGVudHMNCuKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQpvZG9jIERvY3Vt ZW50YXRpb24gSW1wcm92ZW1lbnRzDQpVc2luZyBPQ2FtbCBvbiB3aW5kb3dzIHdpdGggV1NMDQpi aW5zZWMgMC45LjENClVEUCBtdWx0aWNhc3QgZXhhbXBsZXMgdXNpbmcgYXN5bmMgYW5kIGx3dA0K b3BhbSAyLjEuNg0KR2V0dGluZyBPQ2FtbCBUaHJvdWdoIHRoZSBFeWUgb2YgYSBOZWVkbGUNCk1l cmxpbiA1LjAtNTAyDQpMYXVuY2hpbmcgdGhlIEZpcnN0LUNsYXNzIFdpbmRvd3MgUHJvamVjdA0K Q2hlbm5haSBPQ2FtbCBtZWV0dXA6IEp1bmUgMjAyNA0KQ2FwZXIgMS4wDQpQcHhsaWIgZGV2IG1l ZXRpbmdzDQpUYXJpZGVzIEdpdEh1YiBTcG9uc29yc2hpcCBQYWdlIOKAkyBTdXBwb3J0aW5nIHRo ZSBPQ2FtbCBDb21tdW5pdHkgVG9nZXRoZXINCk90aGVyIE9DYW1sIE5ld3MNCk9sZCBDV04NCg0K DQpvZG9jIERvY3VtZW50YXRpb24gSW1wcm92ZW1lbnRzDQrilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9y Zy90L29kb2MtZG9jdW1lbnRhdGlvbi1pbXByb3ZlbWVudHMvMTQ2NzQvMT4NCg0KDQpDaHJpc3Rp bmUgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIANCg0KICBUaGUgYG9kb2MnIHRlYW0gaXMgd29ya2luZyB0byBpbXByb3Zl IFt0aGUgZG9jdW1lbnRhdGlvbl0sIHNvIHdlJ3JlDQogIHJlYWNoaW5nIG91dCB0byB0aGUgY29t bXVuaXR5IHRvIGZpbmQgb3V0IHRoZXNlIHRoaW5nczoNCiAg4oCiIEFyZSB5b3UgdXNpbmcgYG9k b2MnPyBJZiBzbywgaG93IGRvIHlvdSB1c2UgaXQ/IFdoYXQgYXJlIHlvdXINCiAgICB0aG91Z2h0 cz8NCiAg4oCiIFdoYXQgcGFydHMgb2YgdGhlIGRvY3VtZW50YXRpb24gaGF2ZSBiZWVuIGhlbHBm dWw/DQogIOKAoiBXaGF0J3MgbWlzc2luZz8NCiAg4oCiIFdoYXQgc3VnZ2VzdGlvbnMgZG8geW91 IGhhdmUgZm9yIGltcHJvdmVtZW50Pw0KICDigKIgV2hhdCBhcmUgeW91IHBhaW4gcG9pbnRzIGZv ciBlaXRoZXIvYm90aCB0aGUgZG9jdW1lbnRhdGlvbiBvciB0aGUNCiAgICB0b29sIGl0c2VsZj8N Cg0KICBZb3VyIGlucHV0IGlzIG1vcmUgdmFsdWFibGUgdGhhbiBJIGNhbiBleHByZXNzLiBMb29r aW5nIGZvcndhcmQgdG8NCiAgeW91ciBhbnN3ZXJzIQ0KDQoNClt0aGUgZG9jdW1lbnRhdGlvbl0g PGh0dHBzOi8vb2NhbWwuZ2l0aHViLmlvL29kb2MvPg0KDQoNClVzaW5nIE9DYW1sIG9uIHdpbmRv d3Mgd2l0aCBXU0wNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFy Y2hpdmU6DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYmxvZy11c2luZy1vY2FtbC1v bi13aW5kb3dzLXdpdGgtd3NsLzE0NjcxLzI+DQoNCg0KQ29udGludWluZyB0aGlzIHRocmVhZCwg THVrYXN6IFN0YWZpbmlhayBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgA0KDQogIEkgaGF2ZSBhIHNvbWV3aGF0IHJlbGF0ZWQgYmxvZyBwb3N0IFtIb3cgdG8g dXBkYXRlIG9yIGluc3RhbGwgYSBuZXcNCiAgTGludXggZGlzdHJpYnV0aW9uIG9uIFdTTF0uDQoN Cg0KW0hvdyB0byB1cGRhdGUgb3IgaW5zdGFsbCBhIG5ldyBMaW51eCBkaXN0cmlidXRpb24gb24g V1NMXQ0KPGh0dHBzOi8vbHVrc3RhZmkuZ2l0aHViLmlvL25vdGVzL1dTTF9pbnN0YWxsX25ld19k aXN0cm8uaHRtbD4NCg0KDQpiaW5zZWMgMC45LjENCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5u LWJpbnNlYy0wLTktMS8xNDY3Ny8xPg0KDQoNCkZyw6lkw6lyaWMgUmVjb3VsZXMgYW5ub3VuY2Vk DQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBPbiBiZWhhbGYgb2YgdGhlIEJJTlNFQyB0 ZWFtLCBJIGFtIGdsYWQgdG8gYW5ub3VuY2UgdGhhdCB2ZXJzaW9uDQogIGAwLjkuMScgbm93IGxp dmVzIGluIGBPcGFtLicNCg0KICBBcyBhIHNob3J0IGludHJvZHVjdGlvbiwgQklOU0VDIGlzIGFu IG9wZW4tc291cmNlIHByb2dyYW0gYW5hbHl6ZXINCiAgZGV2ZWxvcGVkIGF0IFtDRUEgTGlzdCBd IHRvIGhlbHAgaW1wcm92ZSBzb2Z0d2FyZSBzZWN1cml0eSBhdCB0aGUNCiAgYmluYXJ5IGxldmVs LiBJdCBoYXMgYmVlbiBbc3VjY2Vzc2Z1bGx5IGFwcGxpZWQgXSBpbiBhIG51bWJlciBvZg0KICBz ZWN1cml0eS1yZWxhdGVkIGNvbnRleHRzLCBzdWNoIGFzIHZ1bG5lcmFiaWxpdHkgZmluZGluZywg KG1hbHdhcmUpDQogIGRlb2JmdXNjYXRpb24sIGRlY29tcGlsYXRpb24sIGZvcm1hbCB2ZXJpZmlj YXRpb24gb2YgYXNzZW1ibHkgY29kZSBvcg0KICBldmVuIGJpbmFyeS1sZXZlbCBmb3JtYWwgdmVy aWZpY2F0aW9uLg0KDQogIFRoZSB2ZXJzaW9uIGAwLjknIHJlZmFjdG9ycyB0aGUgU01UIHNvbHZl ciBBUEksIGVuYWJsaW5nIG5ldyBraW5kcyBvZg0KICBpbnRlcmFjdGlvbiAoKmluY3JlbWVudGFs IHNvbHZpbmcqKSBhbmQgcGF2aW5nIHRoZSB3YXkgdG8gbW9yZSBzdXBwb3J0DQogIHRvIGludGVy bmFsIHNvbHZlciBiaW5kaW5ncyAoW2JpdHd1emxhXSwgW2JpdHd1emxhLWN4eF0sIFt6M10pLg0K DQogIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIG9uIHRoZSBbd2Vic2l0ZSBdLCBpbmNs dWRpbmcNCiAgW3B1YmxpY2F0aW9ucyBdLCBbdHV0b3JpYWxzIF0gb3IgW2NvbnRhY3RzXSwgYnV0 IGFsc28gdGhlIGRlc2NyaXB0aW9uDQogIG9mIFt0aGlzIHJlbGVhc2UgXSBhcyB3ZWxsIGFzIFtw cmV2aW91cyBvbmVzXS4NCg0KDQpbQ0VBIExpc3QgXSA8aHR0cDovL3d3dy1saXN0LmNlYS5mci9l bi8+DQoNCltzdWNjZXNzZnVsbHkgYXBwbGllZCBdIDxodHRwczovL2JpbnNlYy5naXRodWIuaW8v YWNoaWV2ZW1lbnRzLmh0bWw+DQoNCltiaXR3dXpsYV0gPGh0dHBzOi8vb3BhbS5vY2FtbC5vcmcv cGFja2FnZXMvYml0d3V6bGEvPg0KDQpbYml0d3V6bGEtY3h4XSA8aHR0cHM6Ly9vcGFtLm9jYW1s Lm9yZy9wYWNrYWdlcy9iaXR3dXpsYS1jeHgvPg0KDQpbejNdIDxodHRwczovL29wYW0ub2NhbWwu b3JnL3BhY2thZ2VzL3ozLz4NCg0KW3dlYnNpdGUgXSA8aHR0cHM6Ly9iaW5zZWMuZ2l0aHViLmlv Lz4NCg0KW3B1YmxpY2F0aW9ucyBdIDxodHRwczovL2JpbnNlYy5naXRodWIuaW8vcHVibGljYXRp b25zPg0KDQpbdHV0b3JpYWxzIF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5zZWMvYmluc2VjL3Ry ZWUvbWFzdGVyL2RvYz4NCg0KW2NvbnRhY3RzXSA8aHR0cHM6Ly9iaW5zZWMuZ2l0aHViLmlvLyNw ZW9wbGU+DQoNClt0aGlzIHJlbGVhc2UgXQ0KPGh0dHBzOi8vYmluc2VjLmdpdGh1Yi5pby9yZWxl YXNlcy9iaW5zZWMvMjAyNC8wNS8wMS9iaW5zZWMtMC45LjAuaHRtbD4NCg0KW3ByZXZpb3VzIG9u ZXNdIDxodHRwczovL2JpbnNlYy5naXRodWIuaW8vcmVsZWFzZXM+DQoNCg0KVURQIG11bHRpY2Fz dCBleGFtcGxlcyB1c2luZyBhc3luYyBhbmQgbHd0DQrilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZl Og0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Jsb2ctdWRwLW11bHRpY2FzdC1leGFt cGxlcy11c2luZy1hc3luYy1hbmQtbHd0LzE0Njc4LzE+DQoNCg0KRm94ZGVyIGFubm91bmNlZA0K 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgSSBh bSB2ZXJ5IG5ldyB0byBPQ2FtbCBhbmQgaGF2ZSBiZWVuIGVuam95aW5nIGxlYXJuaW5nIHRoZSBs YW5ndWFnZS4gSQ0KICB3YXMgbG9va2luZyBmb3IgZXhhbXBsZXMgb2Ygc2ltcGxlIFVEUCBtdWx0 aWNhc3Qgc2VuZGVycyBhbmQgcmVjZWl2ZXJzDQogIGFuZCBjb3VsZCBub3QgZmluZCBhbnkgZ3Jl YXQgb25lcyAocGxlYXNlIGxldCBtZSBrbm93IGlmIEkgbWlzc2VkDQogIHNvbWUpIHNvIEkgd2Vu dCBhYm91dCBjcmVhdGluZyBzb21lIFtleGFtcGxlc10gZm9yIG15c2VsZiBhbmQgYW55b25lDQog IGluIHRoZSBmdXR1cmUuDQoNCiAgSSBjcmVhdGVkIGV4YW1wbGVzIHVzaW5nIGJvdGggYGFzeW5j JyBhbmQgYGx3dCcgZm9yIGNvbmN1cnJlbmN5LiBJZg0KICBhbnlvbmUgaGFzIGZlZWRiYWNrLCBJ IHdvdWxkIGdsYWRseSB0YWtlIGl0IHRvIGltcHJvdmUgb24gdGhlDQogIGV4YW1wbGVzLg0KDQog IOKAoiBbR2l0aHViIFByb2plY3RdDQogIOKAoiBbUG9zdF0NCg0KDQpbZXhhbXBsZXNdIDxodHRw czovL2dpdGh1Yi5jb20vS0ZveGRlci91ZHBfbXVsdGljYXN0X2V4YW1wbGVzPg0KDQpbR2l0aHVi IFByb2plY3RdIDxodHRwczovL2dpdGh1Yi5jb20vS0ZveGRlci91ZHBfbXVsdGljYXN0X2V4YW1w bGVzPg0KDQpbUG9zdF0gPGh0dHBzOi8vd3d3LmtldmluZm94LmRldi91ZHAtbXVsdGljYXN0Pg0K DQoNCm9wYW0gMi4xLjYNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hp dmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLW9wYW0tMi0xLTYvMTQ2ODMvMT4N Cg0KDQpLYXRlIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSADQoNCiAgV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgdGhlIG1pbm9yIHJlbGVhc2Ug b2YgW29wYW0gMi4xLjZdLg0KDQogIFRoaXMgb3BhbSByZWxlYXNlIGNvbnNpc3RzIG9mIGJhY2tw b3J0ZWQgZml4ZXMsIG9mIHdoaWNoIHRoZSBtYWluIG9uZXMNCiAgYXJlOg0KICDigKIgV2FybiB1 c2VycyB3aGVuIGBHTlUgcGF0Y2gnIGNhbm5vdCBiZSBmb3VuZC4gVGhpcyBpcyByZXF1aXJlZCBm b3INCiAgICBvcGFtLXJlcG9zaXRvcnkgbWFpbnRhaW5lcnMgdG8gZ28gZm9yd2FyZCBpbiBpbXBs ZW1lbnRpbmcNCiAgICBbb2NhbWwvb3BhbS1yZXBvc2l0b3J5IzIzNzg5XSBzbyB0aGF0IHRoZXJl IGFyZSBhcyBsaXR0bGUgYnJlYWthZ2UNCiAgICBhcyBwb3NzaWJsZS4NCiAg4oCiIEltcHJvdmUg ZGVwZXh0cyBoYW5kbGluZyBvbiBHZW50b28sIE5ldEJTRCBhbmQgT3BlbkJTRC4NCg0KICBZb3Xi gJlsbCBmaW5kIG1vcmUgaW5mb3JtYXRpb24gaW4gdGhlIFtyZWxlYXNlIGJsb2cgcG9zdF0uDQoN CiAgVG8gdXBncmFkZSBzaW1wbHkgcnVuOg0KICDilIzilIDilIDilIDilIANCiAg4pSCIGJhc2gg LWMgInNoIDwoY3VybCAtZnNTTCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb2Nh bWwvb3BhbS9tYXN0ZXIvc2hlbGwvaW5zdGFsbC5zaCkgLS12ZXJzaW9uIDIuMS42Ig0KICDilJTi lIDilIDilIDilIANCg0KICBvciB1cGdyYWRlIHlvdXIgZGlzdHJpYnV0aW9uIG9mIGNob2ljZSBp ZiB0aGVpciBvcGFtIHBhY2thZ2UgaXMNCiAgdXAtdG8tZGF0ZS4NCg0KDQpbb3BhbSAyLjEuNl0g PGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vcGFtL3JlbGVhc2VzL3RhZy8yLjEuNj4NCg0KW29j YW1sL29wYW0tcmVwb3NpdG9yeSMyMzc4OV0NCjxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb3Bh bS1yZXBvc2l0b3J5L2lzc3Vlcy8yMzc4OT4NCg0KW3JlbGVhc2UgYmxvZyBwb3N0XSA8aHR0cHM6 Ly9vcGFtLm9jYW1sLm9yZy9ibG9nL29wYW0tMi0xLTY+DQoNCg0KR2V0dGluZyBPQ2FtbCBUaHJv dWdoIHRoZSBFeWUgb2YgYSBOZWVkbGUNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRw czovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYmxvZy1nZXR0aW5nLW9jYW1sLXRocm91Z2gtdGhlLWV5 ZS1vZi1hLW5lZWRsZS8xNDY4NC8xPg0KDQoNCktvYWxhIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgT3ZlciBhdCBsb2JzdGUucnMg dGhlcmUgaXMgc29tZSBkaXNjdXNzaW9uIG9uIHRoZSBmb2xsb3dpbmcgYmxvZyBwb3N0Og0KICA8 aHR0cHM6Ly9oeXBpcmlvbi5jb20vbXVzaW5ncy9nZXR0aW5nLW9jYW1sLXRocm91Z2gtdGhlLWV5 ZS1vZi1hLW5lZWRsZT4NCg0KICBCYXNpY2FsbHkgaXTigJlzIGFib3V0IHRoZSB1cHMgYW5kIGRv d25zIHdoZW4gdXNpbmcgYW5kIGluc3RhbGxpbmcgT2NhbWwNCiAgcGFja2FnZXMuICBQZXJzb25h bGx5LCBJ4oCZdmUgaGFkIHNpbWlsYXIgZXhwZXJpZW5jZXMsIGJ1dCB0aGlzIGFydGljbGUNCiAg aXMgcmVhbGx5IHdlbGwgd3JpdHRlbi4gVGhlIGF1dGhvciBzaG93cyBncmVhdCB0ZWNobmljYWwg a25vd2xlZGdlIGFuZA0KICBJIHRoaW5rIGhlIHRyaWVzIHRvIGJlIGZhaXIuDQoNCiAgV2hhdCBk byB5b3UgdGhpbms/DQoNCiAgRGlzY3Vzc2lvbiBvbiBsb2JzdGUucnM6DQogIDxodHRwczovL2xv YnN0ZS5ycy9zL25paGt3ZS9nZXR0aW5nX29jYW1sX3Rocm91Z2hfZXllX25lZWRsZT4NCg0KDQpN ZXJsaW4gNS4wLTUwMg0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ DQoNCiAgQXJjaGl2ZTogPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9hbm4tbWVybGluLTUt MC01MDIvMTQ2ODUvMT4NCg0KDQp2ZHMgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIANCg0KICBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVs ZWFzZSBvZiBbbWVybGluIDUuMC01MDIgXSENCg0KDQpbbWVybGluIDUuMC01MDIgXSA8aHR0cHM6 Ly9naXRodWIuY29tL29jYW1sL21lcmxpbi9yZWxlYXNlcy90YWcvNS4wLTUwMj4NCg0KU3VwcG9y dCBmb3IgT0NhbWwgNS4yDQrilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzi lYzilYzilYzilYzilYzilYzilYzilYwNCg0KICBUaGlzIHJlbGVhc2UgYnJpbmdzIG9mZmljaWFs IHN1cHBvcnQgZm9yIFtPQ2FtbCA1LjJdLiBTdWJzdGFudGlhbA0KICBiYWNrZW5kIGNoYW5nZXMg d2VyZSByZXF1aXJlZCB0byBhZGFwdCB0byB0aGlzIHJlbGVhc2UsIGVzcGVjaWFsbHkgZm9yDQog IGZlYXR1cmVzIHN1Y2ggYXMgb2NjdXJyZW5jZXMgYW5kIGdldC1kb2N1bWVudGF0aW9uLiBEbyBu b3QgaGVzaXRhdGUgdG8NCiAgcmVwb3J0IGFueSBzdXNwaWNpb3VzIGJlaGF2aW9yIGluIHRoZSBb aXNzdWUgdHJhY2tlcl0hDQoNCg0KW09DYW1sIDUuMl0gPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5v cmcvdC9vY2FtbC01LTItMC1yZWxlYXNlZC8xNDYzOC82Pg0KDQpbaXNzdWUgdHJhY2tlcl0gPGh0 dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9tZXJsaW4vaXNzdWVzPg0KDQoNCk90aGVyIGNoYW5nZXMN CuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIFRoaXMgcmVsZWFz ZSBhbHNvIGZpeGVzIGEgaGFuZGZ1bCBvZiBpc3N1ZXM6DQogIOKAoiBEZXN0cnVjdDogUmVtb3Zh bCBvZiByZXNpZHVhbCBwYXR0ZXJucyAoWyMxNzM3XSwgZml4ZXMgWyMxNTYwXSkNCiAg4oCiIERl c3RydWN0OiBEbyBub3QgZXJhc2UgZmllbGRzJyBuYW1lcyB3aGVuIGRlc3RydWN0aW5nIHB1bm5l ZCByZWNvcmQNCiAgICBmaWVsZHMgKFsjMTczNF0sIGZpeGVzIFsjMTY2MV0pDQogIOKAoiBJZ25v cmUgU0lHUElQRSBpbiB0aGUgTWVybGluIHNlcnZlciBwcm9jZXNzIChbIzE3NDZdKQ0KICDigKIg Rml4IGxleGluZyBvZiBxdW90ZWQgc3RyaW5ncyBpbiBjb21tZW50cyAoWyMxNzU0XSwgZml4ZXMg WyMxNzUzXSkNCiAg4oCiIEltcHJvdmUgY3Vyc29yIHBvc2l0aW9uIGRldGVjdGlvbiBpbiBsb25n aWRlbnRzIChbIzE3NTZdKQ0KDQoNClsjMTczN10gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9t ZXJsaW4vcHVsbC8xNzM3Pg0KDQpbIzE1NjBdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvbWVy bGluL2lzc3Vlcy8xNTYwPg0KDQpbIzE3MzRdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvbWVy bGluL3B1bGwvMTczND4NCg0KWyMxNjYxXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL21lcmxp bi9pc3N1ZXMvMTY2MT4NCg0KWyMxNzQ2XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL21lcmxp bi9wdWxsLzE3NDY+DQoNClsjMTc1NF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9tZXJsaW4v cHVsbC8xNzU0Pg0KDQpbIzE3NTNdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvbWVybGluL2lz c3Vlcy8xNzUzPg0KDQpbIzE3NTZdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvbWVybGluL3B1 bGwvMTc1Nj4NCg0KDQpMYXVuY2hpbmcgdGhlIEZpcnN0LUNsYXNzIFdpbmRvd3MgUHJvamVjdA0K 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9s YXVuY2hpbmctdGhlLWZpcnN0LWNsYXNzLXdpbmRvd3MtcHJvamVjdC8xNDY4Ny8xPg0KDQoNClN1 ZGhhIFBhcmltYWxhIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgSSdtIGV4Y2l0ZWQg dG8gaW50cm9kdWNlIHRoZSBGaXJzdC1DbGFzcyBXaW5kb3dzIFByb2plY3QsIHdoaWNoIGFpbXMN CiAgdG8gbWFrZSBPQ2FtbCBtb3JlIGFjY2Vzc2libGUgYnkgZW5oYW5jaW5nIHRoZSBkZXZlbG9w ZXIgZXhwZXJpZW5jZSBvbg0KICBXaW5kb3dzIHRvIG1hdGNoIHRoYXQgb2YgTGludXggYW5kIG1h Y09TLiBPdXIgZ29hbCBpcyB0byBjcmVhdGUgYQ0KICByb2FkbWFwIG91dGxpbmluZyB0aGUgc3Rl cHMgbmVlZGVkIHRvIGZ1bGx5IHN1cHBvcnQgT0NhbWwgb24gV2luZG93cy4NCg0KICBDaGVjayBv dXIgYmxvZyBwb3N0IGZvciBkZXRhaWxzOg0KICA8aHR0cHM6Ly90YXJpZGVzLmNvbS9ibG9nLzIw MjQtMDUtMjItbGF1bmNoaW5nLXRoZS1maXJzdC1jbGFzcy13aW5kb3dzLXByb2plY3QvPg0KDQog IEFzIGFsd2F5cywgaGFwcHkgdG8gcmVjZWl2ZSBxdWVzdGlvbnMgYW5kIGZlZWRiYWNrLg0KDQoN CkNoZW5uYWkgT0NhbWwgbWVldHVwOiBKdW5lIDIwMjQNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3Jn L3QvY2hlbm5haS1vY2FtbC1tZWV0dXAtanVuZS0yMDI0LzE0Njk1LzE+DQoNCg0KU3VkaGEgUGFy aW1hbGEgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBIaSBhbGwhIFdlJ3JlIGhvc3Rp bmcgYW4gT0NhbWwgbWVldHVwIGF0IHRoZSBUYXJpZGVzIENoZW5uYWkNCiAgb2ZmaWNlcy4gV2Ug aGF2ZSBzb21lIGludGVyZXN0aW5nIHRhbGtzIGZvbGxvd2VkIGJ5IGluZm9ybWFsDQogIGNvbnZl cnNhdGlvbnMgb3ZlciBmb29kLg0KDQogIEBrYXljZWVzcmsgd2lsbCBiZSBzcGVha2luZyBhYm91 dCBDb25jdXJyZW50IFByb2dyYW1taW5nIHdpdGggRWZmZWN0DQogIEhhbmRsZXJzLiBXZSBoYXZl IGFuIG9wZW4gc2xvdCBmb3IgYW5vdGhlciB0YWxrLCBwbGVhc2UgZ2V0IGluIHRvdWNoDQogIGlm IHlvdSdkIGxpa2UgdG8gcHJlc2VudCBzb21ldGhpbmcuDQoNCiAgUGVvcGxlIG9mIGFsbCBiYWNr Z3JvdW5kcyBhbmQgbGV2ZWwgb2YgT0NhbWwgd2VsY29tZS4gUlNWUCBhdCB0aGUNCiAgZm9sbG93 aW5nIGxpbms6DQogIDxodHRwczovL3d3dy5tZWV0dXAuY29tL2NoZW5uYWktb2NhbWwtbWVldHVw L2V2ZW50cy8zMDExOTMwMjAvP3V0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXNoYXJl LWJ0bl9zYXZlZGV2ZW50c19zaGFyZV9tb2RhbCZ1dG1fc291cmNlPWxpbms+DQoNCiAgTG9va2lu ZyBmb3J3YXJkIHRvIHNlZWluZyBzb21lIG9mIHlvdSB0aGVyZSENCg0KDQpDYXBlciAxLjANCuKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxodHRwczovL2Rpc2N1c3Mu b2NhbWwub3JnL3QvYW5uLWNhcGVyLTEtMC8xNDY5Ni8xPg0KDQoNCm5pa3N1IGFubm91bmNlZA0K 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgW0NhcGVy XSBoYXMgbm93IHJlYWNoZWQgKnYxLjAqLCBzb21lIDUrIHllYXJzIGFmdGVyIGRldmVsb3BtZW50 IGZpcnN0DQogIHN0YXJ0ZWQuDQoNCiAgQ2FwZXIgaXMgYSB0b29sIGZvciB1bmRlcnN0YW5kaW5n IGFuZCBwcm9jZXNzaW5nIOKAnHBjYXAgZXhwcmVzc2lvbnPigJ0NCiAgKGFsc28ga25vd24gYXMg L3RjcGR1bXAgZmlsdGVycy8pIHdoaWNoIGFyZSB1c2VkIGZvciBuZXR3b3JrIHBhY2tldA0KICBh bmFseXNpcy4gSXQgaXMgZW50aXJlbHkgd3JpdHRlbiBpbiBPQ2FtbCBhbmQgaW5jbHVkZXMgcGNh cCBhbmFseXNpcw0KICBsb2dpYywgYSBmcm9tLXNjcmF0Y2ggQlBGIGNvbXBpbGVyLCBhbmQgY29u dmVyc2lvbiB0by9mcm9tIEVuZ2xpc2gNCiAgZXhwcmVzc2lvbnMuDQoNCiAgWW91IGNhbiB1c2Ug Q2FwZXIgb25saW5lIHRocm91Z2ggdGhlIFtCUEYgRXhhbV0gc2l0ZS4NCg0KICBDYXBlcuKAmXMg UkVBRE1FIGRlc2NyaWJlcyBtb3RpdmF0aW9uLCBidWlsZGluZywgYW5kIHVzYWdlIGV4YW1wbGVz LCBhbmQNCiAgaXRzIENIQU5HRUxPRyBkZXNjcmliZXMgcmVjZW50IHVwZGF0ZXMuDQoNCiAgQSBo dWdlIHRoYW5rcyBnb2VzIHRvIENhcGVy4oCZcyBjb250cmlidXRvcnMuIEZ1cnRoZXIgY29udHJp YnV0aW9ucyBhbmQNCiAgZmVlZGJhY2sgYXJlIHdlbGNvbWUg4oCTIGEgbGlzdCBvZiBjb250cmli dXRpb24gaWRlYXMgaXMgaW5jbHVkZWQgb24NCiAgQ2FwZXLigJlzIHdlYiBwYWdlLg0KDQoNCltD YXBlcl0gPGh0dHA6Ly9jYXBlci5jcy5paXQuZWR1Lz4NCg0KW0JQRiBFeGFtXSA8aHR0cHM6Ly93 d3cudGNwZHVtcC5vcmcvYnBmZXhhbS8+DQoNCg0KUHB4bGliIGRldiBtZWV0aW5ncw0K4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAg QXJjaGl2ZTogPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9wcHhsaWItZGV2LW1lZXRpbmdz LzEyNDQxLzIyPg0KDQoNCk5hdGhhbiBSZWJvdXJzIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA DQoNCiAgT3VyIG5leHQgbWVldGluZyBpcyBzY2hlZHVsZWQgb24gVHVlc2RheSBNYXkgMjh0aCBh dCA2OjAwUE0gQ0VULg0KDQogIEknbGwgcG9zdCB0aGUgZ29vZ2xlIG1lZXQgbGluayBoZXJlIG9u IHRoZSBkYXkgb2YgdGhlIG1lZXRpbmcuDQoNCiAgSW4gdGhlIG1lYW50aW1lLCBoZXJlIGlzIHRo ZSBtZWV0aW5nIGFnZW5kYSBzbyBmYXI6DQoNCiAg4oCiIDUuMiBSZWxlYXNlDQogICAg4oCjIFJl bGVhc2VkIGR1cmluZyBjb21waWxlcidzIGJldGEsIHdlbnQgc21vb3RobHkNCiAg4oCiIDUuMyB0 cnVuayBzdXBwb3J0DQogICAg4oCjIFJldXNlZCB0aGUgd29yayBmcm9tIEBoaHVnbyBhbmQgYWRh cHRlZCBpdA0KICAgIOKAoyBXZSBoYXZlIGFuIG9wZW4gUFIgd2l0aCA1LjMgc3VwcG9ydCB0aGF0 IG5lZWRzIHJldmlldw0KICAgIOKAoyBFeHRlcm5hbCBjb250cmlidXRvcnMgYWxyZWFkeSBzdGFy dGVkIGFkZGluZyBzdXBwb3J0IGZvciBuZXcNCiAgICAgIGZlYXR1cmVzOiBAbm9qYiBhZGRlZCBz dXBwb3J0IGZvciB0aGUgZWZmZWN0cyBwYXR0ZXJucyBhbmQgYW4NCiAgICAgIGludGVybmFsIGNo YW5nZSB0byBsb2NhdGlvbiByZXBvcnRzDQogICAg4oCjIEhvdyB0byBtYWludGFpbiB0cnVuayBz dXBwb3J0IG9uIG91ciBtYWluIGJyYW5jaA0KICDigKIgYHBweF9kZXJpdmluZycgYW5kIGBwcHhf ZGVyaXZpbmdfeW9qc29uJyBwcHhsaWIgcG9ydHMNCiAgICDigKMgUFJzIG9wZW4gZm9yIHRoZSBy ZWxlYXNlIG9mIGJvdGgNCiAgICDigKMgQSBmZXcgYnVnIGZpeGVzIHdlcmUgcmVxdWlyZWQgYnV0 IGl0IHNob3VsZCBiZSBnb29kIHRvIGdvIG5vdw0KICDigKIgNS4yIGludGVybmFsIEFTVCBidW1w DQogICAg4oCjIE5vdyB0aGF0IHRoZSA1LjIgc3VwcG9ydCBoYXMgYmVlbiByZWxlYXNlZCwgd2Ug Y2FuIGRpc2N1c3MgdGhlDQogICAgICBwbGFuIGZvciB0aGlzDQoNCiAgSWYgeW91J2QgbGlrZSB0 byBicmluZyBzb21ldGhpbmcgZWxzZSB1cCBwbGVhc2UgYW5zd2VyIGluIHRoaXMgdGhyZWFkDQog IHNvIHdlIGNhbiBhZGQgaXQgdG8gdGhlIGFnZW5kYS4NCg0KICBZb3UgYXJlIGFsc28gd2VsY29t ZSB0byBhdHRlbmQgdGhlIG1lZXRpbmcsIHdoZXRoZXIgeW91IGhhdmUgc29tZXRoaW5nDQogIHRv IGJyaW5nIHRvIG91ciBhdHRlbnRpb24sIHdvdWxkIGxpa2UgdG8gY29udHJpYnV0ZSB0byB0aGUg cHJvamVjdCBvcg0KICBhcmUganVzdCBpbnRlcmVzdGVkIGluIHBweGxpYiBhbmQgcHB4IGluIGdl bmVyYWwuDQoNCg0KVGFyaWRlcyBHaXRIdWIgU3BvbnNvcnNoaXAgUGFnZSDigJMgU3VwcG9ydGlu ZyB0aGUgT0NhbWwgQ29tbXVuaXR5IFRvZ2V0aGVyDQrilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNz Lm9jYW1sLm9yZy90L3RhcmlkZXMtZ2l0aHViLXNwb25zb3JzaGlwLXBhZ2Utc3VwcG9ydGluZy10 aGUtb2NhbWwtY29tbXVuaXR5LXRvZ2V0aGVyLzE0NzA1LzE+DQoNCg0KVGhvbWFzIEdhemFnbmFp cmUgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBJIGFtIGhhcHB5IHRv IHNoYXJlIHRoYXQgW1RhcmlkZXNdIG5vdyBoYXMgYSBHaXRIdWIgU3BvbnNvcnNoaXAgcGFnZSwN CiAgbGl2ZSBoZXJlIFtodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvdGFyaWRlc10hIPCfjokg QXMgYSBwYXJ0IG9mIHRoZQ0KICB2aWJyYW50IE9DYW1sIGNvbW11bml0eSwgVGFyaWRlcyBpcyBk ZWRpY2F0ZWQgdG8gc3VwcG9ydGluZyBib3RoIHRoZQ0KICBwcm9qZWN0cyBhbmQgdGhlIGluZGl2 aWR1YWxzIHdobyBtYWtlIHRoaXMgZWNvc3lzdGVtIHRocml2ZS4NCg0KICAqV2h5IEdpdEh1YiBT cG9uc29yc2hpcD8qDQoNCiAgVGhlIE9DYW1sIGNvbW11bml0eSBpcyBmaWxsZWQgd2l0aCBtYW55 IHRhbGVudGVkIGluZGl2aWR1YWwNCiAgY29udHJpYnV0b3JzIGFuZCBjb2xsZWN0aXZlcyB3aG8g ZGVzZXJ2ZSB5b3VyIHN1cHBvcnQsIHN1Y2ggYXMNCiAgW0RhbmllbF0sIFtBbnRvbmlvXSwgW0xl YW5kcm9dLCBbUm9idXJdIGFuZCBtYW55IG90aGVycy4gV2UgZW5jb3VyYWdlDQogIHlvdSB0byBz cG9uc29yIHRoZW0gZGlyZWN0bHkgdG8gc3VwcG9ydCB0aGVpciB3b3JrLg0KDQogIEJ1dCBub3cs IHlvdSBjYW4gYWxzbyBzcG9uc29yIFtUYXJpZGVzXSEgQ3JlYXRpbmcgYSBHaXRIdWIgU3BvbnNv cnNoaXANCiAgcGFnZSBpcyBhbiBpbXBvcnRhbnQgc3RlcCBmb3IgdXMsIGFpbWVkIGF0IHN1c3Rh aW5pbmcgcHJvamVjdHMgdGhhdA0KICBjdXJyZW50bHkgbGFjayBkaXJlY3QsIHN0YWJsZSByZXZl bnVlIHNvdXJjZXMuIFdoaWxlIHdlIGFyZSB0aGFua2Z1bA0KICBmb3IgbG9uZy10ZXJtIHNwb25z b3JzIHN1Y2ggYXMgSmFuZSBTdHJlZXQgYW5kIFRlem9zLCB3ZSB3YW50IHRvDQogIGRpdmVyc2lm eSBvdXIgb3Blbi1zb3VyY2UgZnVuZGluZyBzdHJlYW0gdG8gZW5zdXJlIHRoZSBsb25nLXRlcm0N CiAgc3RhYmlsaXR5IGFuZCBzdXN0YWluYWJpbGl0eSBvZiBjb3JlIGluZnJhc3RydWN0dXJlIHBy b2plY3RzIHdlIGFyZQ0KICB3b3JraW5nIG9uIGZvciB0aGUgY29tbXVuaXR5Lg0KDQogICpXaGF0 IENhbiBZb3UgRXhwZWN0PyoNCg0KICBPbiBvdXIgc3BvbnNvcnNoaXAgcGFnZSwgeW914oCZbGwg ZmluZCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBvdXINCiAgb25nb2luZyBwcm9qZWN0cywg aW5jbHVkaW5nOg0KDQogIOKAoiAqT0NhbWwgQ29tcGlsZXIqOiBNYWludGFpbmluZyBlYXNlIG9m IHVzZSwgY29ycmVjdG5lc3MsIGFuZA0KICAgICBwZXJmb3JtYW5jZSBvZiB0aGUgY29tcGlsZXIo cykuDQogIOKAoiAqT0NhbWwgUGxhdGZvcm0qOiBFbnN1cmluZyBjb3JlIHRvb2xzIGV2b2x2ZSBh bmQgYXJlIGNvbXBhdGlibGUgd2l0aA0KICAgICBuZXcgT0NhbWwgcmVsZWFzZXMuDQogIOKAoiAq T0NhbWwub3JnKjogTWFpbnRhaW5pbmcgdGhlIGNlbnRyYWwga25vd2xlZGdlIGJhc2UgZm9yIHRo ZSBPQ2FtbA0KICAgICBjb21tdW5pdHkuDQogIOKAoiAqQWR2YW5jZWQgUHJvamVjdHMqOiBTdWNo IGFzIE1pcmFnZU9TLCBJcm1pbiBhbmQgRWlvLg0KDQogIFlvdXIgc3VwcG9ydCB3aWxsIGRpcmVj dGx5IGNvbnRyaWJ1dGUgdG8gdGhlIHN1c3RhaW5hYmlsaXR5IG9mIHRoZXNlDQogIHByb2plY3Rz IGFuZCBhbGxvdyB1cyB0byBjb250aW51ZSBvdXIgd29yayBhbmQgbWFpbnRhaW4gdGhlc2UNCiAg bGlicmFyaWVzIGFuZCB0b29scy4NCg0KICAqSG93IFlvdSBDYW4gSGVscCoNCg0KICBXZSBpbnZp dGUgeW91IHRvIHZpc2l0IG91ciBbR2l0SHViIFNwb25zb3JzaGlwIHBhZ2VdIHRvIGxlYXJuIG1v cmUNCiAgYWJvdXQgb3VyIHByb2plY3RzIGFuZCBob3cgeW91IGNhbiBnZXQgaW52b2x2ZWQuIFdl IHdlbGNvbWUgYW55DQogIHN1Z2dlc3Rpb25zIG9yIGNvbW1lbnRzIG9uIGhvdyB3ZSBjYW4gaW1w cm92ZSBhbmQgYmV0dGVyIHNlcnZlIHRoZQ0KICBjb21tdW5pdHkuDQoNCiAgKkNvbW1lcmNpYWwg U3VwcG9ydCoNCg0KICBXaGlsZSB0aGlzIGFubm91Y2VtZW50IGlzIGFib3V0IHRoZSBvbmdvaW5n IG1haW50ZW5hbmNlIG9mIG91ciBjb3JlDQogIG9wZW4tc291cmNlIHByb2plY3RzLCB3ZSBhcmUg YWxzbyBhdmFpbGFibGUgdG8gb3JnYW5pemUgdHJhaW5pbmcsDQogIGRldmVsb3AgY3VzdG9tIGV4 dGVuc2lvbnMsIG9yIHByb3ZpZGUgbG9uZy10ZXJtIGNvbW1lcmNpYWwgc3VwcG9ydCBmb3INCiAg dGhlc2UgcHJvamVjdHMuIFtHZXQgaW4gdG91Y2hdKDxtYWlsdG86Y29udGFjdEB0YXJpZGVzLmNv bT4pIGZvciBtb3JlDQogIGRldGFpbHMuDQoNCiAgVGhhbmsgZm9yIHlvdXIgc3VwcG9ydCwgVGhv bWFzLCBvbiBiZWhhbGYgb2YgdGhlIFRhcmlkZXMgVGVhbQ0KDQoNCltUYXJpZGVzXSA8aHR0cHM6 Ly90YXJpZGVzLmNvbT4NCg0KW2h0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy90YXJpZGVzXQ0K PGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy90YXJpZGVzPg0KDQpbRGFuaWVsXSA8aHR0cHM6 Ly9naXRodWIuY29tL3Nwb25zb3JzL2RidWVuemxpPg0KDQpbQW50b25pb10gPGh0dHBzOi8vZ2l0 aHViLmNvbS9zcG9uc29ycy9hbm1vbnRlaXJvPg0KDQpbTGVhbmRyb10gPGh0dHBzOi8vZ2l0aHVi LmNvbS9zcG9uc29ycy9sZW9zdGVyYT4NCg0KW1JvYnVyXSA8aHR0cHM6Ly9yb2J1ci5jb29wL0Rv bmF0ZT4NCg0KW1RhcmlkZXNdIDxodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvdGFyaWRlcz4N Cg0KW0dpdEh1YiBTcG9uc29yc2hpcCBwYWdlXSA8aHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3Jz L3RhcmlkZXM+DQoNCg0KT3RoZXIgT0NhbWwgTmV3cw0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCkZyb20gdGhlIG9jYW1sLm9yZyBibG9nDQrilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIANCg0KICBIZXJlIGFyZSBsaW5rcyBmcm9tIG1hbnkgT0NhbWwgYmxvZ3MgYWdncmVn YXRlZCBhdCBbdGhlIG9jYW1sLm9yZw0KICBibG9nXS4NCg0KICDigKIgW0Zyb20gQ29tcHV0ZXIg dG8gUHJvZHVjdGlvbiBXaXRoIE5peF0NCiAg4oCiIFtNZWxhbmdlIDQuMCBpcyBoZXJlXQ0KICDi gKIgW0xhdW5jaGluZyB0aGUgRmlyc3QtQ2xhc3MgV2luZG93cyBQcm9qZWN0XQ0KDQoNClt0aGUg b2NhbWwub3JnIGJsb2ddIDxodHRwczovL29jYW1sLm9yZy9ibG9nLz4NCg0KW0Zyb20gQ29tcHV0 ZXIgdG8gUHJvZHVjdGlvbiBXaXRoIE5peF0NCjxodHRwczovL3ByaXZlci5kZXYvYmxvZy9uaXgv ZnJvbS1jb21wdXRlci10by1wcm9kdWN0aW9uLXdpdGgtbml4Lz4NCg0KW01lbGFuZ2UgNC4wIGlz IGhlcmVdIDxodHRwczovL21lbGFuZ2UucmUvYmxvZy9wb3N0cy9tZWxhbmdlLTQtaXMtaGVyZT4N Cg0KW0xhdW5jaGluZyB0aGUgRmlyc3QtQ2xhc3MgV2luZG93cyBQcm9qZWN0XQ0KPGh0dHBzOi8v dGFyaWRlcy5jb20vYmxvZy8yMDI0LTA1LTIyLWxhdW5jaGluZy10aGUtZmlyc3QtY2xhc3Mtd2lu ZG93cy1wcm9qZWN0Pg0KDQoNCk9sZCBDV04NCuKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIElm IHlvdSBoYXBwZW4gdG8gbWlzcyBhIENXTiwgeW91IGNhbiBbc2VuZCBtZSBhIG1lc3NhZ2VdIGFu ZCBJJ2xsIG1haWwNCiAgaXQgdG8geW91LCBvciBnbyB0YWtlIGEgbG9vayBhdCBbdGhlIGFyY2hp dmVdIG9yIHRoZSBbUlNTIGZlZWQgb2YgdGhlDQogIGFyY2hpdmVzXS4NCg0KICBJZiB5b3UgYWxz byB3aXNoIHRvIHJlY2VpdmUgaXQgZXZlcnkgd2VlayBieSBtYWlsLCB5b3UgbWF5IHN1YnNjcmli ZQ0KICB0byB0aGUgW2NhbWwtbGlzdF0uDQoNCiAgW0FsYW4gU2NobWl0dF0NCg0KDQpbc2VuZCBt ZSBhIG1lc3NhZ2VdIDxtYWlsdG86YWxhbi5zY2htaXR0QHBvbHl0ZWNobmlxdWUub3JnPg0KDQpb dGhlIGFyY2hpdmVdIDxodHRwczovL2FsYW4ucGV0aXRlcG9tbWUubmV0L2N3bi8+DQoNCltSU1Mg ZmVlZCBvZiB0aGUgYXJjaGl2ZXNdIDxodHRwczovL2FsYW4ucGV0aXRlcG9tbWUubmV0L2N3bi9j d24ucnNzPg0KDQpbY2FtbC1saXN0XSA8aHR0cHM6Ly9zeW1wYS5pbnJpYS5mci9zeW1wYS9pbmZv L2NhbWwtbGlzdD4NCg0KW0FsYW4gU2NobWl0dF0gPGh0dHBzOi8vYWxhbi5wZXRpdGVwb21tZS5u ZXQvPg0KDQo= --=-=-= 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 21 to 28, 2024.

odoc Documentation Improvements

Christine announced

The odoc team is working to improve the documentation, so we're reaching out to the communi= ty to find out these things:

  • Are you using odoc? If so, how do you use it? What are you= r thoughts?
  • What parts of the documentation have been helpful?
  • What's missing?
  • What suggestions do you have for improvement?
  • What are you pain points for either/both the documentation or the tool = itself?

Your input is more valuable than I can express. Looking forward to your ans= wers!

Using OCaml on windows with WSL

Continuing this thread, Lukasz Stafiniak announced

I have a somewhat related blog post How to update or install a new Linux dist= ribution on WSL.

binsec 0.9.1

Fr=C3=A9d=C3=A9ric Recoules announced

On behalf of the BINSEC team, I am glad to announce that version 0.9.= 1 now lives in Opam.

As a short introduction, BINSEC is an open-source program analyzer develope= d at CEA List to help improve s= oftware security at the binary level. It has been successfully applied in a number of secu= rity-related contexts, such as vulnerability finding, (malware) deobfuscati= on, decompilation, formal verification of assembly code or even binary-leve= l formal verification.

The version 0.9 refactors the SMT solver API, enabling new kin= ds of interaction (incremental solving) and paving the way to more s= upport to internal solver bindings (bitwuzla, bitwuzla-cxx, z3).

More information can be found on the = website , including p= ublications , tutorials or contacts= , but also the description of this release as well as previous ones.

UDP multicast examples using async and lwt

Foxder announced

I am very new to OCaml and have been enjoying learning the language. I was = looking for examples of simple UDP multicast senders and receivers and coul= d not find any great ones (please let me know if I missed some) so I went a= bout creating some examples for myself and anyone in the future.=20

I created examples using both async and lwt for c= oncurrency. If anyone has feedback, I would gladly take it to improve on th= e examples.=20

opam 2.1.6

Kate announced

We are pleased to announce the minor release of opam 2.1.6.

This opam release consists of backported fixes, of which the main ones are:

  • Warn users when GNU patch cannot be found. This is require= d for opam-repository maintainers to go forward in implementing ocaml/opam-repositor= y#23789 so that there are as little breakage as possible.
  • Improve depexts handling on Gentoo, NetBSD and OpenBSD.

You=E2=80=99ll find more information in the release blog post.

To upgrade simply run:

bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/ma=
ster/shell/install.sh) --version 2.1.6"

or upgrade your distribution of choice if their opam package is up-to-date.

Merlin 5.0-502

vds announced

We are pleased to announce the release of merlin 5.0-502 !

Support for OCaml 5.2

This release brings official support for OCaml 5.2. Substantial backend chang= es were required to adapt to this release, especially for features such as = occurrences and get-documentation. Do not hesitate to report any suspicious= behavior in the issue t= racker!

Other changes

This release also fixes a handful of issues:

  • Destruct: Removal of residual patterns (#1737, fixes #1560)
  • Destruct: Do not erase fields' names when destructing punned record fie= lds (#1734, fixes= #1661)
  • Ignore SIGPIPE in the Merlin server process (#1746)
  • Fix lexing of quoted strings in comments (#1754, fixes #1753)
  • Improve cursor position detection in longidents (#1756)

Launching the First-Class Windows Project

Sudha Parimala announced

I'm excited to introduce the First-Class Windows Project, which aims to mak= e OCaml more accessible by enhancing the developer experience on Windows to= match that of Linux and macOS. Our goal is to create a roadmap outlining t= he steps needed to fully support OCaml on Windows.

Check our blog post for details: https://tarides.com/blog/2= 024-05-22-launching-the-first-class-windows-project/

As always, happy to receive questions and feedback.

Chennai OCaml meetup: June 2024

Sudha Parimala announced

Hi all! We're hosting an OCaml meetup at the Tarides Chennai offices. We ha= ve some interesting talks followed by informal conversations over food.

@kayceesrk will be speaking about Concurrent Programming with Effect Handle= rs. We have an open slot for another talk, please get in touch if you'd lik= e to present something.

People of all backgrounds and level of OCaml welcome. RSVP at the following= link: https://www.meetup.com/chennai-ocaml-meetup/eve= nts/301193020/?utm_medium=3Dreferral&utm_campaign=3Dshare-btn_savedeven= ts_share_modal&utm_source=3Dlink

Looking forward to seeing some of you there!

Caper 1.0

niksu announced

Caper has now reached v1.0,= some 5+ years after development first started.

Caper is a tool for understanding and processing =E2=80=9Cpcap expressions= =E2=80=9D (also known as tcpdump filters) which are used for network= packet analysis. It is entirely written in OCaml and includes pcap analysi= s logic, a from-scratch BPF compiler, and conversion to/from English expres= sions.

You can use Caper online through the BPF Exam site.

Caper=E2=80=99s README describes motivation, building, and usage examples, = and its CHANGELOG describes recent updates.

A huge thanks goes to Caper=E2=80=99s contributors. Further contributions a= nd feedback are welcome =E2=80=93 a list of contribution ideas is included = on Caper=E2=80=99s web page.

Ppxlib dev meetings

Nathan Rebours announced

Our next meeting is scheduled on Tuesday May 28th at 6:00PM CET.

I'll post the google meet link here on the day of the meeting.

In the meantime, here is the meeting agenda so far:

  • 5.2 Release
    • Released during compiler's beta, went smoothly
  • 5.3 trunk support
    • Reused the work from @hhugo and adapted it
    • We have an open PR with 5.3 support that needs review
    • External contributors already started adding support for new features: @nojb added support for the effects patterns and an internal change to loca= tion reports
    • How to maintain trunk support on our main branch
  • ppx_deriving and ppx_deriving_yojson ppxlib p= orts
    • PRs open for the release of both
    • A few bug fixes were required but it should be good to go now
  • 5.2 internal AST bump
    • Now that the 5.2 support has been released, we can discuss the plan for= this

If you'd like to bring something else up please answer in this thread so we= can add it to the agenda.

You are also welcome to attend the meeting, whether you have something to b= ring to our attention, would like to contribute to the project or are just = interested in ppxlib and ppx in general.

Tarides GitHub Sponsorship Page =E2=80=93 Supporting the OCam= l Community Together

Thomas Gazagnaire announced

I am happy to share that Tarides now ha= s a GitHub Sponsorship page, live here https://github.com/sponsors/tarides! =F0=9F=8E=89 As a part= of the vibrant OCaml community, Tarides is dedicated to supporting both th= e projects and the individuals who make this ecosystem thrive.

Why GitHub Sponsorship?

The OCaml community is filled with many talented individual contributors an= d collectives who deserve your support, such as Daniel, Antonio, Lea= ndro, Robur and many others.= We encourage you to sponsor them directly to support their work.

But now, you can also sponsor Tarides! Creating a GitHub Sponsorship page is an important step for= us, aimed at sustaining projects that currently lack direct, stable revenu= e sources. While we are thankful for long-term sponsors such as Jane Street= and Tezos, we want to diversify our open-source funding stream to ensure t= he long-term stability and sustainability of core infrastructure projects w= e are working on for the community.

What Can You Expect?

On our sponsorship page, you=E2=80=99ll find detailed information about our= ongoing projects, including:

  • OCaml Compiler: Maintaining ease of use, correctness, and perfor= mance of the compiler(s).
  • OCaml Platform: Ensuring core tools evolve and are compatible wi= th new OCaml releases.
  • OCaml.org: Maintaining the central knowledge base for the OCaml = community.
  • Advanced Projects: Such as MirageOS, Irmin and Eio.

Your support will directly contribute to the sustainability of these projec= ts and allow us to continue our work and maintain these libraries and tools.

How You Can Help

We invite you to visit our = GitHub Sponsorship page to learn more about our projects and how you ca= n get involved. We welcome any suggestions or comments on how we can improv= e and better serve the community.

Commercial Support

While this annoucement is about the ongoing maintenance of our core open-so= urce projects, we are also available to organize training, develop custom e= xtensions, or provide long-term commercial support for these projects. [Get= in touch](mailto:contact@tarides.co= m) for more details.

Thank for your support, Thomas, on behalf of the Tarides Team

Other OCaml News

From the ocaml.org blog

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.

--=-=-=--