From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id B5B7A7EEE8 for ; Tue, 24 Mar 2020 10:31:28 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.72,299,1580770800"; d="scan'208,217";a="343403774" Received: from cbg35-2-78-242-14-140.fbx.proxad.net (HELO set) ([78.242.14.140]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Mar 2020 10:31:23 +0100 From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr, comp@lists.orbitalfox.eu Date: Tue, 24 Mar 2020 10:31:22 +0100 Message-ID: <87a746xfo5.fsf@polytechnique.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdz LCBmb3IgdGhlIHdlZWsgb2YgTWFyY2ggMTcgdG8gMjQsDQoyMDIwLg0KDQpU YWJsZSBvZiBDb250ZW50cw0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCkx1diAwLjUuMSDigJQgYSBs aWJ1diBiaW5kaW5nIOKAlCBXaW5kb3dzIHN1cHBvcnQNCnJlc3RvIDAuMiBy ZWxlYXNlZA0KQmlzZWN0X3BweCAyLjAuMCDigJQgY29kZSBjb3ZlcmFnZSBm b3IgT0NhbWwgd2l0aCBuaWNlIEhUTUwgcmVwb3J0cw0KT0NhbWwgNC4wOS4x IHJlbGVhc2VkDQpDb29raWUgMC4xLjYNCkZpcnN0IHJlbGVhc2Ugb2YgbHd0 LXBpcGVsaW5lDQpVc2luZyBPY2FtbCBhcyBzY3JpcHRpbmcgbGFuZ3VhZ2Ug LSBwaXBpbmcgc2ggY29tbWFuZHMNCk9sZCBDV04NCg0KDQpMdXYgMC41LjEg 4oCUIGEgbGlidXYgYmluZGluZyDigJQgV2luZG93cyBzdXBwb3J0DQrilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0K ICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2x1 di0wLTUtMS1hLWxpYnV2LWJpbmRpbmctd2luZG93cy1zdXBwb3J0LzUzMzQv MT4NCg0KDQpBbnRvbiBCYWNoaW4gYW5ub3VuY2VkDQrilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIANCg0KICBJIGFtIHBsZWFzZWQgdG8gYW5ub3VuY2UgcmVsZWFz ZSBbMC41LjFdIG9mIFsqKkx1dioqXS4gVGhlIG1haW4gY2hhbmdlDQogIGlz IHRoZSBhZGRpdGlvbiBvZiBXaW5kb3dzIHN1cHBvcnQsIHdoaWNoIG1ha2Vz IEx1diBmdWxseQ0KICBjcm9zcy1wbGF0Zm9ybS4NCg0KICBBY2NvcmRpbmds eSwgTHV2IDAuNS4xIGlzIG5vdyBpbnN0YWxsYWJsZSBmcm9tIGJvdGggdGhl IG1haW4gb3BhbQ0KICByZXBvLCBhbmQgZnJvbSBvcGFtLXJlcG9zaXRvcnkt bWluZ3cuDQoNCiAgPGh0dHBzOi8vZ2l0aHViLmNvbS9hYW50cm9uL2x1dj4N Cg0KICBBbHNvLCBhcyBhIHNpZGUgZWZmZWN0IG9mIHRoZSBidWlsZCBzeXN0 ZW0gcmVmYWN0b3JpbmcgdGhhdCB3YXMgbmVlZGVkDQogIHRvIHN1cHBvcnQg V2luZG93cywgTHV2J3MgYnVpbGQgc3lzdGVtIG5vIGxvbmdlciByZXF1aXJl cyBQeXRob24sIGFuZA0KICBzdXBwb3J0cyBjcm9zcy1jb21waWxhdGlvbi4N Cg0KICBUaGUgb3RoZXIgbm90ZXdvcnRoeSBjaGFuZ2UgaW4gcmVsZWFzZSAw LjUuMSBpcyBhIHJvdXRpbmUgdXBncmFkZSBvZg0KICB0aGUgdmVuZG9yZWQg bGlidXYgdG8gaXRzIGxhdGVzdCB2ZXJzaW9uLCBbMS4zNS4wXS4NCg0KDQpb MC41LjFdIDxodHRwczovL2dpdGh1Yi5jb20vYWFudHJvbi9sdXYvcmVsZWFz ZXMvdGFnLzAuNS4xPg0KDQpbKipMdXYqKl0gPGh0dHBzOi8vZ2l0aHViLmNv bS9hYW50cm9uL2x1dj4NCg0KWzEuMzUuMF0gPGh0dHBzOi8vZ2l0aHViLmNv bS9saWJ1di9saWJ1di9yZWxlYXNlcy90YWcvdjEuMzUuMD4NCg0KDQpyZXN0 byAwLjIgcmVsZWFzZWQNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxodHRw czovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLXJlc3RvLTAtMi1yZWxlYXNl ZC81MDI4LzI+DQoNCg0KUmFwaGHDq2wgUHJvdXN0IGFubm91bmNlZA0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNClJlbGVhc2VzIG9mIGByZXN0 bycgMC4zIGFuZCAwLjQNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIE9uIGJlaGFsZiBvZiBOb21hZGlj IExhYnMsIEknbSBoYXBweSB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZg0K ICB2ZXJzaW9ucyAwLjMgYW5kIDAuNCBvZiBgcmVzdG8nLiBCb3RoIHZlcnNp b25zIGFyZSBhdmFpbGFibGUgdGhyb3VnaA0KICBgb3BhbScgYW5kIGF2YWls YWJsZSBvbiA8aHR0cHM6Ly9naXRsYWIuY29tL25vbWFkaWMtbGFicy9yZXN0 bz4uDQoNCiAgVGhlIG1haW4gY2hhbmdlIGluIDAuMyBpcyB0byBkZXBlbmQg b24gYGpzb24tZGF0YS1lbmNvZGluZycsIHRoZSBmb3JrDQogIG9mIHRoZSB1 bm1haW50YWluZWQgYG9jcGxpYi1qc29uLXR5cGVkJy4NCg0KICBUaGUgY2hh bmdlcyBvZiAwLjQgYXJlIG1vcmUgaW52YXNpdmUgYW5kIHJlcXVpcmUgdXNl cnMgY2hhbmdlczoNCiAg4oCiIGhhbmRsZSB0aGUgbmV3IGBgR29uZScgcmVz cG9uc2UgY29kZSwgYW5kDQogIOKAoiBwYXNzIGBnZXR0aW1lb2ZkYXknIG1h bnVhbGx5Lg0KDQogIFRoaXMgbGFzdCBmZWF0dXJlIHJlbW92ZXMgYSBkZXBl bmRlbmN5IGZyb20gYHJlc3RvLWNvaHR0cCcgdG8gYFVuaXgnLA0KICBhbmQg dGh1cyBoZWxwcyB3aXRoIHVzZSB3aXRoaW4gYSBganNfb2Zfb2NhbWwnIGVu dmlyb25tZW50Lg0KDQoNCkJpc2VjdF9wcHggMi4wLjAg4oCUIGNvZGUgY292 ZXJhZ2UgZm9yIE9DYW1sIHdpdGggbmljZSBIVE1MIHJlcG9ydHMNCuKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRwczovL2Rpc2N1c3Mu b2NhbWwub3JnL3QvYmlzZWN0LXBweC0yLTAtMC1jb2RlLWNvdmVyYWdlLWZv ci1vY2FtbC13aXRoLW5pY2UtaHRtbC1yZXBvcnRzLzUzMzgvMT4NCg0KDQpB bnRvbiBCYWNoaW4gYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAN Cg0KICBJIGFtIHBsZWFzZWQgdG8gYW5ub3VuY2UgW3JlbGVhc2UgMi4wLjBd IG9mIFsqKkJpc2VjdF9wcHgqKl0sIHRoZQ0KICBPQ2FtbCBjb3ZlcmFnZSB0 b29sLCB3aGljaCBoZWxwcyB5b3Ugc2VlIHdoaWNoIHBhcnRzIG9mIHlvdXIg Y29kZSBhcmUNCiAgbm90IGJlaW5nIHRlc3RlZC4NCg0KICA8aHR0cHM6Ly9h d3MxLmRpc2NvdXJzZS1jZG4uY29tL3N0YW5kYXJkMTEvdXBsb2Fkcy9vY2Ft bC9vcmlnaW5hbC8yWC8xLzE5MTFhZGM2YWY4OThiNmY0ZWZkN2RjNjlkMmMx ZjkwNjk5MDMxYmEuZ2lmPg0KDQogIFRoaXMgcmVsZWFzZSBpcyBhIG1ham9y IHVwZ3JhZGUuIFRoZSBoaWdobGlnaHRzIGFyZToNCg0KICDigKIgU3VwcG9y dCBmb3IgQnVja2xlU2NyaXB0LCBqc19vZl9vY2FtbCwgYW5kIGVzeS4gSW4g b3RoZXIgd29yZHMsDQogICAgQmlzZWN0X3BweCBub3cgY29tcGlsZXMgdG8g Ym90aCBuYXRpdmUgY29kZSBhbmQgSlMsIGFuZCBpcyBwdWJsaXNoZWQNCiAg ICBpbiBib3RoIG9wYW0gYW5kIG5wbS4NCiAg4oCiIFRoZSBhYmlsaXR5IHRv IFtzZW5kIHJlcG9ydHMgYXV0b21hdGljYWxseV0gZnJvbSBUcmF2aXMgYW5k IENpcmNsZUNJDQogICAgdG8gQ292ZXJhbGxzIGFuZCBDb2RlY292LiBNb3Jl IGludGVncmF0aW9ucyBjYW4gYmUgYWRkZWQgb3ZlciB0aW1lLg0KICDigKIg VGhlIGF3a3dhcmQgYCgqQklTRUNULUlHTk9SRSopJyBjb21tZW50cyBmb3Ig ZXhjbHVkaW5nIGNvZGUgZnJvbQ0KICAgIGluc3RydW1lbnRhdGlvbiBoYXZl IGJlZW4gcmVwbGFjZWQgYnkgQVNUIGF0dHJpYnV0ZXMgbGlrZQ0KICAgIGBb QGNvdmVyYWdlIG9mZl0nDQogICAgKDxodHRwczovL2dpdGh1Yi5jb20vYWFu dHJvbi9iaXNlY3RfcHB4I0V4Y2x1c2lvbj4pLg0KICDigKIgQSBuZXcsIG1v cmUgcHJpbmNpcGxlZCBpbnN0cnVtZW50YXRpb24gYWxnb3JpdGhtLg0KICDi gKIgQSBuZXcgcmVwb3J0ZXIgY29tbWFuZCBsaW5lIGJhc2VkIG9uIFtDbWRs aW5lcl0uIFJ1bg0KICAgIGBiaXNlY3QtcHB4LXJlcG9ydCAtLWhlbHAnIHRv IGdldCBzdGFydGVkIHdpdGggaXQuDQogIOKAoiBTeW50YXggaGlnaGxpZ2h0 aW5nLg0KDQogIFlvdSBhcmUgaW52aXRlZCB0byBwZXJ1c2UgdGhlIGFsbC1u ZXcgW1JFQURNRV0gZm9yIGRldGFpbHMgOikNCg0KICBTZXZlcmFsIGZlYXR1 cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkOyBtb3N0bHkgY29tbWFuZC1saW5l IGZsYWdzLiBZb3UNCiAgY2FuIHNlZSB0aGUgbGlzdCBpbiB0aGUgKkRlcHJl Y2F0aW9ucyogc2VjdGlvbiBvZiB0aGUNCiAgW2NoYW5nZWxvZ10uIEhvd2V2 ZXIsIGl0IG1heSBiZSBlYXNpZXIgdG8gc2ltcGx5IHRyeSB1c2luZyBCaXNl Y3RfcHB4DQogIGFzIGJlZm9yZSDigJMgaXQgd2lsbCB3YXJuIHlvdSBpZiB5 b3UgdXNlIGEgZGVwcmVjYXRlZCBmbGFnLiBUaGUNCiAgZGVwcmVjYXRlZCBm bGFncyB3aWxsIGJlIHJlbW92ZWQgaW4gQmlzZWN0X3BweCAyLjEuMCwgZXhw ZWN0ZWQgYXJvdW5kDQogIEp1bHkgMjAyMC4NCg0KICBIYXBweSB0ZXN0aW5n IQ0KDQogIDxodHRwczovL2dpdGh1Yi5jb20vYWFudHJvbi9iaXNlY3RfcHB4 Pg0KDQoNCltyZWxlYXNlIDIuMC4wXQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9h YW50cm9uL2Jpc2VjdF9wcHgvcmVsZWFzZXMvdGFnLzIuMC4wPg0KDQpbKipC aXNlY3RfcHB4KipdIDxodHRwczovL2dpdGh1Yi5jb20vYWFudHJvbi9iaXNl Y3RfcHB4Pg0KDQpbc2VuZCByZXBvcnRzIGF1dG9tYXRpY2FsbHldDQo8aHR0 cHM6Ly9naXRodWIuY29tL2FhbnRyb24vYmlzZWN0X3BweCNDb3ZlcmFsbHM+ DQoNCltDbWRsaW5lcl0gPGh0dHBzOi8vZXJyYXRpcXVlLmNoL3NvZnR3YXJl L2NtZGxpbmVyL2RvYy9DbWRsaW5lcj4NCg0KW1JFQURNRV0gPGh0dHBzOi8v Z2l0aHViLmNvbS9hYW50cm9uL2Jpc2VjdF9wcHgjcmVhZG1lPg0KDQpbY2hh bmdlbG9nXSA8aHR0cHM6Ly9naXRodWIuY29tL2FhbnRyb24vYmlzZWN0X3Bw eC9yZWxlYXNlcy90YWcvMi4wLjA+DQoNCg0KT0NhbWwgNC4wOS4xIHJlbGVh c2VkDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOiA8aHR0cHM6 Ly9kaXNjdXNzLm9jYW1sLm9yZy90L29jYW1sLTQtMDktMS1yZWxlYXNlZC81 MzQxLzE+DQoNCg0Kb2N0YWNocm9uIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA DQoNCiAgV2UgaGF2ZSB0aGUgcGxlYXN1cmUgb2YgY2VsZWJyYXRpbmcgdGhl IGFubml2ZXJzYXJ5IG9mIHRoZSBmaXJzdA0KICBzcGFjZXdhbGssIGNvbmR1 Y3RlZCBieSBBbGV4ZWkgTGVvbm92LCBieSBhbm5vdW5jaW5nIHRoZSByZWxl YXNlIG9mDQogIE9DYW1sIHZlcnNpb24gNC4wOS4xLiAgVGhpcyBpcyBtYWlu bHkgYSBidWctZml4IHJlbGVhc2UsIHdpdGggYQ0KICBoYW5kZnVsIG9mIGNv bmZpZ3VyYXRpb24gZml4ZXMgYW5kIGEgR0MgZml4IGJhY2twb3J0ZWQgZnJv bSA0LjEwLjANCiAgLiBTZWUgdGhlIGxpc3Qgb2YgY2hhbmdlcyBiZWxvdyBm b3IgbW9yZSBkZXRhaWxzLg0KDQogIEl0IGlzIChvciBzb29uIHdpbGwgYmUp IGF2YWlsYWJsZSBhcyBhIHNldCBvZiBPUEFNIHN3aXRjaGVzLCBhbmQgYXMg YQ0KICBzb3VyY2UgZG93bmxvYWQgaGVyZToNCg0KICA8aHR0cHM6Ly9naXRo dWIuY29tL29jYW1sL29jYW1sL2FyY2hpdmUvNC4wOS4xLnRhci5nej4NCg0K DQpDaGFuZ2VzIGluIDQuMDkuMToNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIOKAoiBbIzkw NzNdLCBbIzkxMjBdOiBmaXggaW5jb3JyZWN0IEdDIHJhdGlvIG11bHRpcGxp ZXIgd2hlbiBhbGxvY2F0aW5nDQogICAgY3VzdG9tIGJsb2NrcyB3aXRoIGNh bWxfYWxsb2NfY3VzdG9tX21lbSBpbiBydW50aW1lL2N1c3RvbS5jIChNYXJr dXMNCiAgICBNb3R0bCwgcmV2aWV3IGJ5IEdhYnJpZWwgU2NoZXJlciBhbmQg RGFtaWVuIERvbGlnZXopDQoNCiAg4oCiIFsjODg1NV0sIFsjODg1OF06IExp bmtzIGZvciB0b29scyBub3QgY3JlYXRlZCB3aGVuIGluc3RhbGxpbmcgd2l0 aA0KICAgIOKAk2Rpc2FibGUtaW5zdGFsbGluZy1ieWVjb2RlLXByb2dyYW1z IChlLmcuIG9jYW1sZGVwLm9wdCBpbnN0YWxsZWQsDQogICAgYnV0IG9jYW1s ZGVwIGxpbmsgbm90IGNyZWF0ZWQpIChEYXZpZCBBbGxzb3BwLCByZXBvcnQg YnkgVGhvbWFzDQogICAgTGVvbmFyZCkNCg0KICDigKIgWyM4OTQ3XSwgWyM5 MTM0XSwgWyM5MzAyXTogZml4L2ltcHJvdmUgc3VwcG9ydCBmb3IgdGhlIEJG RCBsaWJyYXJ5DQogICAgKFPDqWJhc3RpZW4gSGluZGVyZXIsIHJldmlldyBi eSBEYW1pZW4gRG9saWdleiBhbmQgRGF2aWQgQWxsc29wcCkNCg0KICDigKIg WyM4OTUzXSwgWyM4OTU0XTogRml4IGVycm9yIHN1Ym1lc3NhZ2VzIGluIHRo ZSB0b3BsZXZlbDogZG8gbm90DQogICAgZGlzcGxheSBkdW1teSBsb2NhdGlv bnMgKEFybWHDq2wgR3XDqW5lYXUsIHJldmlldyBieSBHYWJyaWVsIFNjaGVy ZXIpDQoNCiAg4oCiIFsjODk2NV0sIFsjODk3OV06IEFscGluZSBidWlsZCBm YWlsdXJlIGNhdXNlZCBieQ0KICAgIGNoZWNrLXBhcnNlci11cHRvZGF0ZS1v ci13YXJuLnNoIChHYWJyaWVsIFNjaGVyZXIgYW5kIERhdmlkIEFsbHNvcHAs DQogICAgcmVwb3J0IGJ5IEFudG9uIEtvY2hrb3YpDQoNCiAg4oCiIFsjODk4 NV0sIFsjODk4Nl06IGZpeCBnZW5lcmF0aW9uIG9mIHRoZSBwcmltaXRpdmVz IHdoZW4gdGhlIGxvY2FsZQ0KICAgIGNvbGxhdGlvbiBpcyBpbmNvbXBhdGli bGUgd2l0aCBDLiAoRGF2aWQgQWxsc29wcCwgcmV2aWV3IGJ5IE5pY29sw6Fz DQogICAgT2plZGEgQsOkciwgcmVwb3J0IGJ5IFNlYmFzdGlhbiBSYXNtdXNz ZW4pDQoNCiAg4oCiIFsjOTA1MF0sIFsjOTA3Nl06IGluc3RhbGwgbWlzc2lu ZyBjb21waWxlcmxpYnMvb2NhbWxtaWRkbGVlbmQNCiAgICBhcmNoaXZlcyAo R2FicmllbCBTY2hlcmVyLCByZXZpZXcgYnkgRmxvcmlhbiBBbmdlbGV0dGks IHJlcG9ydCBieQ0KICAgIE9sYWYgSGVyaW5nKQ0KDQogIOKAoiBbIzkxNDRd LCBbIzkxODBdOiBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBnbG9iYWwgdmFy aWFibGVzIGluIHRoZSBDDQogICAgcnVudGltZSwgY2F1c2luZyBwcm9ibGVt cyB3aXRoIEdDQyAxMC4wIGFuZCBwb3NzaWJseSB3aXRoIG90aGVyIEMNCiAg ICBjb21waWxlcnMgKFhhdmllciBMZXJveSwgcmVwb3J0IGJ5IErDvHJnZW4g UmV1dGVyLCByZXZpZXcgYnkgTWFyaw0KICAgIFNoaW53ZWxsKQ0KDQogIOKA oiBbIzkxODBdOiBwYXNzIC1mbm8tY29tbW9uIG9wdGlvbiB0byBDIGNvbXBp bGVyIHdoZW4gYXZhaWxhYmxlLCBzbyBhcw0KICAgIHRvIGRldGVjdCBwcm9i bGVtYXRpYyBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBnbG9iYWwgdmFyaWFi bGVzIGluDQogICAgdGhlIEMgcnVudGltZSAoWGF2aWVyIExlcm95LCByZXZp ZXcgYnkgTWFyayBTaGlud2VsbCkNCg0KICDigKIgWyM5MTI4XTogRml4IGEg YnVnIGluIGJ5dGVjb2RlIG1vZGUgd2hpY2ggY291bGQgbGVhZCB0byBhDQog ICAgc2VnbWVudGF0aW9uIGZhdWx0LiBUaGUgYnVnIHdhcyBjYXVzZWQgYnkg dGhlIGZhY3QgdGhhdCB0aGUgYXRvbQ0KICAgIHRhYmxlIHNoYXJlZCBhIHBh Z2Ugd2l0aCBzb21lIGJ5dGVjb2RlLiBUaGUgZml4IG1ha2VzIHN1cmUgYm90 aCB0aGUNCiAgICBhdG9tIHRhYmxlIGFuZCB0aGUgbWlub3IgaGVhcCBoYXZl IHRoZWlyIG93biBwYWdlcy4gKEphY3F1ZXMtSGVucmkNCiAgICBKb3VyZGFu LCByZXZpZXcgYnkgU3RlcGhlbiBEb2xhbiwgWGF2aWVyIExlcm95IGFuZCBH YWJyaWVsIFNjaGVyZXIpDQoNCg0KWyM5MDczXSA8aHR0cHM6Ly9naXRodWIu Y29tL29jYW1sL29jYW1sL2lzc3Vlcy85MDczPg0KDQpbIzkxMjBdIDxodHRw czovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzkxMjA+DQoNClsj ODg1NV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMv ODg1NT4NCg0KWyM4ODU4XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29j YW1sL2lzc3Vlcy84ODU4Pg0KDQpbIzg5NDddIDxodHRwczovL2dpdGh1Yi5j b20vb2NhbWwvb2NhbWwvaXNzdWVzLzg5NDc+DQoNClsjOTEzNF0gPGh0dHBz Oi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvOTEzND4NCg0KWyM5 MzAyXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy85 MzAyPg0KDQpbIzg5NTNdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2Nh bWwvaXNzdWVzLzg5NTM+DQoNClsjODk1NF0gPGh0dHBzOi8vZ2l0aHViLmNv bS9vY2FtbC9vY2FtbC9pc3N1ZXMvODk1ND4NCg0KWyM4OTY1XSA8aHR0cHM6 Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy84OTY1Pg0KDQpbIzg5 NzldIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzg5 Nzk+DQoNClsjODk4NV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2Ft bC9pc3N1ZXMvODk4NT4NCg0KWyM4OTg2XSA8aHR0cHM6Ly9naXRodWIuY29t L29jYW1sL29jYW1sL2lzc3Vlcy84OTg2Pg0KDQpbIzkwNTBdIDxodHRwczov L2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzkwNTA+DQoNClsjOTA3 Nl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvOTA3 Nj4NCg0KWyM5MTQ0XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1s L2lzc3Vlcy85MTQ0Pg0KDQpbIzkxODBdIDxodHRwczovL2dpdGh1Yi5jb20v b2NhbWwvb2NhbWwvaXNzdWVzLzkxODA+DQoNClsjOTEyOF0gPGh0dHBzOi8v Z2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvOTEyOD4NCg0KDQpDb29r aWUgMC4xLjYNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kA0KDQogIEFyY2hpdmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3Qv YW5uLWNvb2tpZS0wLTEtNi81MzQ2LzE+DQoNCg0KVWxyaWsgU3RyaWQgYW5u b3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBJIHJlY2VudGx5IHJl bGVhc2VkIGEgY29va2llIGxpYnJhcnkuIEl0IGNhbiBwYXJzZSBhbmQgY3Jl YXRlIGNvb2tpZQ0KICBoZWFkZXJzIChgbGlzdCgoc3RyaW5nLCBzdHJpbmcp JyB3aGljaCBib3RoIENvaHR0cCBhbmQgSHR0cGFmIHVzZXMpLA0KICBib3Ro IGBTZXQtQ29va2llJyBhbmQgYENvb2tpZScgc28gaXQgd29ya3Mgb24gYm90 aCBjbGllbnQgYW5kDQogIHNlcnZlci4gSXQgc2hvdWxkIGJlIGNvbXBsaWFu dCB3aXRoDQogIDxodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjI2 NT4gYW5kIEkgaGF2ZSBhIHByZXR0eSBnb29kIHRlc3QNCiAgc3VpdGUgZm9y IHRoZSBwYXJzaW5nIG9mIGNvb2tpZXMgYXQgbGVhc3QuDQoNCiAgSSBjb3Vs ZG7igJl0IGZpbmQgYSBzdGFuZGFsb25lIGxpYnJhcnkgYmVmb3JlIHRoaXMg c28gSSBkZWNpZGVkIHRvDQogIGNyZWF0ZSBvbmUgc2luY2UgSSBuZWVkIGl0 IGZvciBteSB3ZWIgZnJhbWV3b3JrLCBgTW9ycGgnLg0KDQogIFRoZSBuZXh0 IHN0ZXAgaXMgdG8gY3JlYXRlIGFuZCBwdWJsaXNoIGludGVncmF0aW9ucyB3 aXRoDQogIFtgb2NhbWwtc2Vzc2lvbiddIHdoaWNoIEkgaGF2ZSBzdGFydGVk Lg0KDQogIOKAoiBSZXBvOiA8aHR0cHM6Ly9naXRodWIuY29tL3Vscmlrc3Ry aWQvb2NhbWwtY29va2llPg0KICDigKIgRG9jczogPGh0dHBzOi8vdWxyaWtz dHJpZC5naXRodWIuaW8vb2NhbWwtY29va2llPg0KDQoNCltgb2NhbWwtc2Vz c2lvbiddIDxodHRwczovL2dpdGh1Yi5jb20vaW5oYWJpdGVkdHlwZS9vY2Ft bC1zZXNzaW9uPg0KDQoNCkZpcnN0IHJlbGVhc2Ugb2YgbHd0LXBpcGVsaW5l DQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAN Cg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90 L2Fubi1maXJzdC1yZWxlYXNlLW9mLWx3dC1waXBlbGluZS80MjIwLzI+DQoN Cg0KUmFwaGHDq2wgUHJvdXN0IGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSADQoNCiAgQSBzZWNvbmQgcmVsZWFzZSBvZiBgbHd0LXBp cGVsaW5lJyAodjAuMikgaXMgYXZhaWxhYmxlIHRocm91Z2gNCiAgYG9wYW0n LiBUaGlzIG5ldyByZWxlYXNlIG1ha2VzIG5vIGNoYW5nZSB0byB0aGUgY29k ZSBhbmQgb25seSBhZmZlY3RzDQogIHRoZSBmb2xsb3dpbmc6DQoNCiAg4oCi IGxvb3NlciBjb25zdHJhaW50cyBvbiB2ZXJzaW9ucyBvZiBgZHVuZScgZGVw ZW5kZW5jeSwNCiAg4oCiIHRlc3RzLA0KICDigKIgdGVzdHMgYXJlIGV4ZWN1 dGVkIGluIENJLA0KICDigKIgbWlub3IgZG9jdW1lbnRhdGlvbiBpbXByb3Zl bWVudHMuDQoNCg0KVXNpbmcgT2NhbWwgYXMgc2NyaXB0aW5nIGxhbmd1YWdl IC0gcGlwaW5nIHNoIGNvbW1hbmRzDQrilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1s Lm9yZy90L3VzaW5nLW9jYW1sLWFzLXNjcmlwdGluZy1sYW5ndWFnZS1waXBp bmctc2gtY29tbWFuZHMvNTM2Ni8xPg0KDQoNCk5pY29sYXMgVG9sbGVuYWVy ZSBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgA0KDQogIEkgYW0gdHJ5aW5nIHRvIHVzZSBvY2FtbCB0byBwaXBl IHRoZSByZXN1bHQgb2YgYSBjb21tYW5kIHRvIGFub3RoZXIgKEkNCiAgd291 bGQgYWxzbyBiZSBpbnRlcmVzdGVkIGluIGZlZWRpbmcgYSBzdHJpbmcgb3Ig YSBpbyBzdHJlYW0gaW50byBhIHNoDQogIGNvbW1hbmQpLiBGb3IgZXhhbXBs ZSwgSSB3b3VsZCBsaWtlIHRvIGRvIHRoZSBlcXVpdmFsZW50IG9mIGNhdA0K ICBmb28udHh0IHwgZ3JlcCB0aGluZywgb3IgcGlwZSB0aGUgcmVzdWx0IG9m IG9uZSBvZiBteSBvY2FtbCBmdW5jdGlvbg0KICBpbnRvIGdyZXAuDQoNCiAg UXVpdGUgc3VycHJpbnNpbmdseSwgbmVpdGhlciB0aGUgU3RkbGliIG9yIEJh dHRlcmllcyBTeXMgbW9kdWxlcw0KICBleHBvc2UgYW55IHdheSB0byBoYW5k bGUgdGhlIG91dHB1dCBvZiBTeXMuY29tbWFuZCBkaXJlY3RseSAoSSB3b3Vs ZA0KICBoYXZlIHRob3VnaHQgdGhlcmUgd291bGQgYmUgb3B0aW9uYWwgaW5w dXQgYW5kIG91dHB1dCBhcmd1bWVudHMNCiAgZGVmYXVsdGluZyB0byBzdGRp biBhbmQgc3Rkb3V0LCBvciBzb21ldGhpbmcgYWxvbmcgdGhhdCkuIEJhdHRl cmllcyBJTw0KICBtb2R1bGUgZG9lcyBleHBvc2UgYSBwaXBlIGZ1bmN0aW9u IGJ1dCBpdCdzIG5vdCBjbGVhciBmb3IgbWUgaG93IGl0DQogIHdvdWxkIGlu dGVyYWN0IHdpdGggdGhlIFN5cyBtb2R1bGUuIEFueSBpZGVhcyBvciBvdGhl ciBtb2R1bGVzL3BhY2thZ2UNCiAgSSBjb3VsZCB1c2UgPw0KDQoNCk5pY29s w6FzIE9qZWRhIELDpHIgc3VnZ2VzdGVkDQrilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIANCg0KICBJIHRoaW5rIHlvdSBtYXkgYmUgaW50 ZXJlc3RlZCBieQ0KICA8aHR0cHM6Ly9naXRodWIuY29tL2phbmVzdHJlZXQv c2hleHA+Lg0KDQoNCk5pY29sYXMgVG9sbGVuYWVyZSB0aGVuIHNhaWQNCuKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIEBn cmF5c3dhbmR5ciBAbm9qYiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLiBJ IGp1c3QgZm91bmQgc2hjYW1sDQogIDxodHRwOi8vdG92LmdpdGh1Yi5pby9z aGNhbWwvZG9jLz4gYW5kIEkgd2FzIGdvaW5nIHRvIGdpdmUgaXQgYSB0cnks DQogIGRvIHlvdSBrbm93IGhvdyBpdCBjb21wYXJlcyB0byBzaGV4cCA/DQoN Cg0KRGF2aWQgQ2hlbW91aWwgcmVwbGllZA0K4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSADQoNCiAgQUZBSUsgc2hjYW1sIGlzIHVubWFpbnRhaW5lZCwgYnV0IHRo ZSBhcHByb2FjaCBpcyB2ZXJ5IG5pY2UgaW5kZWVkLg0KDQoNCk9sZCBDV04N CuKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIElmIHlvdSBoYXBwZW4gdG8g bWlzcyBhIENXTiwgeW91IGNhbiBbc2VuZCBtZSBhIG1lc3NhZ2VdIGFuZCBJ J2xsIG1haWwNCiAgaXQgdG8geW91LCBvciBnbyB0YWtlIGEgbG9vayBhdCBb dGhlIGFyY2hpdmVdIG9yIHRoZSBbUlNTIGZlZWQgb2YgdGhlDQogIGFyY2hp dmVzXS4NCg0KICBJZiB5b3UgYWxzbyB3aXNoIHRvIHJlY2VpdmUgaXQgZXZl cnkgd2VlayBieSBtYWlsLCB5b3UgbWF5IHN1YnNjcmliZQ0KICBbb25saW5l XS4NCg0KICBbQWxhbiBTY2htaXR0XQ0KDQoNCltzZW5kIG1lIGEgbWVzc2Fn ZV0gPG1haWx0bzphbGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5vcmc+DQoN Clt0aGUgYXJjaGl2ZV0gPGh0dHA6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC9j d24vPg0KDQpbUlNTIGZlZWQgb2YgdGhlIGFyY2hpdmVzXSA8aHR0cDovL2Fs YW4ucGV0aXRlcG9tbWUubmV0L2N3bi9jd24ucnNzPg0KDQpbb25saW5lXSA8 aHR0cDovL2xpc3RzLmlkeWxsLm9yZy9saXN0aW5mby9jYW1sLW5ld3Mtd2Vl a2x5Lz4NCg0KW0FsYW4gU2NobWl0dF0gPGh0dHA6Ly9hbGFuLnBldGl0ZXBv bW1lLm5ldC8+DQoNCg== --=-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of March 17 to 24, 2020.

