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 ESMTP id CBE175D5 for ; Tue, 22 Mar 2022 13:01:35 +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=pZEIdPX5PA8oD9akJa9G3WbuDR9k1ZXQmGBWw64/UiI=; b=CFx6FnZSx9Z1IEWRjLeGi+RejcIKhuwgo9Ar3UYyKHZpy4c43iQiBxby q9oKHSop5/yPqPxauqa33apCTdrhBkrt8K9Gl1Sgmffm5p2VbAXun7an5 KXgLAXATqYdICw6XF2AhiIxZ2t7q9EHLR3/bIqsueLU1Ng04KTkGtBjxy 8=; 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.90,201,1643670000"; d="scan'208,217";a="27469257" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 22 Mar 2022 14:01:33 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 0CDDAE0B4C; Tue, 22 Mar 2022 14:01:33 +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 DA2ACE0069 for ; Tue, 22 Mar 2022 14:01:27 +0100 (CET) IronPort-SDR: 8fuSmhyumHsjijOg+7oF8ueFQ+wuaok0U0Ooy99oHa7TWDdO8FPnFnUwVJ6xJGaV2FsxzhO3UX frt+3N0X+MmCtniV3CVVAV6Js1w9uG8/v5YiPqhcybHtcZsxf/GAe4PQeZMibPcP/P+hjzo2El SAyZRZ1UssxDD60PMrjO17Ftt2lhK172DYjt0//IUO6WlorUOJWEwNYKrHq/p0b3Qhfc8xlt6V jStSwo8o1+BeAjv6fYE8lfCtxA0Ev+WXCrIoPmPap3ye6sSJYAvLOX62HS3AZn8Vi476Xe4oUW MrLE/2EyG2AgsG+Si7rBwGIz X-IPAS-Result: =?us-ascii?q?A0BmAwD2xzlihyIeaIFaFgcBATwBBQUBAgEJAYFxgR9fK?= =?us-ascii?q?BkBZFcrBwhEhBY+iQaFRwGCSolNjxeEFoFjEAEDAQ0SAhYBDgUBAgQBAYUHA?= =?us-ascii?q?hc6AQSDZwIeBgEFMxMBAgQBAQEBAwIDAQEBAQEBAwEBBQEBAQIBAQIEBAETA?= =?us-ascii?q?QEBAQ0LCQUIDAUQDgU8ZGQEgUsEgXQLNA2CIhMMGYNwAQoOCQplFA8DFAEGA?= =?us-ascii?q?wIEDQEXARQKAxQBEhQGgmoBgxYFCpBEnAyBMYEBg08BAwMCDgEOCYQZgWQNA?= =?us-ascii?q?hSBGQGGE1ZLAYMCCYQGKRCBVUSBFAGCDB1RboJMFwEBAQEBgR8cAQFWgmSCZ?= =?us-ascii?q?QSXRg5sEEwZCA4BASACLggFFgYMCwEKBRQOCwQJBQkjCB8LOpIUBAYhmCSVF?= =?us-ascii?q?TQHg0yBOwYMiCWBHYx1iCKDdIFOimKYHSGWADoggimGcAiBCAmCQ5Q1gVWDY?= =?us-ascii?q?4FOKoFNARgFDAczGjBDDQgLgkkJRQEDAg0BAgIDAQIBAgkBAQKNdQEzFoEEA?= =?us-ascii?q?QGCSkF9gSaBdTuFS0A0AgEBATMCBgEKAQEDCYVjAQEFEwsBiAECAiQHghkBA?= =?us-ascii?q?Q?= IronPort-PHdr: A9a23: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 IronPort-Data: A9a23:e7Kd1aAYku8yzhVW/6Dlw5YqxClBgxIJ4kV8jS/XYbTApGx2hT0Dy TEZWjuBafbZYzakKdtwaIrj9UkCsZXVzIJnOVdlrnsFo1Bi+ZOUX4zBRqvTF3rPdZObFBoPA +E2MISowBUcFyeEzvuVGuG96yE6jMlkf5KkYAL+EnkZqTRMFWFw0XqPp8Zj2tQy2YPjWVvX0 T/Pi5S31GGNi2Yc3l08sPrrRCNH5JwebxtF1rCWTakjUG72zxH5PrpHTU2CByeQrr1vIwKPb 72rIIdVUY/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8A/+v5TCRYSVatYoxexwtcv9 O90joaXZFwDF6ORiO9NDDANRkmSPYUekFPGCX2v6IqLyEnXb3bnw/NvFVw7e4oC9Y6bA0kXr 61ecWhRKEvbwbnqqF64YrEEasALF/PQZNYbvmBBmAzzWO4hRYHfTq7K495BwTp2gdpBSP/ab sxfcjFvaRXcfzVFPUoRA58l2uL0lj/4aTIwRFe9//VrvTmKk1QZPL7FMJnnfcOJXNlvgxjCt j3tzTjZKDcrO4nKodaC2ivw176QzXyTtJgpPLax8/ovhFyI2kQIGRgOXB26p+O4gwiwQbpix 1c8/zp367A18F23Q9L9WRyhvXPCuQQTMzZNLwEkwCO1l62K3zygPXIjY2VrQdJ7pMRmGhV/g zdlgOjVLTBotbSUT1eU+bGVsS6+NEApwYkqOX9soewtv4WLnW0jsv7cZoozTvPo37UZDRmqn 2rS9EDSkp1K1aY2O7OHEUfvrQjESnLhdA8uoyLNV2Sq7xgRiGWNNtXxsgCzARpoh2CdQxyNs T0qgcGY5+1mMH1gvCmdGaMVG7W4+/uOMDvdmENiWZ47+FxBGkJPn6gNv1mSx28wbK7onAMFh meI42u9A7cIYBOXgVdfOd7ZNijT5fGI+S7Zfv7VdMFSRZN6aRWK+ipjDWbJgTyywBhzzflmZ 8nDGSpJMZr8Ifo8pNZRb7lHuYLHOghlnTy7qW3Tkkz6ierOPBZ5t59cawDVM4jVE59oUC2Mr 4cOaJvVo/muePfzZCDL/JR7ELz5BSZTOHwCkOQOLrTrClM/QAkJUqaBqZt8JdANt/kLx4/go yHsMmcFmQGXrSCWeW2iNCs5AJuxBskXkJ7OFXdxVbpe8yN/OtnHAWZ2X8dfQITLA8Q4lK8qF aZZI5vcahmNIxyekwkggVDGhNQKXHyWacimZUJJuRAzIMxtQRLn4Njhcle9/SUCFHPq58E5v rur2xidRMYTAQN4A5+OOv6oylqwu1kbmf5zDhCZeYEKIx+1/dg4MTH1g982P9oIdUfJyAyc2 lvEGhwfv+TM/9I4/YCR16CJpoukCcVkGU9eEzWJ5Lq6L3CFrHKkxZ5cXe2IezHESW6y/7+tP L0Hw/b5OfwBvVBLr4stSuY7nfhmv4Pi/uYIwB5lEXPHa0WQJolhenTWj9NSsqBtx6NCvVfkU Ey4/NQHa66CP9noEQJMKQcoMraD2PUTlmWA5Pg5Oh+jtipnpfyfVkFDIxSHiCpcNaZ4doQ/z r556sIR7gW+jDssM8qH33kEpzTWdiRYXvV1rIweDa/qlhEvlANIb6vcPSmqspuBXNNBbxsxK TiOiaue3LlRmhjYf3woGSSf1OZRn85X6hValRkaIFCYhtfOhvk2xQBctzMtQV0NnBlA1utyP EltNlF0dPzer2cy3JAbUjD+ARxFCT2Y5lf1lQkDmlrZeE/0BGbDG2swZLSW90cD/mMAJTVW8 dl0Eoo+veoGoS0w4sczZaKhg/nzFJpp8QnThM2sH8KEBoQ3Jz3/jcdCoEIW/gD/D5pZaFLv/ IFXECRYMMUX9hL8Z4UxDJSc3rkLDhXYNCpFW/4JEGYhBnnSInfqsdSRAxnZRy6OTsAmNWegD Mh/Os9EVxK/zTuD6DcBCsbg5pdvhPBzooJqlqzDfAY7jldUktalXF88OMQzaK/HjuiCSfoAF 74= IronPort-HdrOrdr: A9a23:Y11hkqn8TfCJ7gozjUPKLc2Qv/7pDfIr3DAbv31ZSRFFG/Fw9v rPoB1173DJYVoqMk3I+urgBEDjex3hHPdOiOF7AV7IZmXbUQWTQb1K3M/L/HnLGiH19OJRvJ 0QEJRWOZnXFlY/qc775WCDYrMdKTS8gcKVuds= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.90,201,1643670000"; d="scan'208,217";a="27469170" X-MGA-submission: =?us-ascii?q?MDHhq1a7Gw9Kv4eURBHbPXzG4lgkjy1hOdJWue?= =?us-ascii?q?YnGSaKnB3Dcu1EMWkuVG2QbKbRVvfhdJHVnoU2X2IqsKqkDlApKopCzy?= =?us-ascii?q?vDEfzojcI1/X3xq2F46f61LWnJZFO9fzoicbiVVohoftb7cAKpJOoZ0j?= =?us-ascii?q?r1JLzIlArHmdKdl0R0ZJqIAQ=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; 22 Mar 2022 14:01:27 +0100 Received: from set (set.irisa.fr [131.254.10.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 EC312564EF2; Tue, 22 Mar 2022 14:01:25 +0100 (CET) From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr Date: Tue, 22 Mar 2022 14:01:25 +0100 Message-ID: <87v8w6ta3e.fsf@m4x.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Mar 22 14:01:26 2022 +0100 (CET)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.066427, queueID=44B37564EF3 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: 18731 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 ZWsgb2YgTWFyY2ggMTUgdG8gMjIsDQoyMDIyLg0KDQpUYWJsZSBvZiBDb250ZW50cw0K4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCkZyaWRheSAw My8wNCBJbnRlcm4gcHJlc2VudGF0aW9ucyDigJMgb3BlbiBhdHRlbmRhbmNlIQ0KTXVsdGljb3Jl IE9DYW1sOiBGZWJydWFyeSAyMDIyDQpPQ2FtbCA0LjE0LjAsIHNlY29uZCByZWxlYXNlIGNhbmRp ZGF0ZQ0KRm9yIERpdmVyc2l0eSBhbmQgdGhlIE9DYW1sIENvbW11bml0eTogT3V0cmVhY2h5IFN1 bW1lciAyMDIyDQpVbmRlcnN0YW5kaW5nIGNhbmNlbGxhdGlvbiAoaW4gZWlvKQ0KQXRkcHk6IGRl cml2ZSBzYWZlIEpTT04gaW50ZXJmYWNlcyBmb3IgUHl0aG9uDQpPbGQgQ1dODQoNCg0KRnJpZGF5 IDAzLzA0IEludGVybiBwcmVzZW50YXRpb25zIOKAkyBvcGVuIGF0dGVuZGFuY2UhDQrilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0 cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2ZyaWRheS0wMy0wNC1pbnRlcm4tcHJlc2VudGF0aW9u cy1vcGVuLWF0dGVuZGFuY2UvOTQyOS84Pg0KDQoNCkNvbnRpbnVpbmcgdGhpcyB0aHJlYWQsIEF5 YSBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgA0KDQogIFtIZXJlIGlzIHRoZSBsaW5rXSB0byB0aGUgdmlkZW8gcmVjb3JkaW5n IG9mIHRoZSBwcmVzZW50YXRpb25zISBUaGFua3MNCiAgYWdhaW4gdG8gZXZlcnlvbmUgd2hvIGF0 dGVuZGVkIDpwcmF5OiA6dGFkYToNCg0KDQpbSGVyZSBpcyB0aGUgbGlua10NCjxodHRwczovL3dh dGNoLm9jYW1sLm9yZy92aWRlb3Mvd2F0Y2gvZjM4MjllNGItZTJjZC00NDNlLTg1MDItZjQwNmU4 OTNmZTVmPg0KDQoNCk11bHRpY29yZSBPQ2FtbDogRmVicnVhcnkgMjAyMg0K4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5v Y2FtbC5vcmcvdC9tdWx0aWNvcmUtb2NhbWwtZmVicnVhcnktMjAyMi85NTIyLzE+DQoNCg0KQW5p bCBNYWRoYXZhcGVkZHkgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBX ZWxjb21lIHRvIHRoZSBGZWJydWFyeSAyMDIyIFtNdWx0aWNvcmUgT0NhbWxdIG1vbnRobHkgcmVw b3J0ISBBcyB3aXRoDQogIFtwcmV2aW91cyB1cGRhdGVzXSwgdGhlc2UgaGF2ZSBiZWVuIGNvbXBp bGVkIGJ5IG1lLCBAY3RrMjEsIEBrYXljZWVzcmsNCiAgYW5kIEBzaGFrdGhpbWFhbi4NCg0KICBQ cm9ncmVzcyB0b3dhcmRzIGEgc3RhYmxlIE9DYW1sIDUuMC4wIHJlbGVhc2UgaGF2ZSBiZWVuIG1v dmluZyBmb3J3YXJkDQogIGF0IGZ1bGwgc3RlYW0sIHdpdGggbW9zdCBvZiB0aGUgbXVsdGljb3Jl IE9DYW1sIHdvcmsgbm93IGhhcHBlbmluZw0KICBkaXJlY3RseSB3aXRoaW4gdGhlIG1haW4gb2Nh bWwvb2NhbWwgcmVwb3NpdG9yeS4gQXMgYSBudW1iZXIgb2YNCiAgW2RlcHJlY2F0aW9uc10gaGF2 ZSBoYXBwZW5lZCBpbiBPQ2FtbCA1LjArdHJ1bmssIGl0IGNhbiBiZSBhIGxpdHRsZQ0KICB0cmlj a3kgaW4gdGhlIGltbWVkaWF0ZSB0ZXJtIHRvIGdldCBhIHdvcmtpbmcgZGV2ZWxvcG1lbnQgZW52 aXJvbm1lbnQuDQogIFlvdSBtYXkgZmluZCB0aGVzZSByZXNvdXJjZXMgaGVscGZ1bDoNCiAg4oCi IFRoZXJlIGlzIGEgW211bHRpY29yZSBtb25vcmVwb10gd2hpY2ggaXMgYSAnZmFzdCBjbG9uZSBh bmQgZHVuZQ0KICAgIGJ1aWxkJyB3aXRoIGEgbnVtYmVyIG9mIGVjb3N5c3RlbSBsaWJyYXJpZXMu ICh0aGFua3MgQHBhdHJpY29mZXJyaXMpDQogIOKAoiBUaGVyZSBpcyBhbiBbYWxwaGEtb3BhbS1y ZXBvc2l0b3J5XSB3aGljaCBjb250YWlucyB3b3JrLWluLXByb2dyZXNzDQogICAgcGFja2FnZXMu ICBJZiBhIHBhY2thZ2UgeW91IG1haW50YWluIGlzIGluIHRoZXJlLCBub3cgd291bGQgYmUgYQ0K ICAgIGdvb2QgdGltZSB0byBzdGFydCByZWxlYXNpbmcgaXQgdG8gdGhlIG1haW5saW5lIG9wYW0t cmVwb3NpdG9yeS4NCiAgICBSZW1lbWJlciB0aGF0IHdoaWxlIHdlIGNhbiBwcm9wb3NlIGNoYW5n ZXMsIG9ubHkgdGhlIGNvbW11bml0eQ0KICAgIG1haW50YWluZXJzIG9mIHRoZSByZWxldmFudCBw cm9qZWN0cyBjYW4gZG8gdGhlIGFjdHVhbCByZWxlYXNlLCBzbw0KICAgICp5b3VyIGhlbHAgd2l0 aCBtYWtpbmcgT0NhbWwgNS4wLWNvbXBhdGlibGUgcmVsZWFzZXMgb2YgeW91cg0KICAgIHByb2pl Y3RzIHdvdWxkIGJlIHZlcnkgbXVjaCBhcHByZWNpYXRlZCouICh0aGFua3MgQGtpdC10eS1rYXRl KQ0KDQogIEZvciBtYWlubGluZSBkZXZlbG9wbWVudCwgdGhlIFtjb21waWxlciBkZXZlbG9wbWVu dCBuZXdzbGV0dGVyXSBoYXMgYW4NCiAgb3ZlcnZpZXcgb2Ygd2hhdCdzIGJlZW4gaGFwcGVuaW5n IGluIHRoZSBjb21waWxlci4gIEZyb20gYSBtdWx0aWNvcmUNCiAgcGVyc3BlY3RpdmU6DQogIOKA oiB0aGUgW0FSTTY0IFBSXSBoYXMgYmVlbiBtZXJnZWQsIHNvIHlvdXIgc2hpbnkgTWFjIE0xcyB3 aWxsIG5vdyB3b3JrDQogIOKAoiB3ZSBjb250aW51ZSB0byB3b3JrIG9uIHRoZSBwb3N0LU11bHRp Y29yZSBtZXJnZSB0YXNrcyBmb3IgYW4NCiAgICB1cGNvbWluZyA1LjAuMCt0cnVuayByZWxlYXNl LiBUaGUgZG9jdW1lbnRhdGlvbiBlZmZvcnRzIG9uIHRoZSBPQ2FtbA0KICAgIG1lbW9yeSBtb2Rl bCwgcnVudGltZSBzeXN0ZW0sIGFuZCBTVFcgc3luY2hyb25pemF0aW9uIGhhdmUgYWxzbw0KICAg IHN0YXJ0ZWQuDQogIOKAoiBUaGUgW2VpbyBwcm9qZWN0XSBpcyBhY3RpdmVseSBiZWluZyBkZXZl bG9wZWQgd2hpY2ggbm93IGluY2x1ZGVzIFVEUA0KICAgIHN1cHBvcnQgd2l0aCBFaW8ncyBuZXR3 b3JraW5nIGludGVyZmFjZS4gIFRoZXJlIGhhcyBiZWVuIFtyb2J1c3QNCiAgICBkaXNjdXNzaW9u XSBvbiBzZXZlcmFsIGFzcGVjdHMgb2YgZWlvIHdoaWNoIGlzIGFsbCBpbmZsdWVuY2luZyB0aGUN CiAgICBuZXh0IGl0ZXJhdGlvbiBvZiBpdHMgZGVzaWduICh0aGFuayB5b3UgdG8gZXZlcnlvbmUh KS4gRm9yIHRob3NlIG9mDQogICAgeW91IHdobyBkbyBub3Qgd2lzaCB0byBwYXJ0aWNpcGF0ZSBp biBwdWJsaWMgZGlzY3Vzc2lvbiwgZmVlbCBmcmVlDQogICAgdG8gZ2V0IGluIHRvdWNoIHdpdGgg bWUgb3IgQGtheWNlZXNyayBmb3IgYSBwcml2YXRlIGRpc2N1c3Npb24sDQogICAgcGFydGljdWxh cmx5IGlmIHlvdSBoYXZlIGEgbGFyZ2UgT0NhbWwgY29kZWJhc2UgYW5kIG9waW5pb25zIG9uDQog ICAgY29uY3VycmVuY3kuIFdlJ2xsIHN1bW1hcmlzZSBhbGwgdGhlc2UgZGlzY3Vzc2lvbnMgYXMg YmVzdCB3ZSBjYW4NCiAgICBvdmVyIHRoZSBjb21pbmcgbW9udGhzLg0KICDigKIgYFNhbmRtYXJr LW5pZ2h0bHknIGFuZCBgU2FuZG1hcmsnIGhhdmUgYSBjdXN0b20gdmFyaWFudCBzdXBwb3J0DQog ICAgZmVhdHVyZSB0byBidWlsZCB0cnVuaywgZGV2ZWxvcGVyIGJyYW5jaGVzLCBvciBhIHNwZWNp ZmljIGNvbW1pdCB0bw0KICAgIGFzc2VzcyBhbnkgcGVyZm9ybWFuY2UgcmVncmVzc2lvbnMuIFRo ZSBiYWNrZW5kIHRvb2xpbmcgd2l0aCBVSQ0KICAgIGVuaGFuY2VtZW50cyBjb250aW51ZSB0byBk cml2ZSB0aGUgYGN1cnJlbnQtYmVuY2gnIHByb2plY3QgZm9yd2FyZC4NCg0KICBBcyBhbHdheXMs IHRoZSBNdWx0aWNvcmUgT0NhbWwgdXBkYXRlcyBhcmUgbGlzdGVkIGZpcnN0LCB3aGljaCBhcmUN CiAgdGhlbiBmb2xsb3dlZCBieSB0aGUgZWNvc3lzdGVtIHRvb2xpbmcgdXBkYXRlcy4gIEZpbmFs bHksIHRoZQ0KICBzYW5kbWFyaywgc2FuZG1hcmstbmlnaHRseSBhbmQgY3VycmVudC1iZW5jaCBw cm9qZWN0IHRhc2tzIGFyZQ0KICBtZW50aW9uZWQgZm9yIHlvdXIgcmVmZXJlbmNlLg0KDQogIC9F ZGl0b3LigJlzIG5vdGU6IHBsZWFzZSBmaW5kIHRoZSBmdWxsIHVwZGF0ZSBhdCB0aGUgYXJjaGl2 ZSBsaW5rDQogIGFib3ZlLi8NCg0KDQpbTXVsdGljb3JlIE9DYW1sXSA8aHR0cHM6Ly9naXRodWIu Y29tL29jYW1sLW11bHRpY29yZS9vY2FtbC1tdWx0aWNvcmU+DQoNCltwcmV2aW91cyB1cGRhdGVz XSA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90YWcvbXVsdGljb3JlLW1vbnRobHk+DQoNCltk ZXByZWNhdGlvbnNdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvYmxvYi90cnVuay9D aGFuZ2VzPg0KDQpbbXVsdGljb3JlIG1vbm9yZXBvXQ0KPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5v cmcvdC9hd2Vzb21lLW11bHRpY29yZS1vY2FtbC1hbmQtbXVsdGljb3JlLW1vbm9yZXBvLzk1MTU+ DQoNClthbHBoYS1vcGFtLXJlcG9zaXRvcnldDQo8aHR0cHM6Ly9naXRodWIuY29tL2tpdC10eS1r YXRlL29wYW0tYWxwaGEtcmVwb3NpdG9yeS90cmVlL21hc3Rlci9wYWNrYWdlcz4NCg0KW2NvbXBp bGVyIGRldmVsb3BtZW50IG5ld3NsZXR0ZXJdDQo8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90 L29jYW1sLWNvbXBpbGVyLWRldmVsb3BtZW50LW5ld3NsZXR0ZXItaXNzdWUtNS1ub3ZlbWJlci0y MDIxLXRvLWZlYnJ1YXJ5LTIwMjIvOTQ1OT4NCg0KW0FSTTY0IFBSXSA8aHR0cHM6Ly9naXRodWIu Y29tL29jYW1sL29jYW1sL3B1bGxzLzEwOTcyPg0KDQpbZWlvIHByb2plY3RdIDxodHRwczovL2dp dGh1Yi5jb20vb2NhbWwtbXVsdGljb3JlL2Vpbz4NCg0KW3JvYnVzdCBkaXNjdXNzaW9uXSA8aHR0 cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90YWcvZWZmZWN0cz4NCg0KDQpPQ2FtbCA0LjE0LjAsIHNl Y29uZCByZWxlYXNlIGNhbmRpZGF0ZQ0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vz cy5vY2FtbC5vcmcvdC9vY2FtbC00LTE0LTAtc2Vjb25kLXJlbGVhc2UtY2FuZGlkYXRlLzk1Mjgv MT4NCg0KDQpvY3RhY2hyb24gYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBUaGUgcmVsZWFzZSBvZiBPQ2FtbCA0 LjE0LjAgaXMgaW1taW5lbnQuICBBcyBhIGxhc3QgdGVzdCB0aGF0DQogIGV2ZXJ5dGhpbmcgaXMg aW4gb3JkZXIsIHdlIGFyZSBwdWJsaXNoaW5nIGEgc2Vjb25kIHJlbGVhc2UgY2FuZGlkYXRlDQog IGZvciBPQ2FtbCA0LjE0LjAuDQoNCiAgV2UgYXJlIGRpcmVjdGx5IGp1bXBpbmcgdG8gdGhlIHNl Y29uZCByZWxlYXNlIGNhbmRpZGF0ZSBkdWUgdG8gYSB0eXBlDQogIHN5c3RlbSByZWdyZXNzaW9u IGRpc2NvdmVyZWQgZHVyaW5nIHRoZSByZWxlYXNlIHByb2Nlc3Mgb2YgdGhlIGZpcnN0DQogIHJl bGVhc2UgY2FuZGlkYXRlLg0KDQogIENvbXBhcmVkIHRvIHRoZSBsYXN0IGJldGEsIHRoaXMgcmVs ZWFzZSBjYW5kaWRhdGUgaW5jbHVkZXMgYQ0KICByZWdyZXNzaW9uIGZpeCB3aGVuIHR5cGluZyBy ZWN1cnNpdmUgY29uc3RyYWludHMsIHR3byBiYWNrZW5kIGZpeGVzDQogIChvbmUgZm9yIHRoZSBm cmFtZS1wb2ludGVyIG1vZGUgYW5kIHRoZSBvdGhlciBvbmUgZm9yIHRoZSBSSVNDLVYNCiAgYXJj aGl0ZWN0dXJlKSwgb25lIGNvbmZpZ3VyYXRpb24gZml4IGZvciBtdXNsL2FybTY0LCBhbmQgdGhl IG1hbnVhbA0KICBjaGFwdGVyIGZvciB0aGUgVE1DIHRyYW5zZm9ybWF0aW9uLg0KDQogIElmIHlv dSBmaW5kIGFueSBidWdzLCBwbGVhc2UgcmVwb3J0IHRoZW0gaGVyZToNCg0KICA8aHR0cHM6Ly9n aXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcz4NCg0KICBUaGUgZnVsbCByZWxlYXNlIG9mIE9D YW1sIDQuMTQuMCBpcyBjdXJyZW50bHkgcGxhbm5lZCBmb3IgbmV4dCB3ZWVrLg0KDQoNCkluc3Rh bGxhdGlvbiBpbnN0cnVjdGlvbnMNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIFRoZSBiYXNlIGNv bXBpbGVyIGNhbiBiZSBpbnN0YWxsZWQgYXMgYW4gb3BhbSBzd2l0Y2ggd2l0aCB0aGUNCiAgZm9s bG93aW5nIGNvbW1hbmRzDQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIgb3BhbSB1cGRhdGUNCiAg 4pSCIG9wYW0gc3dpdGNoIGNyZWF0ZSA0LjE0LjB+cmMyIC0tcmVwb3NpdG9yaWVzPWRlZmF1bHQs YmV0YT1naXQraHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sLWJldGEtcmVwb3NpdG9yeS5n aXQNCiAg4pSU4pSA4pSA4pSA4pSADQogIElmIHlvdSB3YW50IHRvIHR3ZWFrIHRoZSBjb25maWd1 cmF0aW9uIG9mIHRoZSBjb21waWxlciwgeW91IGNhbiBzd2l0Y2gNCiAgdG8gdGhlIG9wdGlvbiB2 YXJpYW50IHdpdGg6DQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIgb3BhbSB1cGRhdGUNCiAg4pSC IG9wYW0gc3dpdGNoIGNyZWF0ZSA8c3dpdGNoX25hbWU+IC0tcGFja2FnZXM9b2NhbWwtdmFyaWFu dHMuNC4xNC4wfnJjMitvcHRpb25zLDxvcHRpb25fbGlzdD4NCiAg4pSCIC0tcmVwb3NpdG9yaWVz PWRlZmF1bHQsYmV0YT1naXQraHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sLWJldGEtcmVw b3NpdG9yeS5naXQNCiAg4pSU4pSA4pSA4pSA4pSADQogIHdoZXJlIGA8b3B0aW9uX2xpc3Q+JyBp cyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGBvY2FtbC1vcHRpb24tKicNCiAgcGFja2FnZXMu IEZvciBpbnN0YW5jZSwgZm9yIGEgZmxhbWJkYSBhbmQgbm8tZmxhdC1mbG9hdC1hcnJheSBzd2l0 Y2g6DQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIgb3BhbSBzd2l0Y2ggY3JlYXRlIDQuMTQuMH5y YzIrZmxhbWJkYStuZmZhDQogIOKUgiAtLXBhY2thZ2VzPW9jYW1sLXZhcmlhbnRzLjQuMTQuMH5y YzIrb3B0aW9ucyxvY2FtbC1vcHRpb24tZmxhbWJkYSxvY2FtbC1vcHRpb24tbm8tZmxhdC1mbG9h dC1hcnJheQ0KICDilIIgLS1yZXBvc2l0b3JpZXM9ZGVmYXVsdCxiZXRhPWdpdCtodHRwczovL2dp dGh1Yi5jb20vb2NhbWwvb2NhbWwtYmV0YS1yZXBvc2l0b3J5LmdpdA0KICDilJTilIDilIDilIDi lIANCiAgQWxsIGF2YWlsYWJsZSBvcHRpb25zIGNhbiBiZSBsaXN0ZWQgd2l0aCBgb3BhbSBzZWFy Y2ggb2NhbWwtb3B0aW9uJy4NCg0KICBUaGUgc291cmNlIGNvZGUgZm9yIHRoZSByZWxlYXNlIGNh bmRpZGF0ZSBpcyBhbHNvIGF2YWlsYWJsZSBhdCB0aGVzZQ0KICBhZGRyZXNzZXM6DQoNCiAg4oCi IDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvYXJjaGl2ZS80LjE0LjAtcmMyLnRhci5n ej4NCiAg4oCiIDxodHRwczovL2NhbWwuaW5yaWEuZnIvcHViL2Rpc3RyaWIvb2NhbWwtNC4xNC9v Y2FtbC00LjE0LjB+cmMyLnRhci5nej4NCg0KDQpDaGFuZ2VzIHNpbmNlIHRoZSBsYXN0IGJldGEN CuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQpUeXBlIHN5c3RlbSByZWdyZXNzaW9uIGZpeA0K 4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE 4pSE4pSE4pSE4pSE4pSE4pSE4pSEDQoNCiAg4oCiIFsjMTExMDFdLCBbIzExMTA5XTogQSByZWN1 cnNpdmUgdHlwZSBjb25zdHJhaW50IGZhaWxzIG9uIDQuMTQNCiAgICAoSmFjcXVlcyBHYXJyaWd1 ZSwgcmVwb3J0IGFuZCByZXZpZXcgYnkgRmxvcmlhbiBBbmdlbGV0dGkpDQoNCg0KWyMxMTEwMV0g PGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTExMDE+DQoNClsjMTExMDld IDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzExMTA5Pg0KDQoNCkJhY2tl bmQgZml4ZXMNCuKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhA0KDQogIOKA oiBbIzEwNjg4XTogTW92ZSBmcmFtZSBkZXNjcmlwdG9yIHRhYmxlIGZyb20gYHJvZGF0YWAgdG8g YGRhdGFgDQogICAgc2VjdGlvbiBvbiBSSVNDLVYuICBJbXByb3ZlcyBzdXBwb3J0IGZvciBidWls ZGluZyBETExzIGFuZCBQSUVzLiBJbg0KICAgIHBhcnRpY3VsYXIsIHRoaXMgYXBwbGllcyB0byBh bGwgYmluYXJpZXMgaW4gZGlzdHJpYnV0aW9ucyB0aGF0IGJ1aWxkDQogICAgUElFcyBieSBkZWZh dWx0IChlZyBHZW50b28gYW5kIEFscGluZSkuIChBbGV4IEZhbiwgcmV2aWV3IGJ5IEdhYnJpZWwN CiAgICBTY2hlcmVyKQ0KDQogIOKAoiBbIzExMDMxXTogRXhjZXB0aW9uIGhhbmRsZXJzIHJlc3Rv cmUgdGhlIHJicCByZWdpc3RlciB3aGVuIHVzaW5nDQogICAgZnJhbWUtcG9pbnRlcnMgb24gYW1k NjQuIChGYWJyaWNlIEJ1b3JvLCB3aXRoIGhlbHAgZnJvbSBTdGVwaGVuDQogICAgRG9sYW4sIFRv bSBLZWxseSBhbmQgTWFyayBTaGlud2VsbCwgcmV2aWV3IGJ5IFhhdmllciBMZXJveSkNCg0KDQpb IzEwNjg4XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy8xMDY4OD4NCg0K WyMxMTAzMV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTEwMzE+DQoN Cg0KQ29uZmlndXJhdGlvbiBmaXgNCuKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKUhOKU hOKUhOKUhOKUhOKUhOKUhA0KDQogIOKAoiBbIzExMDI1XSwgWyMxMTAzNl06IERvIG5vdCBwYXNz IC1uby1waWUgdG8gdGhlIEMgY29tcGlsZXIgb24NCiAgICBtdXNsL2FybTY0IChvbW5pLCBLYXRl IERlcGxhaXggYW5kIEFudG9uaW8gTnVubyBNb250ZWlybywgcmV2aWV3IGJ5DQogICAgWGF2aWVy IExlcm95KQ0KDQoNClsjMTEwMjVdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNz dWVzLzExMDI1Pg0KDQpbIzExMDM2XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lz c3Vlcy8xMTAzNj4NCg0KDQpEb2N1bWVudGF0aW9uDQrilITilITilITilITilITilITilITilITi lITilITilITilITilIQNCg0KICDigKIgKnVwZGF0ZWQgZW50cnkqIFsjMTgxXSwgWyM5NzYwXSwg K1sjMTA3NDBdOiBvcHQtaW4gdGFpbC1tb2R1bG8tY29ucw0KICAgICAoVE1DKSB0cmFuc2Zvcm1h dGlvbg0KICAgIOKUjOKUgOKUgOKUgOKUgA0KICAgIOKUgiBsZXRbQHRhaWxfbW9kX2NvbnNdIHJl YyBtYXAgZiBsaSA9IC4uLg0KICAgIOKUlOKUgOKUgOKUgOKUgA0KICAgIChGcsOpZMOpcmljIEJv dXIsIEdhYnJpZWwgU2NoZXJlciwgQmFzaWxlIENsw6ltZW50LCByZXZpZXcgYnkgQmFzaWxlDQog ICAgQ2zDqW1lbnQgYW5kIFBpZXJyZSBDaGFtYmFydCwgdGVzdGVkIGJ5IEtvbnN0YW50aW4gUm9t YW5vdikNCg0KDQpbIzE4MV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMv MTgxPg0KDQpbIzk3NjBdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzk3 NjA+DQoNClsjMTA3NDBdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzEw NzQwPg0KDQoNCkZvciBEaXZlcnNpdHkgYW5kIHRoZSBPQ2FtbCBDb21tdW5pdHk6IE91dHJlYWNo eSBTdW1tZXIgMjAyMg0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vz cy5vY2FtbC5vcmcvdC9mb3ItZGl2ZXJzaXR5LWFuZC10aGUtb2NhbWwtY29tbXVuaXR5LW91dHJl YWNoeS1zdW1tZXItMjAyMi85MjM0LzU+DQoNCg0KQ29udGludWluZyB0aGlzIHRocmVhZCwgUGF0 cmljayBGZXJyaXMgc2FpZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgVGhhbmtzIGZvciB0aGUgdXBk YXRlcyBAcGl0YWchIEZvciB0aGlzIHN1bW1lcidzIHJvdW5kIEknbGwgYmUNCiAgbWVudG9yaW5n IGEgcHJvamVjdCB0byBbRXh0ZW5kIG9jYW1sLWdlb2pzb24gdG8gc3VwcG9ydCBUb3BvSlNPTl0N CiAgd2hpY2ggd2lsbCBsaWtlbHkgYmUgYSBzZXBhcmF0ZSBwYWNrYWdlLiAgVGhpcyBpcyBwYXJ0 IG9mIGEgbGFyZ2VyDQogIGVmZm9ydCBJJ20gZW1iYXJraW5nIG9uIHRvIHByb3ZpZGUgYmV0dGVy IFtnZW9zcGF0aWFsIGxpYnJhcmllcyBhbmQNCiAgdG9vbHMgaW4gT0NhbWxdIQ0KDQogIEknZCBi ZSB2ZXJ5IGhhcHB5IHRvIGhhdmUgYSBjby1tZW50b3IgaWYgdGhlIHByb2plY3QgKG9yIGp1c3Qg dGhlIGlkZWENCiAgb2YgT3V0cmVhY2h5KSBpbnRlcmVzdHMgYW55b25lLiBEb24ndCBoZXNpdGF0 ZSB0byByZWFjaCBvdXQgdG8gbWUgb24NCiAgZGlzY3VzcyBwdWJsaWNseSBvciBwcml2YXRlbHkg aWYgeW91IGFyZSBpbnRlcmVzdGVkIG9yIGhhdmUgbW9yZQ0KICBxdWVzdGlvbnMgOmNhbWVsOg0K DQoNCltFeHRlbmQgb2NhbWwtZ2VvanNvbiB0byBzdXBwb3J0IFRvcG9KU09OXQ0KPGh0dHBzOi8v d3d3Lm91dHJlYWNoeS5vcmcvYXBwbHkvcHJvamVjdC1zZWxlY3Rpb24vI29jYW1sPg0KDQpbZ2Vv c3BhdGlhbCBsaWJyYXJpZXMgYW5kIHRvb2xzIGluIE9DYW1sXSA8aHR0cHM6Ly9naXRodWIuY29t L2dlb2NhbWw+DQoNCg0KVW5kZXJzdGFuZGluZyBjYW5jZWxsYXRpb24gKGluIGVpbykNCuKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6 DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvdW5kZXJzdGFuZGluZy1jYW5jZWxsYXRp b24taW4tZWlvLzkzNjkvNDU+DQoNCg0KRGVlcCBpbiB0aGlzIHRocmVhZCwgU2ltb24gQ3J1YW5l cyBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIEkgc3RpbGwgaGF2ZSByZXNlcnZh dGlvbnMgYWJvdXQgdGhlIGNhcGFiaWxpdGllcyBhc3BlY3Qgb2YgRWlvLCBidXQNCiAgdGhlIHN0 cnVjdHVyZWQgY29uY3VycmVuY3kgcGFydCBsb29rcyB2ZXJ5IG5pY2UuICBKdXN0IGEgZmV3IG5v dGVzLA0KICBmb3IgZnV0dXJlIHJlZmVyZW5jZSB0byByZWFkZXJzIG9mIHRoaXMgdGhyZWFkIChp ZiBJIGhhdmVuJ3QgbWlzc2VkDQogIHRoZW0gYmVpbmcgcG9zdGVkIGFib3ZlIGFscmVhZHkpOg0K DQogIEFub3RoZXIgaW50ZXJlc3RpbmcgcG9zdCBhYm91dCBzdHJ1Y3R1cmVkIGNvbmN1cnJlbmN5 IGFuZA0KICBjYW5jZWxsYXRpb246IDxodHRwczovLzI1MGJwbS5jb20vYmxvZzo3MS8+DQoNCiAg QSBzdHJ1Y3R1cmVkIGNvbmN1cnJlbmN5IGxpYnJhcnkgaW4gcHl0aG9uOiBbdHJpb10sIHdoaWNo IG1pZ2h0IGJlDQogIHJlbGF0aXZlbHkgc2ltaWxhciB0byBFaW8ncyBzd2l0Y2hlcyBpbiBjb25j ZXB0IChlc3Agc2luY2UgQHRhbGV4DQogIGxpbmtlZCBbdGhpc10pPw0KDQogIENvbXBhbmlvbiBw b3N0IHRvIHRoZSB0cmlvIGJsb2dwb3N0Og0KICA8aHR0cHM6Ly92b3JwdXMub3JnL2Jsb2cvdGlt ZW91dHMtYW5kLWNhbmNlbGxhdGlvbi1mb3ItaHVtYW5zLz4gd2hpY2gNCiAgaXMgZGlyZWN0bHkg cmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgdG9waWMuDQoNCg0KW3RyaW9dIDxodHRwczovL3RyaW8u cmVhZHRoZWRvY3MuaW8vZW4vc3RhYmxlL2luZGV4Lmh0bWw+DQoNClt0aGlzXQ0KPGh0dHBzOi8v dm9ycHVzLm9yZy9ibG9nL25vdGVzLW9uLXN0cnVjdHVyZWQtY29uY3VycmVuY3ktb3ItZ28tc3Rh dGVtZW50LWNvbnNpZGVyZWQtaGFybWZ1bC8+DQoNCg0KQXRkcHk6IGRlcml2ZSBzYWZlIEpTT04g aW50ZXJmYWNlcyBmb3IgUHl0aG9uDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZl Og0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2F0ZHB5LWRlcml2ZS1zYWZlLWpzb24t aW50ZXJmYWNlcy1mb3ItcHl0aG9uLzk1NDQvMT4NCg0KDQpNYXJ0aW4gSmFtYm9uIGFubm91bmNl ZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSADQoNCiAgT24gYmVoYWxmIG9mIHRoZSBBVEQgdGVhbSwgSSdkIGxpa2Ug dG8gYW5ub3VuY2UgYXRkcHksIHdoaWNoIGlzIHBhcnQNCiAgb2YgdGhlIHJlbGVhc2UgMi4zLngg b2YgdGhlIEFURCB0b29scy4gRm9yIG5vdywgdGhlIGJlc3QgaW5zdGFsbGF0aW9uDQogIG1ldGhv ZCB3aXRoIHZpYSBvcGFtOg0KDQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIgJCBvcGFtIGluc3Rh bGwgYXRkcHkNCiAg4pSU4pSA4pSA4pSA4pSADQoNCiAgQXRkcHkgaXMgYSBuZXcgYmFja2VuZCBm b3IgW0FURF0uIEl0IHRha2VzIGEgY29sbGVjdGlvbiBvZiB0eXBlDQogIGRlZmluaXRpb25zIGFu ZCBkZXJpdmVzIFB5dGhvbiBjbGFzc2VzIHdpdGggbXlweSB0eXBlIGFubm90YXRpb25zIHRoYXQN CiAgdmFsaWRhdGUgdGhlIEpTT04gZGF0YS4NCg0KICBBIFtzaG9ydCBpbnRyb2R1Y3Rpb25dIGlz IGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLg0KDQogIFVzZSBjYXNlczoNCiAg4oCiIFNh ZmUgY29tbXVuaWNhdGlvbiB3aXRoIGFub3RoZXIgcHJvZ3JhbSB0aGF0IGFsc28gdXNlcyBhbiBB VEQNCiAgICBpbnRlcmZhY2UuIE90aGVyIHN1cHBvcnRlZCBsYW5ndWFnZXMgYXJlIE9DYW1sIChp bmNsdWRpbmcNCiAgICBCdWNrbGVzY3JpcHQpLCBKYXZhLCBhbmQgU2NhbGEuDQogIOKAoiBOZWVk IGZvciBbbW9zdGx5XSB0eXBlLXNhZmUgUHl0aG9uIG1ldGhvZHMgdmlhIG15cHkuDQogIOKAoiBO ZWVkIGZvciBhIGdvb2QgUHl0aG9uIEFQSSB0byBjb21tdW5pY2F0ZSB3aXRoIGFuIE9DYW1sIGV4 ZWN1dGFibGUNCiAgICBvciBzZXJ2aWNlLg0KICDigKIgTmVlZCBmb3Igc3VtIHR5cGVzICh2YXJp YW50cywgYWxnZWJyYWljIGRhdGEgdHlwZXMsIHRhZ2dlZA0KICAgIHVuaW9ucykuIEFURCBzdW0g dHlwZXMgYXJlIG9yZGluYXJ5IHR5cGVzIHRoYXQgaW5jbHVkZSBwdXJlIGVudW1zLg0KDQogIEF0 ZHB5IHdhcyBkZXZlbG9wZWQgYXMgcGFydCBvZiBvdXIgd29yayBvbiBbU2VtZ3JlcF0gYXQgW3Iy Y10uIE1hbnkNCiAgdGhhbmtzIHRvIEBtc2VyaSBmb3IgaGlzIG1hc3NpdmUgaGVscCBkdXJpbmcg dGhlIG9wYW0gcmVsZWFzZSBvZiB0aGUgNw0KICBBVEQgcGFja2FnZXMsIGFuZCB0byB0aGUgQWhy ZWZzIGZvbGtzIGFuZCBAS2hhZHkgaW4gcGFydGljdWxhciBmb3INCiAgc3VwcG9ydGluZyB0aGUg cHJvamVjdC4NCg0KDQpbQVREXSA8aHR0cHM6Ly9naXRodWIuY29tL2FocmVmcy9hdGQ+DQoNCltz aG9ydCBpbnRyb2R1Y3Rpb25dIDxodHRwczovL2F0ZC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3Qv YXRkcHkuaHRtbD4NCg0KW1NlbWdyZXBdIDxodHRwczovL3NlbWdyZXAuZGV2Lz4NCg0KW3IyY10g PGh0dHBzOi8vcjJjLmRldi8+DQoNCg0KT2xkIENXTg0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoN CiAgSWYgeW91IGhhcHBlbiB0byBtaXNzIGEgQ1dOLCB5b3UgY2FuIFtzZW5kIG1lIGEgbWVzc2Fn ZV0gYW5kIEknbGwgbWFpbA0KICBpdCB0byB5b3UsIG9yIGdvIHRha2UgYSBsb29rIGF0IFt0aGUg YXJjaGl2ZV0gb3IgdGhlIFtSU1MgZmVlZCBvZiB0aGUNCiAgYXJjaGl2ZXNdLg0KDQogIElmIHlv dSBhbHNvIHdpc2ggdG8gcmVjZWl2ZSBpdCBldmVyeSB3ZWVrIGJ5IG1haWwsIHlvdSBtYXkgc3Vi c2NyaWJlDQogIFtvbmxpbmVdLg0KDQogIFtBbGFuIFNjaG1pdHRdDQoNCg0KW3NlbmQgbWUgYSBt ZXNzYWdlXSA8bWFpbHRvOmFsYW4uc2NobWl0dEBwb2x5dGVjaG5pcXVlLm9yZz4NCg0KW3RoZSBh cmNoaXZlXSA8aHR0cHM6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC9jd24vPg0KDQpbUlNTIGZlZWQg b2YgdGhlIGFyY2hpdmVzXSA8aHR0cHM6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC9jd24vY3duLnJz cz4NCg0KW29ubGluZV0gPGh0dHA6Ly9saXN0cy5pZHlsbC5vcmcvbGlzdGluZm8vY2FtbC1uZXdz LXdlZWtseS8+DQoNCltBbGFuIFNjaG1pdHRdIDxodHRwczovL2FsYW4ucGV0aXRlcG9tbWUubmV0 Lz4NCg0K --=-=-= 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 March 15 to 22, 2022.

