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 CF25D2E03 for ; Tue, 19 Jul 2022 08:59:05 +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=cCEM4CfbZXlsoHTjt+VtnpF2JFGRPx4DapLXr0ll7cg=; b=en7R/cuW9Gvi9kWtnsE9oGYsDp8gn4vRlBKF/lprb41bvldE2mq6Rmos Ej2bTUTzfv6QK50dEqx9VVoeNSkkRiDZJ26Oi0WmXCLC0pNFqtCY/I+S1 IqL84ZJPoVaKjr+/rTT51vAeJVxXEoOBFpbILpaUj+kk9evIRv4NI4AAJ c=; 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 Authentication-Results: mail2-relais-roc.national.inria.fr; spf=SoftFail 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="5.92,283,1650924000"; d="scan'208,217";a="46079283" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 19 Jul 2022 10:59:05 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id D5684E02E3; Tue, 19 Jul 2022 10:59:04 +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 23FCBE0261 for ; Tue, 19 Jul 2022 10:59:02 +0200 (CEST) IronPort-SDR: OHtOgjuR1vlHgOFNl/wgKmO4HvBbDuw/RRh7IZHDCLyTQnNIBJYFJSMZ19Gic7e/bLf3uaU5QR ShDjnFZU5sJ69Sf2aegpElKjntlmrdI+K1OZBO4W9tdO8umA1mNHKb+etJdmd+l+I/c5/5IdSJ XiOe9ZODMjvUzX81QRZQr3UQdiLh83vvvPjikoBvNcUP01m5TPAxZTgTxJ3j6OAMS3w/QjuZd5 H8PjyIa4ECrHXMawOunoFdCXKBT7lljNHNj8o6cnZPbwJNWeuxyPB3y161u6w7LCYL0cIg+oMJ ZNDKseBYoljOZcw/mNwm9dDZ X-IPAS-Result: =?us-ascii?q?A0BDAQCRcdZimCIeaIFag3lbKBkBZ1YuBwhFhE6If4gNg?= =?us-ascii?q?RaIQocBjhkQAQMBDSwBDgQBAgQBAYISgi9FAhaEeAIeBgEFMxMBAgQBAQEBA?= =?us-ascii?q?wIDAQEBAQEBAwEBBQEBAQIBAQIEBAETAQEBAQEBAQEJCwkHBgwFEA4FPGRkB?= =?us-ascii?q?IFLBIF0CzQNgjUMGYNwARgJChMBASkPGCMDFAEGAwIEDQEXAR4XARIUBoIfR?= =?us-ascii?q?AGDGAMFC49LmksaNXqBMYEBgggBAQaBPwEDAwsCAgMPLgGDdoFcCSSBAheGJ?= =?us-ascii?q?mBMAYMUhB4CJxCBVUSBFYJzB26CAz0LFwEBAQEBF4EkAQECBkUJgyAXgk6SU?= =?us-ascii?q?IlQBzcDRy8SgR9sAQgGBgcKBS4GAgwYFAQCExJNBhYCEgwKBhMOQRAXDA8DE?= =?us-ascii?q?gMPAQcCCRAIEiUIAwIDCAMCAyYCAxYJDgMdCAoYEhASAgQRGgsIAxY/CQIED?= =?us-ascii?q?gNCCA4DEQQDDxgJEggQBAYDMgwlCwMFDw0BBgMGAgUFAQMgAxQDBSQHAyEPJ?= =?us-ascii?q?g0NBCIdAwMFJQMCAhsHAgIDAgYVBgICGFQ5CAQIBCsjDwUCBy8FBC8CHgQFB?= =?us-ascii?q?hEIAhYCBgQFAgQEFgIQCAIIJxcHEzMZAQVZEAkhFgYoEAUGFQMhRyYFRQ8oM?= =?us-ascii?q?zY8LB8bCoEVKgkiFgMEBAMCBhoDAyICEC4xAxUGKRMUGhMJK30JAgMidAMDB?= =?us-ascii?q?CwcBhyZPoQwJQ5FWhQbKQEBUAgFHgoHBAgcNANHCw2SLx0EjhuKaJU9NAeDV?= =?us-ascii?q?IE+BgyIMIEijQOIJIN2gVCKdJgtIZZYIIIqhwGBFAmCSoIMkiMrCBiFHYFOK?= =?us-ascii?q?oFNHgwHMxowQ4I0ATMJCQE7AQMCDQECAgMBAgECCQEBAo9DAQmCQoJZggA7h?= =?us-ascii?q?Uw/NAIBATcCBgEKAQEDCYVjAQEFEwsBiCNaAQE?= IronPort-PHdr: A9a23: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 l570A== IronPort-Data: A9a23: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 28JSw+/Lw== IronPort-HdrOrdr: A9a23:Pe3bMqNQOY8fEMBcTsyjsMiBIKoaSvp037BL7TEXdfUxSKalfq +V7ZcmPHPP6Ar5O0tApTnjAtjjfZq0z/ccirX5Vo3SOTUO1lHYSL2KLrGP/9QjIUDDHyJmup uIupIRNOHN X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.92,283,1650924000"; d="scan'208,217";a="46079247" X-MGA-submission: =?us-ascii?q?MDFGsOJZGDuKJnXEpH6BJ7agt78ijP78hXIqvD?= =?us-ascii?q?6kr3asztdloOYH8lFuzPEsh2IfK0i2tuFmApRzs0lDt0m+pyoiWgpg4b?= =?us-ascii?q?seMHehnptZhVAIGSQ+ONyxoyiA59sDJdp7sis9l3FdTQ/KLDiBLA6skF?= =?us-ascii?q?Dmo5HfD9MwVjHcgtWKsDL8iA=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; 19 Jul 2022 10:59:01 +0200 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 3CDE15646BE; Tue, 19 Jul 2022 10:59:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1658221140; bh=K3GbO6c826eVCH6vTJbSMs+4AmhBW1NjmRjffQioGwo=; h=From:To:Subject:Date:Message-ID; b=N/iys5FvxlFs1ZWYF187k4t9Ls15hXBOMBPXbzNIj37JuwIa5GrHlEYgeoQJ3RAGP AJ7dfkTCQkGh+1KYGF7Z4BqFyWqz3MQPKwnXFYSu7tS/o8OiN6CrFA8/O7THt59ysq Bcs3US+9Fveozzn0x9xJrmRKYXxKVDWGnxM8ifkc= From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr Date: Tue, 19 Jul 2022 10:58:59 +0200 Message-ID: <87tu7djx64.fsf@m4x.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Jul 19 10:59:00 2022 +0200 (CEST)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.499643, queueID=8A0BE564772 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: 18822 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 ZWsgb2YgSnVseSAxMiB0byAxOSwNCjIwMjIuDQoNClRhYmxlIG9mIENvbnRlbnRzDQrilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KR29wY2FtbC1t b2RlIGFuZCBHb3BjYW1sLW1vZGUgbWVybGluICgwLjAuNikgLSBQaG9lbml4IHJlbGVhc2UgKFN1 cHBvcnQgZm9yIE9DYW1sIDQuMTQuMCEpDQpTYW5kbWFyayBOaWdodGx5IC0gQmVuY2htYXJraW5n IGFzIGEgU2VydmljZQ0KT0NhbWxGb3JtYXQgV2ViIENvbmZpZ3VyYXRvcg0KSmFuZSBTdHJlZXQg aXMgSGlyaW5nIEZyb250IEVuZCBFbmdpbmVlcnMNCkJBUCAyLjUuMCBSZWxlYXNlDQpXaHkgSSB1 c2VkIE9DYW1sIHRvIGRldmVsb3BlZCBhIHV0aWxpdHkgdG8gZG93bmxvYWQgSmlyYSBpdGVtcw0K TGlxdWlkc29hcCAyLjEuMA0KVmltIG5vdyBoaWdobGlnaHRzIHR5cGVzLCBmZWVkYmFjayB3ZWxj b21lDQpPdGhlciBPQ2FtbCBOZXdzDQpPbGQgQ1dODQoNCg0KR29wY2FtbC1tb2RlIGFuZCBHb3Bj YW1sLW1vZGUgbWVybGluICgwLjAuNikgLSBQaG9lbml4IHJlbGVhc2UgKFN1cHBvcnQgZm9yIE9D YW1sIDQuMTQuMCEpDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAN Cg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Fubi1nb3BjYW1s LW1vZGUtYW5kLWdvcGNhbWwtbW9kZS1tZXJsaW4tMC0wLTYtcGhvZW5peC1yZWxlYXNlLXN1cHBv cnQtZm9yLW9jYW1sLTQtMTQtMC8xMDE2NC8xPg0KDQoNCktpcmFuIEdvcGluYXRoYW4gYW5ub3Vu Y2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBMaWtlIHRoZSAqcGhvZW5peCosIC9Hb3Bj YW1sLW1vZGUvICpyaXNlcyogYWdhaW4gZnJvbSB0aGUgYXNoZXMh4oCmDQoNCiAg4oCmdGhpcyB0 aW1lIHdpdGggc3VwcG9ydCBmb3IgT0NhbWwgNC4xNC4wIGFuZCBPQ2FtbCA0LjEzLjAgKGJ5IHBv cHVsYXINCiAgZGVtYW5kKQ0KDQogIFNlZSB0aGUgW29yaWdpbmFsIHJlbGVhc2UgcG9zdCBdIGZv ciBkZXRhaWxlZCBpbnN0cnVjdGlvbnMgb24gaG93IHlvdQ0KICBjYW4gaW5zdGFsbCBpdC4NCg0K DQpbb3JpZ2luYWwgcmVsZWFzZSBwb3N0IF0NCjxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3Qv aW50cm9kdWNpbmctZ29wY2FtbC1tb2RlLXN0cnVjdHVyYWwtb2NhbWwtZWRpdGluZy81MzEwPg0K DQpTY3JlZW5zaG90cyAoaWYgeW91IGhhdmVuJ3Qgc2VlbiB0aGVtIGJlZm9yZSkNCuKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjA0KDQogIDxodHRwczovL2dsb2JhbC5kaXNjb3Vyc2UtY2RuLmNvbS9zdGFu ZGFyZDExL3VwbG9hZHMvb2NhbWwvb3JpZ2luYWwvMlgvYS9hYmMxZmYwYjVkYmJlZmUyYmViMTUw ZjJjMDkxNDhjYjU0NzJlY2UyLmdpZj4NCg0KICA8aHR0cHM6Ly9nbG9iYWwuZGlzY291cnNlLWNk bi5jb20vc3RhbmRhcmQxMS91cGxvYWRzL29jYW1sL29yaWdpbmFsLzJYLzEvMWQ0M2UwZjQyY2Mx N2EzMDA1M2VlNGM3MTQ2MGU3MGU0MDYxZjcxMS5naWY+DQoNCg0KVmlkZW8NCuKVjOKVjOKVjOKV jOKVjA0KDQogIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUtpcFJ1aUxYWUVvPg0K DQoNCldoYXQncyBuZXh0Pw0K4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWMDQoN CiAg4oCiIFN1cHBvcnQgZm9yIE9DYW1sIDUuMA0KICDigKIgQmV0dGVyIGVyZ29ub21pY3MgZm9y IHBpcGluZyAoaS5lIGBfIHw+IF8nKQ0KICDigKIg4oCmIHlvdSBkZWNpZGUhIChmZWF0dXJlIHJl cXVlc3RzL3B1bGwgcmVxdWVzdHMgd2VsY29tZSEpDQoNCg0KU2FuZG1hcmsgTmlnaHRseSAtIEJl bmNobWFya2luZyBhcyBhIFNlcnZpY2UNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6 DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLXNhbmRtYXJrLW5pZ2h0bHktYmVu Y2htYXJraW5nLWFzLWEtc2VydmljZS8xMDE3NC8xPg0KDQoNClNoYWt0aGkgS2FubmFuIGFubm91 bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgVGFyaWRlcyBpcyBoYXBweSB0byBhbm5vdW5jZSBT YW5kbWFyayBOaWdodGx5IGJlbmNobWFya2luZyBhcyBhDQogIHNlcnZpY2UuIHRsO2RyIE9DYW1s IGNvbXBpbGVyIGRldmVsb3BlcnMgY2FuIG5vdyBwb2ludCBkZXZlbG9wbWVudA0KICBicmFuY2hl cyBhdCB0aGUgc2VydmljZSBhbmQgZ2V0IHNlcXVlbnRpYWwgYW5kIHBhcmFsbGVsIGJlbmNobWFy aw0KICByZXN1bHRzIGF0IDxodHRwczovL3NhbmRtYXJrLnRhcmlkZXMuY29tPi4NCg0KICBbU2Fu ZG1hcmtdIGlzIGEgY29sbGVjdGlvbiBvZiBzZXF1ZW50aWFsIGFuZCBwYXJhbGxlbCBPQ2FtbA0K ICBiZW5jaG1hcmtzLCBpdHMgZGVwZW5kZW5jaWVzLCBhbmQgdGhlIHNjcmlwdHMgdG8gcnVuIHRo ZSBiZW5jaG1hcmtzDQogIGFuZCBjb2xsZWN0IHRoZSByZXN1bHRzLiBTYW5kbWFyayB3YXMgZGV2 ZWxvcGVkIGZvciB0aGUgTXVsdGljb3JlDQogIE9DYW1sIHByb2plY3QgaW4gb3JkZXIgdG8gKGEp IGVuc3VyZSB0aGF0IE9DYW1sIDUgKHdpdGggbXVsdGljb3JlDQogIHN1cHBvcnQpIGRvZXMgbm90 IGludHJvZHVjZSByZWdyZXNzaW9ucyBmb3Igc2VxdWVudGlhbCBwcm9ncmFtcw0KICBjb21wYXJl ZCB0byBzZXF1ZW50aWFsIE9DYW1sIDQgYW5kIChiKSBPQ2FtbCA1IHByb2dyYW1zIHNjYWxlIHdl bGwNCiAgd2l0aCBtdWx0aXBsZSBjb3Jlcy4gSW4gb3JkZXIgdG8gcmVkdWNlIHRoZSBub2lzZSBh bmQgZ2V0IGFjdGlvbmFibGUNCiAgcmVzdWx0cywgU2FuZG1hcmsgaXMgdHlwaWNhbGx5IHJ1biBv biBbdHVuZWQgbWFjaGluZXNdLiAgVGhpcyBtYWtlcyBpdA0KICBoYXJkZXIgZm9yIE9DYW1sIGRl dmVsb3BlcnMgdG8gdXNlIFNhbmRtYXJrIGZvciBkZXZlbG9wbWVudCB3aG8gbWF5DQogIG5vdCBo YXZlIHR1bmVkIG1hY2hpbmVzIHdpdGggYSBsYXJnZSBudW1iZXIgb2YgY29yZXMuDQoNCiAgVG8g YWRkcmVzcyB0aGlzLCB3ZSBpbnRyb2R1Y2UgU2FuZG1hcmsgTmlnaHRseSBzZXJ2aWNlIHdoaWNo IHJ1bnMgdGhlDQogIHNlcXVlbnRpYWwgYW5kIHBhcmFsbGVsIGJlbmNobWFya3MgZm9yIGEgc2V0 IG9mIGNvbXBpbGVyIC92YXJpYW50cy8NCiAgKGJyYW5jaC9jb21taXQvUFIgKyBjb21waWxlciAm IHJ1bnRpbWUgb3B0aW9ucykgb24gdHdvIHR1bmVkIG1hY2hpbmVzOg0KDQogIOKAoiBUdXJpbmcg KDI4IGNvcmVzLCBJbnRlbChSKSBYZW9uKFIpIEdvbGQgNTEyMCBDUFUgQCAyLjIwR0h6LCA2NCBH Qg0KICAgIFJBTSkNCiAg4oCiIE5hdmFqbyAoMTI4IGNvcmVzLCBBTUQgRVBZQyA3NTUxIDMyLUNv cmUgUHJvY2Vzc29yLCA1MDQgR0IgUkFNKQ0KDQogIE9DYW1sIGRldmVsb3BlcnMgY2FuIHJlcXVl c3QgdGhlaXIgZGV2ZWxvcG1lbnQgYnJhbmNoZXMgdG8gYmUgYWRkZWQgdG8NCiAgdGhlIG5pZ2h0 bHkgcnVucyBieSBhZGRpbmcgaXQgdG8gW3NhbmRtYXJrLW5pZ2h0bHktY29uZmlnXS4gVGhlDQog IHJlc3VsdHMgd2lsbCBhcHBlYXIgdGhlIGZvbGxvd2luZyBkYXkgYXQNCiAgPGh0dHBzOi8vc2Fu ZG1hcmsudGFyaWRlcy5jb20+Lg0KDQogIEhlcmUgaXMgYW4gaWxsdXN0cmF0aW9uIG9mIHNlcXVl bnRpYWwgYmVuY2htYXJrIHJlc3VsdHMgZnJvbSB0aGUNCiAgc2VydmljZToNCg0KICA8aHR0cHM6 Ly9pLmltZ3VyLmNvbS9NbjdWWmt5LnBuZz4NCg0KICBZb3Ugc2hvdWxkIGZpcnN0IHNwZWNpZnkg dGhlIGBudW1iZXIgb2YgdmFyaWFudHMnIHRoYXQgeW91IHdhbnQgZm9yDQogIGNvbXBhcmlzb24s IGFuZCB0aGVuIHNlbGVjdCBlaXRoZXIgdGhlIGBuYXZham8nIG9yIGB0dXJpbmcnDQogIGhvc3Ru YW1lcy4gVGhlIGRhdGVzIGZvciB3aGljaCBiZW5jaG1hcmsgcmVzdWx0cyBhcmUgYXZhaWxhYmxl IGFyZQ0KICB0aGVuIGxpc3RlZCBpbiB0aGUgYGRhdGUnIGNvbHVtbi4gSWYgdGhlcmUgYXJlIG1v cmUgdGhhbiBvbmUgcmVzdWx0IG9uDQogIGEgZ2l2ZW4gZGF5LCB0aGVuIHRoZSBzcGVjaWZpYyB2 YXJpYW50IG5hbWUsIFNIQTEgY29tbWl0IGFuZCBkYXRlIGFyZQ0KICBkaXNwbGF5ZWQgdG9nZXRo ZXIgZm9yIHNlbGVjdGlvbi4gWW91IG5lZWQgdG8gY2hvb3NlIG9uZSBvZiB0aGUNCiAgdmFyaWFu dHMgYXMgYSBiYXNlbGluZSBmb3IgY29tcGFyaXNvbi4gSW4gdGhlIGZvbGxvd2luZyBncmFwaCwg dGhlDQogIGA1LjEuMCt0cnVuaytzZXF1ZW50aWFsXzIwMjIwNzEyXzkyMGZiOGUnIGJ1aWxkIG9u IHRoZSBgbmF2YWpvJyBzZXJ2ZXINCiAgaGFzIGJlZW4gY2hvc2VuIGFzIHRoZSBiYXNlbGluZSwg YW5kIHlvdSBjYW4gc2VlIHRoZSBub3JtYWxpemVkIHRpbWUNCiAgKHNlY29uZHMpIGNvbXBhcmlz b24gZm9yIHRoZSB2YXJpb3VzIFNhbmRtYXJrIGJlbmNobWFya3MgZm9yIGJvdGgNCiAgYDUuMS4w K3RydW5rK3NlcXVlbnRpYWxfMjAyMjA3MTNfYzc1OTg5MCcgYW5kDQogIGA1LjEuMCt0cnVuaytz ZXF1ZW50aWFsXzIwMjIwNzE0XzYwNmFiZTgnIHZhcmlhbnRzLiBXZSBvYnNlcnZlIHRoYXQNCiAg dGhlIGBtYXRyaXhfbXVsdGlwbGljYXRpb24nIGFuZCBgc29saScgYmVuY2htYXJrIGhhdmUgYmVj b21lIDUlIHNsb3dlcg0KICBhcyBjb21wYXJlZCB0byB0aGUgSnVseSAxMiwgMjAyMiBuaWdodGx5 IHJ1bi4NCg0KICA8aHR0cHM6Ly9pLmltZ3VyLmNvbS83YjB5UzBoLnBuZz4NCg0KICBTaW1pbGFy bHksIHRoZSBub3JtYWxpemVkIE1heFJTUyAoS0IpIGdyYXBoIGZvciB0aGUgc2FtZSBiYXNlbGlu ZSBhbmQNCiAgdmFyaWFudHMgY2hvc2VuIGZvciBjb21wYXJpc29uIGlzIGlsbHVzdHJhdGVkIGJl bG93Og0KDQogIDxodHRwczovL2kuaW1ndXIuY29tL1NmTWJFaXUucG5nPg0KDQogIFRoZSBgbWFu ZGVsYnJvdDYnIGFuZCBgZmFubmt1Y2hyZWR1eCcgYmVuY2htYXJrcyBoYXZlIGluY3JlYXNlZCB0 aGUNCiAgTWF4UlNTIChLQikgYnkgMyUgYXMgY29tcGFyZWQgdG8gdGhlIGJhc2VsaW5lIHZhcmlh bnQsIHdoZXJlYXMsIHRoZQ0KICBtZXRyaWMgaGFzIHNpZ25pZmljYW50bHkgaW1wcm92ZWQgZm9y IHRoZSBgbGV4aWZpLWcycHAnIGFuZA0KICBgc2VxdWVuY2VfY3BzJyBiZW5jaG1hcmtzLg0KDQog IFRoZSBwYXJhbGxlbCBiZW5jaG1hcmsgc3BlZWR1cCByZXN1bHRzIGFyZSBhbHNvIGF2YWlsYWJs ZSBmcm9tIHRoZQ0KICBTYW5kbWFyayBuaWdodGx5IHJ1bnMuDQoNCiAgPGh0dHBzOi8vaS5pbWd1 ci5jb20vdUtGRFhDdi5wbmc+DQoNCiAgPGh0dHBzOi8vaS5pbWd1ci5jb20vMjRCR1hWWi5wbmc+ DQoNCiAgV2Ugb2JzZXJ2ZSBmcm9tIHRoZSBzcGVlZHVwIGdyYXBoIHRoYXQgdGhlcmUgaXMgbm90 IG11Y2ggZGlmZmVyZW5jZQ0KICBiZXR3ZWVuIGA1LjEuMCt0cnVuaytwYXJhbGxlbF8yMDIyMDcx NF82MDZhYmU4JyBhbmQgdGhlDQogIGA1LjEuMCt0cnVuaytkZWNvdXBsZV8yMDIyMDcwNl9lYjdh MzhkJyBkZXZlbG9wZXIgYnJhbmNoIHJlc3VsdHMuIFRoZQ0KICB4LWF4aXMgaW4gdGhlIGdyYXBo IHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBkb21haW5zLCB3aGlsZSB0aGUgeS1heGlzDQogIGNv cnJlc3BvbmRzIHRvIHRoZSBzcGVlZHVwLiBUaGUgbnVtYmVyIGluIHRoZSBwYXJlbnRoZXNpcyBh Z2FpbnN0IGVhY2gNCiAgYmVuY2htYXJrIHJlZmVycyB0byB0aGUgY29ycmVzcG9uZGluZyBydW5u aW5nIHRpbWUgb2YgdGhlIHNlcXVlbnRpYWwNCiAgYmVuY2htYXJrLiBUaGVzZSBjb21wYXJpc29u IHJlc3VsdHMgYXJlIHVzZWZ1bCB0byBvYnNlcnZlIGFueQ0KICBwZXJmb3JtYW5jZSByZWdyZXNz aW9ucyBvdmVyIHRpbWUuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUNCiAgYHR1cmluZycg bWFjaGluZSByZXN1bHRzIGZvciB0aGUgcGFyYWxsZWwgYmVuY2htYXJrcyBhcyBpdCBpcyB0dW5l ZC4NCg0KICBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgU2FuZG1hcmsgbmlnaHRseSBmb3IgT0Nh bWwgY29tcGlsZXINCiAgZGV2ZWxvcG1lbnQsIHBsZWFzZSBkbyBwaW5nIHVzIGZvciBhY2Nlc3Mg dG8gdGhlDQogIFtzYW5kbWFyay1uaWdodGx5LWNvbmZpZ10gcmVwb3NpdG9yeSBzbyB0aGF0IHlv dSBtYXkgYWRkIHlvdXIgb3duDQogIGNvbXBpbGVyIHZhcmlhbnRzLg0KDQoNCltTYW5kbWFya10g PGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC1iZW5jaC9zYW5kbWFyaz4NCg0KW3R1bmVkIG1hY2hp bmVzXQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC1iZW5jaC9vY2FtbF9iZW5jaF9zY3JpcHRz I25vdGVzLW9uLWhhcmR3YXJlLWFuZC1vcy1zZXR0aW5ncy1mb3ItbGludXgtYmVuY2htYXJraW5n Pg0KDQpbc2FuZG1hcmstbmlnaHRseS1jb25maWddDQo8aHR0cHM6Ly9naXRodWIuY29tL29jYW1s LWJlbmNoL3NhbmRtYXJrLW5pZ2h0bHktY29uZmlnPg0KDQoNCk9DYW1sRm9ybWF0IFdlYiBDb25m aWd1cmF0b3INCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxo dHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLW9jYW1sZm9ybWF0LXdlYi1jb25maWd1cmF0 b3IvMTAxMDMvNj4NCg0KDQpMb3VpcyBSb2Now6kgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBUaGFu a3MgdG8gW1BvbWJhIE1hZ2FyXSB3ZSBub3cgaGF2ZSBhIGNvZGUgZWRpdG9yIHdpdGgNCiAgaGln aGxpZ2h0aW5nLiBJdCBob3BlZnVsbHkgc2hvdWxkIGFsc28gc29sdmUgdGhlIGxhY2sgb2YgbW9u b3NwYWNlDQogIGZvbnQgb24gc2FmYXJpLg0KDQogIDxodHRwczovL2dsb2JhbC5kaXNjb3Vyc2Ut Y2RuLmNvbS9zdGFuZGFyZDExL3VwbG9hZHMvb2NhbWwvb3B0aW1pemVkLzJYLzkvOTZmYjM1MzY0 MDljNTU1MzkyNjIyOGYwOTc4MTJkNWI2M2JkNmRiOF8yXzEzODB4Nzk4LmpwZWc+DQoNCg0KW1Bv bWJhIE1hZ2FyXSA8aHR0cHM6Ly9naXRodWIuY29tL3BqbXA+DQoNCg0KSmFuZSBTdHJlZXQgaXMg SGlyaW5nIEZyb250IEVuZCBFbmdpbmVlcnMNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxo dHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvamFuZS1zdHJlZXQtaXMtaGlyaW5nLWZyb250LWVu ZC1lbmdpbmVlcnMvMTAxODMvMT4NCg0KDQpNYXR0IFJ1c3NlbGwgYW5ub3VuY2VkDQrilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIANCg0KICBKYW5lIFN0cmVldCBpcyBsb29raW5nIHRvIGhpcmUgRnJvbnQgRW5kIEVuZ2luZWVy cyB0aGF0IHdhbnQgdG8gZGVzaWduDQogIGFuZCBidWlsZCBvdXIgbmV4dC1nZW5lcmF0aW9uIG9m IGJyb3dzZXItYmFzZWQgdG9vbHMgZm9yIG9wZXJhdGluZyBvdXINCiAgdHJhZGluZyBpbmZyYXN0 cnVjdHVyZSAoaW4gT0NhbWwpLiAgV2XigJlyZSBidWlsZGluZyB0b29scyBmb3IgZXhwZXJ0DQog IHVzZXJzLCBhbmQgd2FudCB0byBtYWludGFpbiBhIGhpZ2ggVVggYmFyIHdoaWxlIGJ1aWxkaW5n IHRvb2xzIHRoYXQNCiAgYXJlIHBvd2VyZnVsIGFuZCBmbGV4aWJsZSwgc28gaXTigJlzIGEgY2hh bGxlbmdpbmcgZG9tYWluLg0KDQogIFJvbiBNaW5za3kgd3JvdGUgYSBiaXQgbW9yZSBhYm91dCB0 aGUgcm9sZSBoZXJlOg0KICA8aHR0cHM6Ly90d2l0dGVyLmNvbS95bWluc2t5L3N0YXR1cy8xNTQx NjA1NDEwNjkxNTk2Mjg5P3M9MjAmdD15eXJoR3g3VG5Od1BJd2Rab0FycEd3Pg0KDQogIEFuZCB5 b3UgY2FuIGZpbmQgYSBsaW5rIHRvIHRoZSBqb2IgZGVzY3JpcHRpb25zIGFuZCB0aGUgYXBwbGlj YXRpb24NCiAgcGFnZSBoZXJlOg0KDQogIOKAoiBOWUM6IFtGcm9udCBFbmQgU29mdHdhcmUgRW5n aW5lZXI6IEV4cGVyaWVuY2VkOiBKYW5lIFN0cmVldF0NCiAg4oCiIExETjogW0Zyb250IEVuZCBT b2Z0d2FyZSBFbmdpbmVlcjogRXhwZXJpZW5jZWQ6IEphbmUgU3RyZWV0XQ0KDQoNCltGcm9udCBF bmQgU29mdHdhcmUgRW5naW5lZXI6IEV4cGVyaWVuY2VkOiBKYW5lIFN0cmVldF0NCjxodHRwczov L3d3dy5qYW5lc3RyZWV0LmNvbS9qb2luLWphbmUtc3RyZWV0L3Bvc2l0aW9uLzYxODQ1MjkwMDIv Pg0KDQpbRnJvbnQgRW5kIFNvZnR3YXJlIEVuZ2luZWVyOiBFeHBlcmllbmNlZDogSmFuZSBTdHJl ZXRdDQo8aHR0cHM6Ly93d3cuamFuZXN0cmVldC5jb20vam9pbi1qYW5lLXN0cmVldC9wb3NpdGlv bi82MjM2MDAyMDAyLz4NCg0KDQpCQVAgMi41LjAgUmVsZWFzZQ0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZTogPGh0dHBzOi8v ZGlzY3Vzcy5vY2FtbC5vcmcvdC9hbm4tYmFwLTItNS0wLXJlbGVhc2UvMTAxODUvMT4NCg0KDQpJ dmFuIEdvdG92Y2hpdHMgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBXZSBhcmUg cHJvdWQgdG8gYW5ub3VuY2UgdGhlIDIuNS4wIHJlbGVhc2Ugb2YgdGhlIENhcm5lZ2llIE1lbGxv bg0KICBVbml2ZXJzaXR5IEJpbmFyeSBBbmFseXNpcyBQbGF0Zm9ybSAoQ01VIEJBUCkuIFRoaXMg aXMgb25lIG9mIHRoZQ0KICBiaWdnZXN0IHJlbGVhc2VzIG9mIEJBUCB3aXRoIGxvdHMgb2YgbmV3 IFtmZWF0dXJlcyBhbmQgYnVnIGZpeGVzXS4gSW4NCiAgdGhpcyByZWxlYXNlLCB3ZSBzaWduaWZp Y2FudGx5IGltcHJvdmVkIEJBUCBwZXJmb3JtYW5jZSAoaW4gc29tZSB1c2UNCiAgY2FzZXMgYnkg YSBmYWN0b3Igb2YgdGhyZWUpIGFuZCByZWR1Y2VkIG1lbW9yeSBjb25zdW1wdGlvbiAodXAgdG8g YQ0KICBmYWN0b3Igb2YgdHdvKS4gSW4gYWRkaXRpb24sIHdlIGRldmlzZWQgYSBuZXcgbWV0aG9k IGZvciByZXByZXNlbnRpbmcNCiAgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9ucyB0aGF0IGlzIHNj YWxhYmxlIGFuZCBlZmZpY2llbnQgYW5kIG5vdyB3ZQ0KICBlbmFibGUgZmxvYXRpbmctcG9pbnQg bGlmdGVycyBmb3IgYWxsIHg4NiBiaW5hcmllcyB3aXRoIGxpdHRsZSB0byBubw0KICBleHRyYSBv dmVyaGVhZC4gVGhlIGZsb2F0aW5nLXBvaW50IHN1cHBvcnQgZm9yIG90aGVyIHRhcmdldHMgaXMN CiAgY29taW5nISBXZSBhbHNvIHJld3JvdGUgdGhlIEFCSSBzcGVjaWZpY2F0aW9ucyBhbmQgbm93 IHN1cHBvcnQgZG96ZW5zDQogIG9mIGRpZmZlcmVudCBBQkkuICBUaGUgbmV3IEFCSXMgc3VwcG9y dCBjYWxsaW5nIGNvbnZlbnRpb25zIGZvcg0KICBzdHJ1Y3R1cmVzIGFuZCBmbG9hdGluZy1wb2lu dCB2YWx1ZXMgYW5kIHRoZSBgYmFwLWNgIGxpYnJhcnkgd2FzDQogIHNpZ25pZmljYW50bHkgZXhw YW5kZWQgd2l0aCBsb3RzIG9mIG5ldyBmdW5jdGlvbnMgYW5kIHR5cGVzIHRvDQogIGRlc2NyaWJl IEMgdHlwZXMgYW5kIEMgb2JqZWN0IGxheW91dHMuDQoNCiAgWW91IGNhbiBpbnN0YWxsIGJhcCB3 aXRoDQoNCiAg4pSM4pSA4pSA4pSA4pSADQogIOKUgiBvcGFtIGluc3RhbGwgYmFwLjIuNS4wDQog IOKUlOKUgOKUgOKUgOKUgA0KDQogIERvIG5vdCBmb3JnZXQgdG8gYG9wYW0gdXBkYXRlJyBiZWZv cmUgdGhhdC4NCg0KDQpbZmVhdHVyZXMgYW5kIGJ1ZyBmaXhlc10NCjxodHRwczovL2dpdGh1Yi5j b20vQmluYXJ5QW5hbHlzaXNQbGF0Zm9ybS9iYXAvcmVsZWFzZXMvdGFnL3YyLjUuMD4NCg0KDQpX aHkgSSB1c2VkIE9DYW1sIHRvIGRldmVsb3BlZCBhIHV0aWxpdHkgdG8gZG93bmxvYWQgSmlyYSBp dGVtcw0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5v Y2FtbC5vcmcvdC93aHktaS11c2VkLW9jYW1sLXRvLWRldmVsb3BlZC1hLXV0aWxpdHktdG8tZG93 bmxvYWQtamlyYS1pdGVtcy8xMDE4Ni8xPg0KDQoNCldpbGxlbSBIb2VrIGFubm91bmNlZA0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSADQoNCiAgTm90IGEgdGVjaG5pY2FsIHBvc3Qg4oCTIGJ1dCBteSBub3RlcyBvbiB3aHkgSSBk ZWNpZGVkIHRvIHVzZWQgT0NhbWwgdG8NCiAgZGV2ZWxvcCBhIHNtYWxsIHV0aWxpdHkgdGhhdCBk b3dubG9hZCBKaXJhIGl0ZW1zIHRvIFNRTGl0ZQ0KICBbaHR0cHM6Ly93aG9lay5jb20vYi9qaXJh LXRvLXNxbGl0ZS13aXRoLXNjcnVtZG9nXQ0KDQogIFRoZSBIYWNrZXIgTmV3cyBjb21tZW50cyBo ZXJlDQogIFtodHRwczovL25ld3MueWNvbWJpbmF0b3IuY29tL2l0ZW0/aWQ9MzIxMDk0NjFdDQoN Cg0KW2h0dHBzOi8vd2hvZWsuY29tL2IvamlyYS10by1zcWxpdGUtd2l0aC1zY3J1bWRvZ10NCjxo dHRwczovL3dob2VrLmNvbS9iL2ppcmEtdG8tc3FsaXRlLXdpdGgtc2NydW1kb2c+DQoNCltodHRw czovL25ld3MueWNvbWJpbmF0b3IuY29tL2l0ZW0/aWQ9MzIxMDk0NjFdDQo8aHR0cHM6Ly9uZXdz Lnljb21iaW5hdG9yLmNvbS9pdGVtP2lkPTMyMTA5NDYxPg0KDQoNCkxpcXVpZHNvYXAgMi4xLjAN CuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFy Y2hpdmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLWxpcXVpZHNvYXAtMi0xLTAv MTAxOTIvMT4NCg0KDQpSb21haW4gQmVhdXhpcyBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0K DQogIExpcXVpZHNvYXAgYDIuMS4wJyB3YXMganVzdCByZWxlYXNlZCwgc29tZSBgMTAgbW9udGhz IGFmdGVyIHRoZQ0KICBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIH4yLjAueCcgcmVsZWFzZSBjeWNs ZSENCg0KICBUaGUgcmVsZWFzZSBpcyBhdmFpbGFibGUgaGVyZToNCiAgPGh0dHBzOi8vZ2l0aHVi LmNvbS9zYXZvbmV0L2xpcXVpZHNvYXAvcmVsZWFzZXMvdGFnL3YyLjEuMD4gYW5kIHNob3VsZA0K ICBiZSBjb21pbmcgdGhyb3VnaCBgb3BhbScgcHJldHR5IHNvb24uDQoNCg0K8J+klCAgV2hhdCBp cyBsaXF1aWRzb2FwPw0K4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM 4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWMDQoNCiAgTGlxdWlkc29hcCBpcyBhIHN0YXRpY2Fs bHktdHlwZWQsIHR5cGUtaW5mZXJyZWQsIGZ1bmN0aW9uYWwgc2NyaXB0aW5nDQogIGxhbmd1YWdl IGVxdWlwcGVkIHdpdGggc3BlY2lhbGl6ZWQgb3BlcmF0b3JzIHRvIGJ1aWxkIGF1ZGlvIGFuZCB2 aWRlbw0KICBzdHJlYW0gYXV0b21hdGlvbi4NCg0KICBUaGUgbGlxdWlkc29hcCBsYW5ndWFnZSBv ZmZlcnMgYWxsIHRoZSBmbGV4aWJpbGl0eSBhbmQgZXhwcmVzc2l2aXR5IG9mDQogIGEgZnVsbHkg ZmVhdHVyZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdG8gaGVscCBidWlsZCB5b3VyIG1lZGlhDQog IHN0cmVhbXMuDQoNCiAgVXNpbmcgbGlxdWlkc29hcCwgb25lIGNhbiB2ZXJ5IHF1aWNrbHkgc3Rh bmQgdXAgYSBtZWRpYSBzdHJlYW1pbmcNCiAgcGxhdGZvcm0gdGhhdCBjYW4gcm90YXRlIGZpbGVz IGZyb20gcGxheWxpc3RzLCBhY2NlcHQgbGl2ZSBESiBpbnB1dCwNCiAgbXV4IGF1ZGlvIGFuZCB2 aWRlbywgZW5jb2RlIChvciBub3QhKSBhbmQgc2VuZCB0aGUgcmVzdWx0aW5nIGRhdGEgdG8NCiAg eW91dHViZSwgaWNlY2FzdCwgSExTIGFuZCBtb3JlLi4NCg0KDQo6d2hpdGVfY2hlY2tfbWFyazog V2h5IGxpcXVpZHNvYXA/DQrilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzi lYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzi lYzilYwNCg0KICBXaGlsZSB0aGVyZSBhcmUgbWFueSB0b29scyB0aGF0IG9mZmVyIGNvbXBldGlu ZyBmZWF0dXJlcywgdGhlIHJlYWwNCiAgZGlmZmVyZW5jZSB3aXRoIGxpcXVpZHNvYXAgaXMgaXRz IHNjcmlwdGluZyBsYW5ndWFnZS4NCg0KICBTZXR0aW5nIHVwIHRvb2xzIHVzaW5nIGNvbmZpZ3Vy YXRpb24gZmlsZXMgaXMgb2Z0ZW4gZWFzaWVyIGFuZCBtb3JlDQogIHN0cmFpZ2h0IGZvcndhcmQs IGhvd2V2ZXIsIHdoZW4gaXQgY29tZXMgdG8gdGhlIGZpbmVyIGRldGFpbHMsIHN1Y2ggYXMNCiAg aW5zZXJ0aW5nIGppbmdsZXMgYmV0d2VlbiBzaG93cywgZGVmaW5pbmcgY3Jvc3NmYWRlcyBiZXR3 ZWVuIHRyYWNrcw0KICBhbmQgbW9yZSwgcG90ZW50aWFsbHksIGVhY2ggcHJvamVjdCBoYXMgaXRz IG93biBzZXQgb2YgZXhwZWN0YXRpb25zLA0KICBhbmQgdGhpcyBpcyB3aGVyZSBsaXF1aWRzb2Fw IGJlY29tZXMgcmVhbGx5IHVzZWZ1bCENCg0KDQo6emFwOu+4jyBXaGF0J3MgbmV3IGluIExpcXVp ZHNvYXAgMi4xLjA/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnphcDoNCuKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIExvdHMg b2YgdGhpbmdzIGhhdmUgYmVlbiBicmV3aW5nIHNpbmNlIHRoZSBgMi4wLjAnIHJlbGVhc2UuIFRo aXMgbmV3DQogIHJlbGVhc2UgYnJhbmNoIGlzIGludGVuZGVkIHRvIGJyaW5nIHVwIHNvbWUgb2Yg dGhlIGJyZWFraW5nIGNoYW5nZXMNCiAgdGhhdCB3ZXJlIGludHJvZHVjZWQgd2hpbGUgd2Uga2Vl cCB3b3JraW5nIG9uIG1vcmUgZXhjaXRpbmcgZnV0dXJlDQogIGNoYW5nZXMgdGhhdCB3ZSBoYXZl IG9uIG91ciBbcm9hZG1hcF0NCg0KICBTb21lIG5vdGljZWFibGUgY2hhbmdlcyBpbmNsdWRlOg0K DQoNCltyb2FkbWFwXSA8aHR0cHM6Ly9naXRodWIuY29tL3Nhdm9uZXQvbGlxdWlkc29hcC9ibG9i L21haW4vUk9BRE1BUC5tZD4NCg0KSW1wcm92ZWQgSlNPTiBwYXJzaW5nDQrilITilITilITilITi lITilITilITilITilITilITilITilITilITilITilITilITilITilITilITilITilIQNCg0KICBZ b3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIGRvOg0KICDilIzilIDilIDilIDilIANCiAg4pSCIGxl dCBqc29uLnBhcnNlICh7DQogIOKUgiAgIGZvbywNCiAg4pSCICAgYmxhLA0KICDilIIgICBnbmkN CiAg4pSCIH0gOiB7DQogIOKUgiAgIGZvbzogc3RyaW5nLA0KICDilIIgICBibGE6IGZsb2F0LA0K ICDilIIgICBnbmk6IGJvb2wNCiAg4pSCIH0pID0gJ3sgImZvbyI6ICJhYWJiY2MiLCAiYmxhIjog My4xNCwgImduaSI6IHRydWUgfScNCiAg4pSU4pSA4pSA4pSA4pSADQogIEZvciBhbnkgb25lIHdo byBoYXMgZXZlciB0cmllZCB0byBwYXJzZSBqc29uIGluIHRoZWlyIGxpcXVpZHNvYXANCiAgc2Ny aXB0cywgdGhpcyBpcyBnb25uYSBiZSBhIGdhbWUgY2hhbmdlci4gV2UgaGF2ZSBhIGRldGFpbGVk IGFydGljbGUNCiAgW2hlcmVdDQoNCg0KW2hlcmVdIDxodHRwczovL3d3dy5saXF1aWRzb2FwLmlu Zm8vZG9jLWRldi9qc29uLmh0bWw+DQoNCg0KUmVndWxhciBleHByZXNzaW9ucyBhcmUgbm93IGZp cnN0LWNsYXNzIGVudGl0aWVzLg0K4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE 4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE 4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSE4pSEDQoN CiAgVGhpcyBzaG91bGQgYmUgZmFtaWxpYXIgdG8gYW55b25lIHVzZWQgdG8gd29ya2luZyB3aXRo IEphdmFzY3JpcHQncw0KICByZWd1bGFyIGV4cHJlc3Npb24uIFNvLCBub3csIGluc3RlYWQgb2Yg ZG9pbmc6DQoNCiAg4pSM4pSA4pSA4pSA4pSADQogIOKUgiBzdHJpbmcubWF0Y2gocGF0dGVybj0i XFxkKyIsIHMpDQogIOKUlOKUgOKUgOKUgOKUgA0KDQogIFlvdSB3aWxsIG5vdyBkbzoNCg0KICDi lIzilIDilIDilIDilIANCiAg4pSCIHIvXGQrLy50ZXN0KHMpDQogIOKUlOKUgOKUgOKUgOKUgA0K DQogIFRoZXJlJ3MgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGlzIG5ldyBmZWF0dXJlIFto ZXJlXS4NCg0KDQpbaGVyZV0NCjxodHRwczovL3d3dy5saXF1aWRzb2FwLmluZm8vZG9jLWRldi9s YW5ndWFnZS5odG1sI3JlZ3VsYXJfZXhwcmVzc2lvbnM+DQoNCg0KVmltIG5vdyBoaWdobGlnaHRz IHR5cGVzLCBmZWVkYmFjayB3ZWxjb21lDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8 aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L3ZpbS1ub3ctaGlnaGxpZ2h0cy10eXBlcy1mZWVk YmFjay13ZWxjb21lLzEwMTk4LzE+DQoNCg0KTWHDq2xhbiBhbm5vdW5jZWQNCuKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIFtBIHBhdGNoXSBqdXN0 IG1hZGUgaXRzIHdheSB0byBbdGhlIGNvbW11bml0eS1tYWludGFpbmVkIFZpbSBmaWxlcyBmb3IN CiAgT0NhbWxdIChub3QgcHJvcGFnYXRlZCB0byB0aGUgW29mZmljaWFsIFZpbSBkaXN0cmlidXRp b25dLCB5ZXQpLCB0aGF0DQogIHRyaWVzIHRvIGhpZ2hsaWdodCB0eXBlcy4gSU1ITyB0aGUgcGF0 Y2ggaXMgbGFyZ2UgYW5kIGhhY2t5IHNvIHlvdSBtYXkNCiAgd2FudCB0byB0cnkgaXQgY2F1dGlv dXNseSwgYW5kICpmZWVkYmFjayB3b3VsZCBiZSBhcHByZWNpYXRlZCouIDotKQ0KDQogIFRoZSBm b3JtZXIgYmVoYXZpb3Igd2FzIHRvIGhpZ2hsaWdodCBpZGVudGlmaWVycyB0aGF0IGhhcHBlbmVk IHRvIGJlDQogIHRoZSBuYW1lIG9mIGEgYnVpbHRpbiB0eXBlIChzdWNoIGFzIGBpbnQnIG9yIGBs aXN0JyksIHJlZ2FyZGxlc3Mgb2YNCiAgd2hlcmUgdGhleSBhcHBlYXJlZC4gTm93LCBpbiBwcmlu Y2lwbGUsIGFsbCB0eXBlIGV4cHJlc3Npb25zIGNhbiBiZQ0KICBoaWdobGlnaHRlZCwgYW5kIGJl IHNvIG9ubHkgd2hlbiBpbiBhIHR5cGUgY29udGV4dC4gQnkgZGVmYXVsdCwgb25seQ0KICBidWls dGluIHR5cGVzIGFyZSBoaWdobGlnaHRlZCwgYnV0IHlvdSBjYW4gdW5sZWFzaCB0aGUgZnVsbCBw b3dlciBvZg0KICB0aGUgbmV3IGxpbnRlcjoNCg0KICDilIzilIDilIDilIDilIANCiAg4pSCICIg cHV0IHRoaXMgaW4gfi8udmltL2FmdGVyL3N5bnRheC9vY2FtbC52aW0gZm9yIGluc3RhbmNlOg0K ICDilIIgaGkgbGluayBvY2FtbFR5cGVDb25zdHIgICBUeXBlDQogIOKUgiBoaSBsaW5rIG9jYW1s VHlwZUJ1aWx0aW4gIFR5cGUNCiAg4pSCIGhpIGxpbmsgb2NhbWxUeXBlVmFyICAgICAgVHlwZQ0K ICDilIIgaGkgbGluayBvY2FtbFR5cGVBbnlWYXIgICBUeXBlDQogIOKUlOKUgOKUgOKUgOKUgA0K DQogIG9yIGZhbmNpZXIgKGlmIHlvdSBsaWtlIGV4Y2VzcyA6cmFpbmJvdzopOg0KDQogIOKUjOKU gOKUgOKUgOKUgA0KICDilIIgIiAxMTIgPSBsaWdodCBncmVlbiAodGhlIGNvbG9yIG9mIHRoZSDi gJxUeXBl4oCcIGhsIGdyb3VwIHdpdGggbXkgdGhlbWUpDQogIOKUgiBoaSBvY2FtbFR5cGVDb25z dHIgICAgICAgY3Rlcm1mZz0xMTINCiAg4pSCIGhpIG9jYW1sVHlwZUJ1aWx0aW4gICAgICBjdGVy bWZnPTExMiBjdGVybT1ib2xkDQogIOKUgiBoaSBvY2FtbFR5cGVWYXIgICAgICAgICAgY3Rlcm1m Zz0xMTIgY3Rlcm09aXRhbGljDQogIOKUgiBoaSBvY2FtbFR5cGVBbnlWYXIgICAgICAgY3Rlcm1m Zz0xMTIgY3Rlcm09Ym9sZA0KICDilJTilIDilIDilIDilIANCg0KICBFdmVuIGlmIHlvdSBkb27i gJl0IGNhcmUgYWJvdXQgaGlnaGxpZ2h0aW5nIHR5cGVzLCBhbGxvd2luZyB0aGUgbGludGVyDQog IHRvIGRpc2NyaW1pbmF0ZSBiZXR3ZWVuIHR5cGVzIGFuZCBleGNlcHRpb25zIGhhcyBzb21lIHRh bmdlbnRpYWwNCiAgYmVuZWZpdHMuDQoNCg0KW0EgcGF0Y2hdIDxodHRwczovL2dpdGh1Yi5jb20v b2NhbWwvdmltLW9jYW1sL3B1bGwvNzY+DQoNClt0aGUgY29tbXVuaXR5LW1haW50YWluZWQgVmlt IGZpbGVzIGZvciBPQ2FtbF0NCjxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvdmltLW9jYW1sPg0K DQpbb2ZmaWNpYWwgVmltIGRpc3RyaWJ1dGlvbl0NCjxodHRwczovL2dpdGh1Yi5jb20vdmltL3Zp bS90cmVlL21hc3Rlci9ydW50aW1lPg0KDQoNCk90aGVyIE9DYW1sIE5ld3MNCuKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQpGcm9tIHRoZSBvY2FtbC5v cmcgYmxvZw0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgSGVyZSBhcmUgbGlua3MgZnJvbSBtYW55IE9DYW1s IGJsb2dzIGFnZ3JlZ2F0ZWQgYXQgW3RoZSBvY2FtbC5vcmcNCiAgYmxvZ10uDQoNCiAg4oCiIFtG YXN0ZXIgSW5jcmVtZW50YWwgQnVpbGRzIHdpdGggRHVuZSAzXQ0KDQoNClt0aGUgb2NhbWwub3Jn IGJsb2ddIDxodHRwczovL29jYW1sLm9yZy9ibG9nLz4NCg0KW0Zhc3RlciBJbmNyZW1lbnRhbCBC dWlsZHMgd2l0aCBEdW5lIDNdDQo8aHR0cHM6Ly90YXJpZGVzLmNvbS9ibG9nLzIwMjItMDctMTIt ZmFzdGVyLWluY3JlbWVudGFsLWJ1aWxkcy13aXRoLWR1bmUtMz4NCg0KDQpPbGQgQ1dODQrilZDi lZDilZDilZDilZDilZDilZANCg0KICBJZiB5b3UgaGFwcGVuIHRvIG1pc3MgYSBDV04sIHlvdSBj YW4gW3NlbmQgbWUgYSBtZXNzYWdlXSBhbmQgSSdsbCBtYWlsDQogIGl0IHRvIHlvdSwgb3IgZ28g dGFrZSBhIGxvb2sgYXQgW3RoZSBhcmNoaXZlXSBvciB0aGUgW1JTUyBmZWVkIG9mIHRoZQ0KICBh cmNoaXZlc10uDQoNCiAgSWYgeW91IGFsc28gd2lzaCB0byByZWNlaXZlIGl0IGV2ZXJ5IHdlZWsg YnkgbWFpbCwgeW91IG1heSBzdWJzY3JpYmUNCiAgW29ubGluZV0uDQoNCiAgW0FsYW4gU2NobWl0 dF0NCg0KDQpbc2VuZCBtZSBhIG1lc3NhZ2VdIDxtYWlsdG86YWxhbi5zY2htaXR0QHBvbHl0ZWNo bmlxdWUub3JnPg0KDQpbdGhlIGFyY2hpdmVdIDxodHRwczovL2FsYW4ucGV0aXRlcG9tbWUubmV0 L2N3bi8+DQoNCltSU1MgZmVlZCBvZiB0aGUgYXJjaGl2ZXNdIDxodHRwczovL2FsYW4ucGV0aXRl cG9tbWUubmV0L2N3bi9jd24ucnNzPg0KDQpbb25saW5lXSA8aHR0cDovL2xpc3RzLmlkeWxsLm9y Zy9saXN0aW5mby9jYW1sLW5ld3Mtd2Vla2x5Lz4NCg0KW0FsYW4gU2NobWl0dF0gPGh0dHBzOi8v YWxhbi5wZXRpdGVwb21tZS5uZXQvPg0KDQo= --=-=-= 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 July 12 to 19, 2022.