Luv 0.5.1 =E2=80=94 a libuv binding =E2=80=94 Windows support<= /h2>

Anton Bachin announced

I am pleased to announce release 0.5.1 of Luv. The main change is the addition of Windows support,= which makes Luv fully cross-platform.

Accordingly, Luv 0.5.1 is now installable from both the main opam repo, and= from opam-repository-mingw.

https://github.com/aantron/luv

Also, as a side effect of the build system refactoring that was needed to s= upport Windows, Luv's build system no longer requires Python, and supports cross-compilation.

The other noteworthy change in release 0.5.1 is a routine upgrade of the ve= ndored libuv to its latest version, 1.35.0.

resto 0.2 released

Rapha=C3=ABl Proust announced

Releases of resto 0.3 and 0.4

On behalf of Nomadic Labs, I'm happy to announce the release of versions 0.= 3 and 0.4 of resto. Both versions are available through opam and available on https://gitlab.com/nomadic-labs/resto.

The main change in 0.3 is to depend on json-data-encoding, the= fork of the unmaintained ocplib-json-typed.

The changes of 0.4 are more invasive and require users changes:

  • handle the new `Gone response code, and
  • pass gettimeofday manually.

This last feature removes a dependency from resto-cohttp to Unix, and thus helps with use within a js_of_ocaml = environment.

Bisect_ppx 2.0.0 =E2=80=94 code coverage for OCaml with nice H= TML reports

Anton Bachin announced

I am pleased to announce release 2.0.0 of Bisect_ppx, the OCaml coverage tool, which= helps you see which parts of your code are not being tested.

3D"1911adc6af89=

This release is a major upgrade. The highlights are:

  • Support for BuckleScript, js_of_ocaml, and esy. In other words, Bisect_= ppx now compiles to both native code and JS, and is published in both opam = and npm.
  • The ability to send reports automatically from Travis and CircleCI to Coveralls an= d Codecov. More integrations can be added over time.
  • The awkward (*BISECT-IGNORE*) comments for excluding code = from instrumentation have been replaced by AST attributes like [@cove= rage off] (https://github.com/aantron/bisect_ppx#Exclusion).
  • A new, more principled instrumentation algorithm.
  • A new reporter command line based on Cmdliner. Run bisect-ppx-report --h= elp to get started with it.
  • Syntax highlighting.

You are invited to peruse the all-new README for details :)

Several features have been deprecated; mostly command-line flags. You can s= ee the list in the Deprecations section of the changelog. However, it = may be easier to simply try using Bisect_ppx as before =E2=80=93 it will wa= rn you if you use a deprecated flag. The deprecated flags will be removed i= n Bisect_ppx 2.1.0, expected around July 2020.

Happy testing!

https://github.com/aantro= n/bisect_ppx

OCaml 4.09.1 released

octachron announced

We have the pleasure of celebrating the anniversary of the first spacewalk, conducted by Alexei Leonov, by announcing the release of OCaml version 4.09= .1. This is mainly a bug-fix release, with a handful of configuration fixes and a GC fix backported from 4.10.0 . See the list of changes below for more de= tails.

It is (or soon will be) available as a set of OPAM switches, and as a source download here:

https://gi= thub.com/ocaml/ocaml/archive/4.09.1.tar.gz

Changes in 4.09.1:

  • #9073, #9120: fix incorrect = GC ratio multiplier when allocating custom blocks with caml_alloc_custom_me= m in runtime/custom.c (Markus Mottl, review by Gabriel Scherer and Damien D= oligez)
  • #8855, #8858: Links for tool= s not created when installing with –disable-installing-byecode-progr= ams (e.g. ocamldep.opt installed, but ocamldep link not created) (David All= sopp, report by Thomas Leonard)
  • #8947, #9134, #9302: fix/improve support for= the BFD library (S=C3=A9bastien Hinderer, review by Damien Doligez and Dav= id Allsopp)
  • #8953, #8954: Fix error subm= essages in the toplevel: do not display dummy locations (Arma=C3=ABl Gu=C3= =A9neau, review by Gabriel Scherer)
  • #8965, #8979: Alpine build f= ailure caused by check-parser-uptodate-or-warn.sh (Gabriel Scherer and Davi= d Allsopp, report by Anton Kochkov)
  • #8985, #8986: fix generation= of the primitives when the locale collation is incompatible with C. (David= Allsopp, review by Nicol=C3=A1s Ojeda B=C3=A4r, report by Sebastian Rasmus= sen)
  • #9050, #9076: install missin= g compilerlibs/ocamlmiddleend archives (Gabriel Scherer, review by Florian = Angeletti, report by Olaf Hering)
  • #9144, #9180: multiple defin= itions of global variables in the C runtime, causing problems with GCC 10.0= and possibly with other C compilers (Xavier Leroy, report by J=C3=BCrgen R= euter, review by Mark Shinwell)
  • #9180: pass = -fno-common option to C compiler when available, so as to detect problemati= c multiple definitions of global variables in the C runtime (Xavier Leroy, = review by Mark Shinwell)
  • #9128: Fix a= bug in bytecode mode which could lead to a segmentation fault. The bug was= caused by the fact that the atom table shared a page with some bytecode. T= he fix makes sure both the atom table and the minor heap have their own pag= es. (Jacques-Henri Jourdan, review by Stephen Dolan, Xavier Leroy and Gabri= el Scherer)

Cookie 0.1.6

Ulrik Strid announced

I recently released a cookie library. It can parse and create cookie header= s (list((string, string) which both Cohttp and Httpaf uses), both Set-Cookie and Cookie so it works on both client and server. It should be compliant with https://tools.ietf.org/html/rfc6= 265 and I have a pretty good test suite for the parsing of cookies at l= east.

I couldn=E2=80=99t find a standalone library before this so I decided to cr= eate one since I need it for my web framework, Morph.

The next step is to create and publish integrations with ocaml-session whi= ch I have started.

First release of lwt-pipeline

Rapha=C3=ABl Proust announced

A second release of lwt-pipeline (v0.2) is available through <= code>opam. This new release makes no change to the code and only aff= ects the following:

  • looser constraints on versions of dune dependency,
  • tests,
  • tests are executed in CI,
  • minor documentation improvements.

Using Ocaml as scripting language - piping sh commands

Nicolas Tollenaere announced

I am trying to use ocaml to pipe the result of a command to another (I woul= d also be interested in feeding a string or a io stream into a sh command). For example, I would like to do the equi= valent of cat foo.txt | grep thing, or pipe the result of one of my ocaml function into grep.

Quite surprinsingly, neither the Stdlib or Batteries Sys modules expose any= way to handle the output of Sys.command directly (I would have thought there would be optional input and output arg= uments defaulting to stdin and stdout, or something along that). Batteries IO module does expose a pipe function but = it's not clear for me how it would interact with the Sys module. Any ideas or other modules/package I could us= e ?

Nicol=C3=A1s Ojeda B=C3=A4r suggested

I think you may be interested by https://github.com/janestreet/shexp.

Nicolas Tollenaere then said

@grayswandyr @nojb Thanks for the suggestion. I just found shcaml http://tov.github.io/shcaml/doc/ = and I was going to give it a try, do you know how it compares to shexp ?

David Chemouil replied

AFAIK shcaml is unmaintained, but the approach is very nice indeed.

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 RSS feed of the archives<= /a>.

If you also wish to receive it every week by mail, you may subscribe online.

--=-=-=--