Friday 03/04 Intern presentations – open attendance!

Continuing this thread, Aya announced

Here is the link to the video recording of the presentations! Thanks again to everyone who attended :pray: :tada:

Multicore OCaml: February 2022

Anil Madhavapeddy announced

Welcome to the February 2022 Multicore OCaml monthly report! As with previous u= pdates, these have been compiled by me, @ctk21, @kayceesrk and @shakthimaan.

Progress towards a stable OCaml 5.0.0 release have been moving forward at f= ull steam, with most of the multicore OCaml work now happening directly within the main ocaml/ocaml repository. A= s a number of deprecations<= /a> have happened in OCaml 5.0+trunk, it can be a little tricky in the immediate term to get a working development environmen= t. You may find these resources helpful:

  • There is a multicore monorepo which is a 'fast clo= ne and dune build' with a number of ecosystem libraries. (thanks @patricofe= rris)
  • There is an alpha-opam-repository which contains work-in= -progress packages. If a package you maintain is in there, now would be a = good time to start releasing it to the mainline opam-repository. Remember = that while we can propose changes, only the community maintainers of the re= levant projects can do the actual release, so your help with making OCam= l 5.0-compatible releases of your projects would be very much appreciated. (thanks @kit-ty-kate)

For mainline development, the

  • the ARM64 PR= has been merged, so your shiny Mac M1s will now work
  • we continue to work on the post-Multicore merge tasks for an upcoming 5= .0.0+trunk release. The documentation efforts on the OCaml memory model, ru= ntime system, and STW synchronization have also started.
  • The eio project = is actively being developed which now includes UDP support with Eio's netwo= rking interface. There has been robust discussion on several aspects of eio which is all influe= ncing the next iteration of its design (thank you to everyone!). For those = of you who do not wish to participate in public discussion, feel free to ge= t in touch with me or @kayceesrk for a private discussion, particularly if = you have a large OCaml codebase and opinions on concurrency. We'll summaris= e all these discussions as best we can over the coming months.
  • Sandmark-nightly and Sandmark have a custom v= ariant support feature to build trunk, developer branches, or a specific co= mmit to assess any performance regressions. The backend tooling with UI enh= ancements continue to drive the current-bench project forward.=
  • As always, the Multicore OCaml updates are listed first, which are then fol= lowed by the ecosystem tooling updates. Finally, the sandmark, sandmark-nightly and current-bench project tasks are= mentioned for your reference.

    Editor=E2=80=99s note: please find the full update at the archive link a= bove.

    OCaml 4.14.0, second release candidate

    octachron announced

    The release of OCaml 4.14.0 is imminent. As a last test that everything is in order, we are publishing a second rele= ase candidate for OCaml 4.14.0.

    We are directly jumping to the second release candidate due to a type system regression discovered during the release process of the first release candidate.

    Compared to the last beta, this release candidate includes a regression fix= when typing recursive constraints, two backend fixes (one for the frame-pointer = mode and the other one for the RISC-V architecture), one configuration fix for musl/arm64, and the manual chapter for the TMC transformation.

    If you find any bugs, please report them here:

    https://github.com/ocaml/= ocaml/issues

    The full release of OCaml 4.14.0 is currently planned for next week.

    Installation instructions

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

    opam update
    opam switch create 4.14.0~rc2 --repositories=3Ddefault,beta=3Dgit+https://g=
    ithub.com/ocaml/ocaml-beta-repository.git
    

    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> --packages=3Docaml-variants.4.14.0~r=
    c2+options,<option_list>
    --repositories=3Ddefault,beta=3Dgit+https://github.com/ocaml/ocaml-beta-rep=
    ository.git
    

    where <option_list> is a comma separated list of o= caml-option-* packages. For instance, for a flambda and no-flat-float-array switch:

    opam switch create 4.14.0~rc2+flambda+nffa
    --packages=3Docaml-variants.4.14.0~rc2+options,ocaml-option-flambda,ocaml-o=
    ption-no-flat-float-array
    --repositories=3Ddefault,beta=3Dgit+https://github.com/ocaml/ocaml-beta-rep=
    ository.git
    

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

    The source code for the release candidate is also available at these addres= ses:

    Changes since the last beta

    Type system regression fix
    • #11101, #11109: A recursiv= e type constraint fails on 4.14 (Jacques Garrigue, report and review by Flo= rian Angeletti)
    Backend fixes
    • #10688: Mov= e frame descriptor table from `rodata` to `data` section on RISC-V. Improv= es support for building DLLs and PIEs. In particular, this applies to all b= inaries in distributions that build PIEs by default (eg Gentoo and Alpine).= (Alex Fan, review by Gabriel Scherer)
    • #11031: Exc= eption handlers restore the rbp register when using frame-pointers on amd64= . (Fabrice Buoro, with help from Stephen Dolan, Tom Kelly and Mark Shinwell= , review by Xavier Leroy)
    Configuration fix
    • #11025, #11036: Do not pas= s -no-pie to the C compiler on musl/arm64 (omni, Kate Deplaix and Antonio N= uno Monteiro, review by Xavier Leroy)
    Documentation
    • updated entry = #181, #9760,= +#10740: opt-i= n tail-modulo-cons (TMC) transformation

      let[@tail_mod_cons] rec map f li =3D ...
      

      (Fr=C3=A9d=C3=A9ric Bour, Gabriel Scherer, Basile Cl=C3=A9ment, review by B= asile Cl=C3=A9ment and Pierre Chambart, tested by Konstantin Romanov)

    For Diversity and the OCaml Community: Outreachy Summer 2022

    Continuing this thread, Patrick Ferris said

    Thanks for the updates @pitag! For this summer's round I'll be mentoring a = project to Extend ocaml-geojson to support TopoJSON which will likely be a separate package. This is part of a larger effort I'm embarking on to provide better geospatial libraries and tools in OCaml!

    I'd be very happy to have a co-mentor if the project (or just the idea of O= utreachy) interests anyone. Don't hesitate to reach out to me on discuss publicly or privately if you are interested o= r have more questions :camel:

    Understanding cancellation (in eio)

    Deep in this thread, Simon Cruanes announced

    I still have reservations about the capabilities aspect of Eio, but the str= uctured concurrency part looks very nice. Just a few notes, for future reference to readers of this thread (if I have= n't missed them being posted above already):

    Another interesting post about structured concurrency and cancellation: https://250bpm.com/blog:71/

    A structured concurrency library in python: trio, which might be relatively similar to Eio's switches in concept (esp since @talex linked this)?

    Companion post to the trio blogpost: https://vorpus.org/blog/timeouts-and-ca= ncellation-for-humans/ which is directly relevant to the current topic.

    Atdpy: derive safe JSON interfaces for Python

    Martin Jambon announced

    On behalf of the ATD team, I'd like to announce atdpy, which is part of the= release 2.3.x of the ATD tools. For now, the best installation method with via opam:

    $ opam install atdpy
    

    Atdpy is a new backend for ATD. It takes a collection of type definitions and derives Python classes with mypy type annotations that validate the JSON da= ta.

    A short introdu= ction is included in the documentation.

    Use cases:

    • Safe communication with another program that also uses an ATD interface= . Other supported languages are OCaml (including Bucklescript), Java, and S= cala.
    • Need for [mostly] type-safe Python methods via mypy.
    • Need for a good Python API to communicate with an OCaml executable or s= ervice.
    • Need for sum types (variants, algebraic data types, tagged unions). ATD= sum types are ordinary types that include pure enums.

    Atdpy was developed as part of our work on Semgrep at r2c. Many thanks to @mseri for his massive help during the opam release of the 7 ATD packages, = and to the Ahrefs folks and @Khady in particular for supporting the project.

    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.

    --=-=-=--