Gopcaml-mode and Gopcaml-mode merlin (0.0.6) - Phoenix release= (Support for OCaml 4.14.0!)

Kiran Gopinathan announced

Like the phoenix, Gopcaml-mode rises again from the as= hes!…

…this time with support for OCaml 4.14.0 and OCaml 4.13.0 (by popula= r demand)

See the original release post for detailed instructions on how you can install it.

Screenshots (if you haven't seen them before)

3D"abc1ff0b5d=

3D"1d43e0f42c=

What's next?

  • Support for OCaml 5.0
  • Better ergonomics for piping (i.e _ |> _)
  • … you decide! (feature requests/pull requests welcome!)

Sandmark Nightly - Benchmarking as a Service

Shakthi Kannan announced

Tarides is happy to announce Sandmark Nightly benchmarking as a service. tl= ;dr OCaml compiler developers can now point development branches at the service and get sequential and parallel b= enchmark results at https://sandmark.tarides.com.

Sandmark is a colle= ction of sequential and parallel OCaml benchmarks, its dependencies, and the scripts to run the benchmarks and collect the results= . Sandmark was developed for the Multicore OCaml project in order to (a) ensure that OCaml 5 (with multicore support) = does not introduce regressions for sequential programs compared to sequential OCaml 4 and (b) OCaml 5 programs= scale well with multiple cores. In order to reduce the noise and get actionable results, Sandmark is typically run o= n tuned machines. This makes it harder for OCaml developers to use Sandmark for development w= ho may not have tuned machines with a large number of cores.

To address this, we introduce Sandmark Nightly service which runs the seque= ntial and parallel benchmarks for a set of compiler variants (branch/commit/PR + compiler & runtime options= ) on two tuned machines:

  • Turing (28 cores, Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 64 GB RAM)<= /li>
  • Navajo (128 cores, AMD EPYC 7551 32-Core Processor, 504 GB RAM)

OCaml developers can request their development branches to be added to the = nightly runs by adding it to sandmark= -nightly-config. The results will appear the following day at https://sandmark.= tarides.com.

Here is an illustration of sequential benchmark results from the service:

3D"Mn7VZky.png"

You should first specify the number of variants that you want = for comparison, and then select either the navajo or turing hostnames. The dates for which benchmark results are= available are then listed in the date column. If there are more than one result on a given day, then the specific variant na= me, SHA1 commit and date are displayed together for selection. You need to choose one of the variants as a baselin= e for comparison. In the following graph, the 5.1.0+trunk+sequential_20220712_920fb8e build on the navajo server has been chosen as the baseline, and you can see the normalized time (seconds) comparison for the various Sandmark b= enchmarks for both 5.1.0+trunk+sequential_20220713_c759890 and 5.1.0+trunk+= sequential_20220714_606abe8 variants. We observe that the matrix_multiplication and soli benchmark have bec= ome 5% slower as compared to the July 12, 2022 nightly run.

3D"7b0yS0h.png"

Similarly, the normalized MaxRSS (KB) graph for the same baseline and varia= nts chosen for comparison is illustrated below:

3D"SfMbEiu.png"

The mandelbrot6 and fannkuchredux benchmarks have= increased the MaxRSS (KB) by 3% as compared to the baseline variant, whereas, the metric has significantly improved for the lexif= i-g2pp and sequence_cps benchmarks.

The parallel benchmark speedup results are also available from the Sandmark= nightly runs.

3D"uKFDXCv.png"

3D"24BGXVZ.png"

We observe from the speedup graph that there is not much difference between= 5.1.0+trunk+parallel_20220714_606abe8 and the 5.1.0+trunk+decouple_20220706_eb7a38d developer branch= results. The x-axis in the graph represents the number of domains, while the y-axis corresponds to the speedup. The number = in the parenthesis against each benchmark refers to the corresponding running time of the sequential benchmark. These= comparison results are useful to observe any performance regressions over time. It is recommended to use the t= uring machine results for the parallel benchmarks as it is tuned.

If you would like to use Sandmark nightly for OCaml compiler development, p= lease do ping us for access to the sandmark= -nightly-config repository so that you may add your own compiler variants.

OCamlFormat Web Configurator

Louis Roch=C3=A9 announced

Thanks to Pomba Magar we now have a= code editor with highlighting. It hopefully should also solve the lack of monospace font on safari.

=3D"96fb3536409c5553926228f097812d5b63bd6db8_2_1380x798.jpeg"

Jane Street is Hiring Front End Engineers

Matt Russell announced

Jane Street is looking to hire Front End Engineers that want to design and = build our next-generation of browser-based tools for operating our trading infrastructure (in OCaml). We=E2=80=99re b= uilding tools for expert users, and want to maintain a high UX bar while building tools that are powerful and flexible,= so it=E2=80=99s a challenging domain.

Ron Minsky wrote a bit more about the role here: https://twitter.com/yminsky/status/1541605410= 691596289?s=3D20&t=3DyyrhGx7TnNwPIwdZoArpGw

And you can find a link to the job descriptions and the application page he= re:

BAP 2.5.0 Release

Ivan Gotovchits announced

We are proud to announce the 2.5.0 release of the Carnegie Mellon Universit= y Binary Analysis Platform (CMU BAP). This is one of the biggest releases of BAP with lots of new features and bug = fixes. In this release, we significantly improved BAP performance (in some use cases by a factor of three) and reduc= ed memory consumption (up to a factor of two). In addition, we devised a new method for representing floating-point = operations that is scalable and efficient and now we enable floating-point lifters for all x86 binaries with little t= o no extra overhead. The floating-point support for other targets is coming! We also rewrote the ABI specifications= and now support dozens of different ABI. The new ABIs support calling conventions for structures and floating-point = values and the `bap-c` library was significantly expanded with lots of new functions and types to describe C t= ypes and C object layouts.

You can install bap with

opam install bap.2.5.0

Do not forget to opam update before that.

Why I used OCaml to developed a utility to download Jira items=

Willem Hoek announced

Not a technical post – but my notes on why I decided to used OCaml t= o develop a small utility that download Jira items to SQLite https://whoek.= com/b/jira-to-sqlite-with-scrumdog

The Hacker News comments here https://news.yc= ombinator.com/item?id=3D32109461

Liquidsoap 2.1.0

Romain Beauxis announced

Liquidsoap 2.1.0 was just released, some 10 months after= the initial release of the ~2.0.x release cycle!

The release is available here: https://github.com/savonet/liquidsoap/releases/ta= g/v2.1.0 and should be coming through opam pretty soon.

=F0=9F=A4=94 What is liquidsoap?

Liquidsoap is a statically-typed, type-inferred, functional scripting langu= age equipped with specialized operators to build audio and video stream automation.

The liquidsoap language offers all the flexibility and expressivity of a fu= lly featured programming language to help build your media streams.

Using liquidsoap, one can very quickly stand up a media streaming platform = that can rotate files from playlists, accept live DJ input, mux audio and video, encode (or not!) and send the re= sulting data to youtube, icecast, HLS and more..

:white_check_mark: Why liquidsoap?

While there are many tools that offer competing features, the real differen= ce with liquidsoap is its scripting language.

Setting up tools using configuration files is often easier and more straigh= t forward, however, when it comes to the finer details, such as inserting jingles between shows, defining crossfades= between tracks and more, potentially, each project has its own set of expectations, and this is where liquidsoap = becomes really useful!

:zap:=EF=B8=8F What's new in Liquidsoap 2.1.0? &= #xa0; zap

Lots of things have been brewing since the 2.0.0 release. This= new release branch is intended to bring up some of the breaking changes that were introduced while we keep working on more exc= iting future changes that we have on our road= map

Some noticeable changes include:

Improved JSON parsing

You should now be able to do:

let json.parse ({
  foo,
  bla,
  gni
} : {
  foo: string,
  bla: float,
  gni: bool
}) =3D '{ "foo": "aabbcc", "bla": 3.14, "gn=
i": true }'

For any one who has ever tried to parse json in their liquidsoap scripts, t= his is gonna be a game changer. We have a detailed article = here

Regular expressions are now first-class entities.

This should be familiar to anyone used to working with Javascript's regular= expression. So, now, instead of doing:

string.match(pattern=3D"\\d+", s)

You will now do:

r/\d+/.test(s)

There's a detailed description of this new feature here.

Vim now highlights types, feedback welcome

Ma=C3=ABlan announced

A patch just mad= e its way to the community-m= aintained Vim files for OCaml (not propagated to the official Vim dis= tribution, yet), that tries to highlight types. IMHO the patch is large= and hacky so you may want to try it cautiously, and feedback would be appreciated. :-)

The former behavior was to highlight identifiers that happened to be the na= me of a builtin type (such as int or list), regardless of where they appeared. Now, in principle, a= ll type expressions can be highlighted, and be so only when in a type context. By default, only builtin types are highlighted= , but you can unleash the full power of the new linter:

" put this in ~/.vim/after/syntax/ocaml.vim for =
instance:
hi link ocamlTypeConstr   Type
hi link ocamlTypeBuiltin  Type
hi link ocamlTypeVar      Type
hi link ocamlTypeAnyVar   Type

or fancier (if you like excess :rainbow:):

" 112 =3D light green (the color of the =E2=80=
=9CType=E2=80=9C hl group with my theme)
hi ocamlTypeConstr       ctermfg=3D112
hi ocamlTypeBuiltin      ctermfg=3D112 cterm=3Dbold
hi ocamlTypeVar          ctermfg=3D112 cterm=3Ditalic
hi ocamlTypeAnyVar       ctermfg=3D112 cterm=3Dbold

Even if you don=E2=80=99t care about highlighting types, allowing the linte= r to discriminate between types and exceptions has some tangential benefits.

Other OCaml News

From the ocaml.org blog

Here are links from many OCaml blogs aggregated at 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 online.

--=-=-=--