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 296815D5 for ; Tue, 24 Mar 2020 09:31:36 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.72,299,1580770800"; d="scan'208,217";a="441844772" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 24 Mar 2020 10:31:34 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 6F5237F46C; Tue, 24 Mar 2020 10:31:34 +0100 (CET) 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 Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 18068 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhlIHdl ZWsgb2YgTWFyY2ggMTcgdG8gMjQsDQoyMDIwLg0KDQpUYWJsZSBvZiBDb250ZW50cw0K4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCkx1diAwLjUu MSDigJQgYSBsaWJ1diBiaW5kaW5nIOKAlCBXaW5kb3dzIHN1cHBvcnQNCnJlc3RvIDAuMiByZWxl YXNlZA0KQmlzZWN0X3BweCAyLjAuMCDigJQgY29kZSBjb3ZlcmFnZSBmb3IgT0NhbWwgd2l0aCBu aWNlIEhUTUwgcmVwb3J0cw0KT0NhbWwgNC4wOS4xIHJlbGVhc2VkDQpDb29raWUgMC4xLjYNCkZp cnN0IHJlbGVhc2Ugb2YgbHd0LXBpcGVsaW5lDQpVc2luZyBPY2FtbCBhcyBzY3JpcHRpbmcgbGFu Z3VhZ2UgLSBwaXBpbmcgc2ggY29tbWFuZHMNCk9sZCBDV04NCg0KDQpMdXYgMC41LjEg4oCUIGEg bGlidXYgYmluZGluZyDigJQgV2luZG93cyBzdXBwb3J0DQrilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAN Cg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2x1di0wLTUtMS1h LWxpYnV2LWJpbmRpbmctd2luZG93cy1zdXBwb3J0LzUzMzQvMT4NCg0KDQpBbnRvbiBCYWNoaW4g YW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIANCg0KICBJIGFtIHBsZWFzZWQgdG8gYW5ub3VuY2UgcmVsZWFz ZSBbMC41LjFdIG9mIFsqKkx1dioqXS4gVGhlIG1haW4gY2hhbmdlDQogIGlzIHRoZSBhZGRpdGlv biBvZiBXaW5kb3dzIHN1cHBvcnQsIHdoaWNoIG1ha2VzIEx1diBmdWxseQ0KICBjcm9zcy1wbGF0 Zm9ybS4NCg0KICBBY2NvcmRpbmdseSwgTHV2IDAuNS4xIGlzIG5vdyBpbnN0YWxsYWJsZSBmcm9t IGJvdGggdGhlIG1haW4gb3BhbQ0KICByZXBvLCBhbmQgZnJvbSBvcGFtLXJlcG9zaXRvcnktbWlu Z3cuDQoNCiAgPGh0dHBzOi8vZ2l0aHViLmNvbS9hYW50cm9uL2x1dj4NCg0KICBBbHNvLCBhcyBh IHNpZGUgZWZmZWN0IG9mIHRoZSBidWlsZCBzeXN0ZW0gcmVmYWN0b3JpbmcgdGhhdCB3YXMgbmVl ZGVkDQogIHRvIHN1cHBvcnQgV2luZG93cywgTHV2J3MgYnVpbGQgc3lzdGVtIG5vIGxvbmdlciBy ZXF1aXJlcyBQeXRob24sIGFuZA0KICBzdXBwb3J0cyBjcm9zcy1jb21waWxhdGlvbi4NCg0KICBU aGUgb3RoZXIgbm90ZXdvcnRoeSBjaGFuZ2UgaW4gcmVsZWFzZSAwLjUuMSBpcyBhIHJvdXRpbmUg dXBncmFkZSBvZg0KICB0aGUgdmVuZG9yZWQgbGlidXYgdG8gaXRzIGxhdGVzdCB2ZXJzaW9uLCBb MS4zNS4wXS4NCg0KDQpbMC41LjFdIDxodHRwczovL2dpdGh1Yi5jb20vYWFudHJvbi9sdXYvcmVs ZWFzZXMvdGFnLzAuNS4xPg0KDQpbKipMdXYqKl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9hYW50cm9u L2x1dj4NCg0KWzEuMzUuMF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9saWJ1di9saWJ1di9yZWxlYXNl cy90YWcvdjEuMzUuMD4NCg0KDQpyZXN0byAwLjIgcmVsZWFzZWQNCuKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxodHRw czovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLXJlc3RvLTAtMi1yZWxlYXNlZC81MDI4LzI+DQoN Cg0KUmFwaGHDq2wgUHJvdXN0IGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNClJlbGVhc2Vz IG9mIGByZXN0bycgMC4zIGFuZCAwLjQNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjA0KDQogIE9uIGJlaGFsZiBvZiBOb21hZGljIExhYnMsIEknbSBoYXBweSB0byBhbm5vdW5j ZSB0aGUgcmVsZWFzZSBvZg0KICB2ZXJzaW9ucyAwLjMgYW5kIDAuNCBvZiBgcmVzdG8nLiBCb3Ro IHZlcnNpb25zIGFyZSBhdmFpbGFibGUgdGhyb3VnaA0KICBgb3BhbScgYW5kIGF2YWlsYWJsZSBv biA8aHR0cHM6Ly9naXRsYWIuY29tL25vbWFkaWMtbGFicy9yZXN0bz4uDQoNCiAgVGhlIG1haW4g Y2hhbmdlIGluIDAuMyBpcyB0byBkZXBlbmQgb24gYGpzb24tZGF0YS1lbmNvZGluZycsIHRoZSBm b3JrDQogIG9mIHRoZSB1bm1haW50YWluZWQgYG9jcGxpYi1qc29uLXR5cGVkJy4NCg0KICBUaGUg Y2hhbmdlcyBvZiAwLjQgYXJlIG1vcmUgaW52YXNpdmUgYW5kIHJlcXVpcmUgdXNlcnMgY2hhbmdl czoNCiAg4oCiIGhhbmRsZSB0aGUgbmV3IGBgR29uZScgcmVzcG9uc2UgY29kZSwgYW5kDQogIOKA oiBwYXNzIGBnZXR0aW1lb2ZkYXknIG1hbnVhbGx5Lg0KDQogIFRoaXMgbGFzdCBmZWF0dXJlIHJl bW92ZXMgYSBkZXBlbmRlbmN5IGZyb20gYHJlc3RvLWNvaHR0cCcgdG8gYFVuaXgnLA0KICBhbmQg dGh1cyBoZWxwcyB3aXRoIHVzZSB3aXRoaW4gYSBganNfb2Zfb2NhbWwnIGVudmlyb25tZW50Lg0K DQoNCkJpc2VjdF9wcHggMi4wLjAg4oCUIGNvZGUgY292ZXJhZ2UgZm9yIE9DYW1sIHdpdGggbmlj ZSBIVE1MIHJlcG9ydHMNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQog IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYmlzZWN0LXBweC0yLTAtMC1jb2RlLWNvdmVy YWdlLWZvci1vY2FtbC13aXRoLW5pY2UtaHRtbC1yZXBvcnRzLzUzMzgvMT4NCg0KDQpBbnRvbiBC YWNoaW4gYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBJIGFtIHBsZWFzZWQgdG8gYW5ub3VuY2Ug W3JlbGVhc2UgMi4wLjBdIG9mIFsqKkJpc2VjdF9wcHgqKl0sIHRoZQ0KICBPQ2FtbCBjb3ZlcmFn ZSB0b29sLCB3aGljaCBoZWxwcyB5b3Ugc2VlIHdoaWNoIHBhcnRzIG9mIHlvdXIgY29kZSBhcmUN CiAgbm90IGJlaW5nIHRlc3RlZC4NCg0KICA8aHR0cHM6Ly9hd3MxLmRpc2NvdXJzZS1jZG4uY29t L3N0YW5kYXJkMTEvdXBsb2Fkcy9vY2FtbC9vcmlnaW5hbC8yWC8xLzE5MTFhZGM2YWY4OThiNmY0 ZWZkN2RjNjlkMmMxZjkwNjk5MDMxYmEuZ2lmPg0KDQogIFRoaXMgcmVsZWFzZSBpcyBhIG1ham9y IHVwZ3JhZGUuIFRoZSBoaWdobGlnaHRzIGFyZToNCg0KICDigKIgU3VwcG9ydCBmb3IgQnVja2xl U2NyaXB0LCBqc19vZl9vY2FtbCwgYW5kIGVzeS4gSW4gb3RoZXIgd29yZHMsDQogICAgQmlzZWN0 X3BweCBub3cgY29tcGlsZXMgdG8gYm90aCBuYXRpdmUgY29kZSBhbmQgSlMsIGFuZCBpcyBwdWJs aXNoZWQNCiAgICBpbiBib3RoIG9wYW0gYW5kIG5wbS4NCiAg4oCiIFRoZSBhYmlsaXR5IHRvIFtz ZW5kIHJlcG9ydHMgYXV0b21hdGljYWxseV0gZnJvbSBUcmF2aXMgYW5kIENpcmNsZUNJDQogICAg dG8gQ292ZXJhbGxzIGFuZCBDb2RlY292LiBNb3JlIGludGVncmF0aW9ucyBjYW4gYmUgYWRkZWQg b3ZlciB0aW1lLg0KICDigKIgVGhlIGF3a3dhcmQgYCgqQklTRUNULUlHTk9SRSopJyBjb21tZW50 cyBmb3IgZXhjbHVkaW5nIGNvZGUgZnJvbQ0KICAgIGluc3RydW1lbnRhdGlvbiBoYXZlIGJlZW4g cmVwbGFjZWQgYnkgQVNUIGF0dHJpYnV0ZXMgbGlrZQ0KICAgIGBbQGNvdmVyYWdlIG9mZl0nDQog ICAgKDxodHRwczovL2dpdGh1Yi5jb20vYWFudHJvbi9iaXNlY3RfcHB4I0V4Y2x1c2lvbj4pLg0K ICDigKIgQSBuZXcsIG1vcmUgcHJpbmNpcGxlZCBpbnN0cnVtZW50YXRpb24gYWxnb3JpdGhtLg0K ICDigKIgQSBuZXcgcmVwb3J0ZXIgY29tbWFuZCBsaW5lIGJhc2VkIG9uIFtDbWRsaW5lcl0uIFJ1 bg0KICAgIGBiaXNlY3QtcHB4LXJlcG9ydCAtLWhlbHAnIHRvIGdldCBzdGFydGVkIHdpdGggaXQu DQogIOKAoiBTeW50YXggaGlnaGxpZ2h0aW5nLg0KDQogIFlvdSBhcmUgaW52aXRlZCB0byBwZXJ1 c2UgdGhlIGFsbC1uZXcgW1JFQURNRV0gZm9yIGRldGFpbHMgOikNCg0KICBTZXZlcmFsIGZlYXR1 cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkOyBtb3N0bHkgY29tbWFuZC1saW5lIGZsYWdzLiBZb3UN CiAgY2FuIHNlZSB0aGUgbGlzdCBpbiB0aGUgKkRlcHJlY2F0aW9ucyogc2VjdGlvbiBvZiB0aGUN CiAgW2NoYW5nZWxvZ10uIEhvd2V2ZXIsIGl0IG1heSBiZSBlYXNpZXIgdG8gc2ltcGx5IHRyeSB1 c2luZyBCaXNlY3RfcHB4DQogIGFzIGJlZm9yZSDigJMgaXQgd2lsbCB3YXJuIHlvdSBpZiB5b3Ug dXNlIGEgZGVwcmVjYXRlZCBmbGFnLiBUaGUNCiAgZGVwcmVjYXRlZCBmbGFncyB3aWxsIGJlIHJl bW92ZWQgaW4gQmlzZWN0X3BweCAyLjEuMCwgZXhwZWN0ZWQgYXJvdW5kDQogIEp1bHkgMjAyMC4N Cg0KICBIYXBweSB0ZXN0aW5nIQ0KDQogIDxodHRwczovL2dpdGh1Yi5jb20vYWFudHJvbi9iaXNl Y3RfcHB4Pg0KDQoNCltyZWxlYXNlIDIuMC4wXQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9hYW50cm9u L2Jpc2VjdF9wcHgvcmVsZWFzZXMvdGFnLzIuMC4wPg0KDQpbKipCaXNlY3RfcHB4KipdIDxodHRw czovL2dpdGh1Yi5jb20vYWFudHJvbi9iaXNlY3RfcHB4Pg0KDQpbc2VuZCByZXBvcnRzIGF1dG9t YXRpY2FsbHldDQo8aHR0cHM6Ly9naXRodWIuY29tL2FhbnRyb24vYmlzZWN0X3BweCNDb3ZlcmFs bHM+DQoNCltDbWRsaW5lcl0gPGh0dHBzOi8vZXJyYXRpcXVlLmNoL3NvZnR3YXJlL2NtZGxpbmVy L2RvYy9DbWRsaW5lcj4NCg0KW1JFQURNRV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9hYW50cm9uL2Jp c2VjdF9wcHgjcmVhZG1lPg0KDQpbY2hhbmdlbG9nXSA8aHR0cHM6Ly9naXRodWIuY29tL2FhbnRy b24vYmlzZWN0X3BweC9yZWxlYXNlcy90YWcvMi4wLjA+DQoNCg0KT0NhbWwgNC4wOS4xIHJlbGVh c2VkDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZANCg0KICBBcmNoaXZlOiA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L29j YW1sLTQtMDktMS1yZWxlYXNlZC81MzQxLzE+DQoNCg0Kb2N0YWNocm9uIGFubm91bmNlZA0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoN CiAgV2UgaGF2ZSB0aGUgcGxlYXN1cmUgb2YgY2VsZWJyYXRpbmcgdGhlIGFubml2ZXJzYXJ5IG9m IHRoZSBmaXJzdA0KICBzcGFjZXdhbGssIGNvbmR1Y3RlZCBieSBBbGV4ZWkgTGVvbm92LCBieSBh bm5vdW5jaW5nIHRoZSByZWxlYXNlIG9mDQogIE9DYW1sIHZlcnNpb24gNC4wOS4xLiAgVGhpcyBp cyBtYWlubHkgYSBidWctZml4IHJlbGVhc2UsIHdpdGggYQ0KICBoYW5kZnVsIG9mIGNvbmZpZ3Vy YXRpb24gZml4ZXMgYW5kIGEgR0MgZml4IGJhY2twb3J0ZWQgZnJvbSA0LjEwLjANCiAgLiBTZWUg dGhlIGxpc3Qgb2YgY2hhbmdlcyBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLg0KDQogIEl0IGlzIChv ciBzb29uIHdpbGwgYmUpIGF2YWlsYWJsZSBhcyBhIHNldCBvZiBPUEFNIHN3aXRjaGVzLCBhbmQg YXMgYQ0KICBzb3VyY2UgZG93bmxvYWQgaGVyZToNCg0KICA8aHR0cHM6Ly9naXRodWIuY29tL29j YW1sL29jYW1sL2FyY2hpdmUvNC4wOS4xLnRhci5nej4NCg0KDQpDaGFuZ2VzIGluIDQuMDkuMToN CuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0K DQogIOKAoiBbIzkwNzNdLCBbIzkxMjBdOiBmaXggaW5jb3JyZWN0IEdDIHJhdGlvIG11bHRpcGxp ZXIgd2hlbiBhbGxvY2F0aW5nDQogICAgY3VzdG9tIGJsb2NrcyB3aXRoIGNhbWxfYWxsb2NfY3Vz dG9tX21lbSBpbiBydW50aW1lL2N1c3RvbS5jIChNYXJrdXMNCiAgICBNb3R0bCwgcmV2aWV3IGJ5 IEdhYnJpZWwgU2NoZXJlciBhbmQgRGFtaWVuIERvbGlnZXopDQoNCiAg4oCiIFsjODg1NV0sIFsj ODg1OF06IExpbmtzIGZvciB0b29scyBub3QgY3JlYXRlZCB3aGVuIGluc3RhbGxpbmcgd2l0aA0K ICAgIOKAk2Rpc2FibGUtaW5zdGFsbGluZy1ieWVjb2RlLXByb2dyYW1zIChlLmcuIG9jYW1sZGVw Lm9wdCBpbnN0YWxsZWQsDQogICAgYnV0IG9jYW1sZGVwIGxpbmsgbm90IGNyZWF0ZWQpIChEYXZp ZCBBbGxzb3BwLCByZXBvcnQgYnkgVGhvbWFzDQogICAgTGVvbmFyZCkNCg0KICDigKIgWyM4OTQ3 XSwgWyM5MTM0XSwgWyM5MzAyXTogZml4L2ltcHJvdmUgc3VwcG9ydCBmb3IgdGhlIEJGRCBsaWJy YXJ5DQogICAgKFPDqWJhc3RpZW4gSGluZGVyZXIsIHJldmlldyBieSBEYW1pZW4gRG9saWdleiBh bmQgRGF2aWQgQWxsc29wcCkNCg0KICDigKIgWyM4OTUzXSwgWyM4OTU0XTogRml4IGVycm9yIHN1 Ym1lc3NhZ2VzIGluIHRoZSB0b3BsZXZlbDogZG8gbm90DQogICAgZGlzcGxheSBkdW1teSBsb2Nh dGlvbnMgKEFybWHDq2wgR3XDqW5lYXUsIHJldmlldyBieSBHYWJyaWVsIFNjaGVyZXIpDQoNCiAg 4oCiIFsjODk2NV0sIFsjODk3OV06IEFscGluZSBidWlsZCBmYWlsdXJlIGNhdXNlZCBieQ0KICAg IGNoZWNrLXBhcnNlci11cHRvZGF0ZS1vci13YXJuLnNoIChHYWJyaWVsIFNjaGVyZXIgYW5kIERh dmlkIEFsbHNvcHAsDQogICAgcmVwb3J0IGJ5IEFudG9uIEtvY2hrb3YpDQoNCiAg4oCiIFsjODk4 NV0sIFsjODk4Nl06IGZpeCBnZW5lcmF0aW9uIG9mIHRoZSBwcmltaXRpdmVzIHdoZW4gdGhlIGxv Y2FsZQ0KICAgIGNvbGxhdGlvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCBDLiAoRGF2aWQgQWxsc29w cCwgcmV2aWV3IGJ5IE5pY29sw6FzDQogICAgT2plZGEgQsOkciwgcmVwb3J0IGJ5IFNlYmFzdGlh biBSYXNtdXNzZW4pDQoNCiAg4oCiIFsjOTA1MF0sIFsjOTA3Nl06IGluc3RhbGwgbWlzc2luZyBj b21waWxlcmxpYnMvb2NhbWxtaWRkbGVlbmQNCiAgICBhcmNoaXZlcyAoR2FicmllbCBTY2hlcmVy LCByZXZpZXcgYnkgRmxvcmlhbiBBbmdlbGV0dGksIHJlcG9ydCBieQ0KICAgIE9sYWYgSGVyaW5n KQ0KDQogIOKAoiBbIzkxNDRdLCBbIzkxODBdOiBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBnbG9i YWwgdmFyaWFibGVzIGluIHRoZSBDDQogICAgcnVudGltZSwgY2F1c2luZyBwcm9ibGVtcyB3aXRo IEdDQyAxMC4wIGFuZCBwb3NzaWJseSB3aXRoIG90aGVyIEMNCiAgICBjb21waWxlcnMgKFhhdmll ciBMZXJveSwgcmVwb3J0IGJ5IErDvHJnZW4gUmV1dGVyLCByZXZpZXcgYnkgTWFyaw0KICAgIFNo aW53ZWxsKQ0KDQogIOKAoiBbIzkxODBdOiBwYXNzIC1mbm8tY29tbW9uIG9wdGlvbiB0byBDIGNv bXBpbGVyIHdoZW4gYXZhaWxhYmxlLCBzbyBhcw0KICAgIHRvIGRldGVjdCBwcm9ibGVtYXRpYyBt dWx0aXBsZSBkZWZpbml0aW9ucyBvZiBnbG9iYWwgdmFyaWFibGVzIGluDQogICAgdGhlIEMgcnVu dGltZSAoWGF2aWVyIExlcm95LCByZXZpZXcgYnkgTWFyayBTaGlud2VsbCkNCg0KICDigKIgWyM5 MTI4XTogRml4IGEgYnVnIGluIGJ5dGVjb2RlIG1vZGUgd2hpY2ggY291bGQgbGVhZCB0byBhDQog ICAgc2VnbWVudGF0aW9uIGZhdWx0LiBUaGUgYnVnIHdhcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhh dCB0aGUgYXRvbQ0KICAgIHRhYmxlIHNoYXJlZCBhIHBhZ2Ugd2l0aCBzb21lIGJ5dGVjb2RlLiBU aGUgZml4IG1ha2VzIHN1cmUgYm90aCB0aGUNCiAgICBhdG9tIHRhYmxlIGFuZCB0aGUgbWlub3Ig aGVhcCBoYXZlIHRoZWlyIG93biBwYWdlcy4gKEphY3F1ZXMtSGVucmkNCiAgICBKb3VyZGFuLCBy ZXZpZXcgYnkgU3RlcGhlbiBEb2xhbiwgWGF2aWVyIExlcm95IGFuZCBHYWJyaWVsIFNjaGVyZXIp DQoNCg0KWyM5MDczXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy85MDcz Pg0KDQpbIzkxMjBdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzkxMjA+ DQoNClsjODg1NV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvODg1NT4N Cg0KWyM4ODU4XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy84ODU4Pg0K DQpbIzg5NDddIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzg5NDc+DQoN ClsjOTEzNF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvOTEzND4NCg0K WyM5MzAyXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy85MzAyPg0KDQpb Izg5NTNdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzg5NTM+DQoNClsj ODk1NF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvODk1ND4NCg0KWyM4 OTY1XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy84OTY1Pg0KDQpbIzg5 NzldIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzg5Nzk+DQoNClsjODk4 NV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvODk4NT4NCg0KWyM4OTg2 XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy84OTg2Pg0KDQpbIzkwNTBd IDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzkwNTA+DQoNClsjOTA3Nl0g PGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvOTA3Nj4NCg0KWyM5MTQ0XSA8 aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy85MTQ0Pg0KDQpbIzkxODBdIDxo dHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvaXNzdWVzLzkxODA+DQoNClsjOTEyOF0gPGh0 dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvOTEyOD4NCg0KDQpDb29raWUgMC4x LjYNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxo dHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLWNvb2tpZS0wLTEtNi81MzQ2LzE+DQoNCg0K VWxyaWsgU3RyaWQgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBJIHJlY2VudGx5IHJlbGVhc2VkIGEg Y29va2llIGxpYnJhcnkuIEl0IGNhbiBwYXJzZSBhbmQgY3JlYXRlIGNvb2tpZQ0KICBoZWFkZXJz IChgbGlzdCgoc3RyaW5nLCBzdHJpbmcpJyB3aGljaCBib3RoIENvaHR0cCBhbmQgSHR0cGFmIHVz ZXMpLA0KICBib3RoIGBTZXQtQ29va2llJyBhbmQgYENvb2tpZScgc28gaXQgd29ya3Mgb24gYm90 aCBjbGllbnQgYW5kDQogIHNlcnZlci4gSXQgc2hvdWxkIGJlIGNvbXBsaWFudCB3aXRoDQogIDxo dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjI2NT4gYW5kIEkgaGF2ZSBhIHByZXR0eSBn b29kIHRlc3QNCiAgc3VpdGUgZm9yIHRoZSBwYXJzaW5nIG9mIGNvb2tpZXMgYXQgbGVhc3QuDQoN CiAgSSBjb3VsZG7igJl0IGZpbmQgYSBzdGFuZGFsb25lIGxpYnJhcnkgYmVmb3JlIHRoaXMgc28g SSBkZWNpZGVkIHRvDQogIGNyZWF0ZSBvbmUgc2luY2UgSSBuZWVkIGl0IGZvciBteSB3ZWIgZnJh bWV3b3JrLCBgTW9ycGgnLg0KDQogIFRoZSBuZXh0IHN0ZXAgaXMgdG8gY3JlYXRlIGFuZCBwdWJs aXNoIGludGVncmF0aW9ucyB3aXRoDQogIFtgb2NhbWwtc2Vzc2lvbiddIHdoaWNoIEkgaGF2ZSBz dGFydGVkLg0KDQogIOKAoiBSZXBvOiA8aHR0cHM6Ly9naXRodWIuY29tL3Vscmlrc3RyaWQvb2Nh bWwtY29va2llPg0KICDigKIgRG9jczogPGh0dHBzOi8vdWxyaWtzdHJpZC5naXRodWIuaW8vb2Nh bWwtY29va2llPg0KDQoNCltgb2NhbWwtc2Vzc2lvbiddIDxodHRwczovL2dpdGh1Yi5jb20vaW5o YWJpdGVkdHlwZS9vY2FtbC1zZXNzaW9uPg0KDQoNCkZpcnN0IHJlbGVhc2Ugb2YgbHd0LXBpcGVs aW5lDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0 cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Fubi1maXJzdC1yZWxlYXNlLW9mLWx3dC1waXBlbGlu ZS80MjIwLzI+DQoNCg0KUmFwaGHDq2wgUHJvdXN0IGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA DQoNCiAgQSBzZWNvbmQgcmVsZWFzZSBvZiBgbHd0LXBpcGVsaW5lJyAodjAuMikgaXMgYXZhaWxh YmxlIHRocm91Z2gNCiAgYG9wYW0nLiBUaGlzIG5ldyByZWxlYXNlIG1ha2VzIG5vIGNoYW5nZSB0 byB0aGUgY29kZSBhbmQgb25seSBhZmZlY3RzDQogIHRoZSBmb2xsb3dpbmc6DQoNCiAg4oCiIGxv b3NlciBjb25zdHJhaW50cyBvbiB2ZXJzaW9ucyBvZiBgZHVuZScgZGVwZW5kZW5jeSwNCiAg4oCi IHRlc3RzLA0KICDigKIgdGVzdHMgYXJlIGV4ZWN1dGVkIGluIENJLA0KICDigKIgbWlub3IgZG9j dW1lbnRhdGlvbiBpbXByb3ZlbWVudHMuDQoNCg0KVXNpbmcgT2NhbWwgYXMgc2NyaXB0aW5nIGxh bmd1YWdlIC0gcGlwaW5nIHNoIGNvbW1hbmRzDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9j YW1sLm9yZy90L3VzaW5nLW9jYW1sLWFzLXNjcmlwdGluZy1sYW5ndWFnZS1waXBpbmctc2gtY29t bWFuZHMvNTM2Ni8xPg0KDQoNCk5pY29sYXMgVG9sbGVuYWVyZSBhbm5vdW5jZWQNCuKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIEkgYW0gdHJ5aW5nIHRvIHVzZSBvY2FtbCB0byBwaXBl IHRoZSByZXN1bHQgb2YgYSBjb21tYW5kIHRvIGFub3RoZXIgKEkNCiAgd291bGQgYWxzbyBiZSBp bnRlcmVzdGVkIGluIGZlZWRpbmcgYSBzdHJpbmcgb3IgYSBpbyBzdHJlYW0gaW50byBhIHNoDQog IGNvbW1hbmQpLiBGb3IgZXhhbXBsZSwgSSB3b3VsZCBsaWtlIHRvIGRvIHRoZSBlcXVpdmFsZW50 IG9mIGNhdA0KICBmb28udHh0IHwgZ3JlcCB0aGluZywgb3IgcGlwZSB0aGUgcmVzdWx0IG9mIG9u ZSBvZiBteSBvY2FtbCBmdW5jdGlvbg0KICBpbnRvIGdyZXAuDQoNCiAgUXVpdGUgc3VycHJpbnNp bmdseSwgbmVpdGhlciB0aGUgU3RkbGliIG9yIEJhdHRlcmllcyBTeXMgbW9kdWxlcw0KICBleHBv c2UgYW55IHdheSB0byBoYW5kbGUgdGhlIG91dHB1dCBvZiBTeXMuY29tbWFuZCBkaXJlY3RseSAo SSB3b3VsZA0KICBoYXZlIHRob3VnaHQgdGhlcmUgd291bGQgYmUgb3B0aW9uYWwgaW5wdXQgYW5k IG91dHB1dCBhcmd1bWVudHMNCiAgZGVmYXVsdGluZyB0byBzdGRpbiBhbmQgc3Rkb3V0LCBvciBz b21ldGhpbmcgYWxvbmcgdGhhdCkuIEJhdHRlcmllcyBJTw0KICBtb2R1bGUgZG9lcyBleHBvc2Ug YSBwaXBlIGZ1bmN0aW9uIGJ1dCBpdCdzIG5vdCBjbGVhciBmb3IgbWUgaG93IGl0DQogIHdvdWxk IGludGVyYWN0IHdpdGggdGhlIFN5cyBtb2R1bGUuIEFueSBpZGVhcyBvciBvdGhlciBtb2R1bGVz L3BhY2thZ2UNCiAgSSBjb3VsZCB1c2UgPw0KDQoNCk5pY29sw6FzIE9qZWRhIELDpHIgc3VnZ2Vz dGVkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBJIHRoaW5rIHlvdSBtYXkgYmUgaW50 ZXJlc3RlZCBieQ0KICA8aHR0cHM6Ly9naXRodWIuY29tL2phbmVzdHJlZXQvc2hleHA+Lg0KDQoN Ck5pY29sYXMgVG9sbGVuYWVyZSB0aGVuIHNhaWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gA0KDQogIEBncmF5c3dhbmR5ciBAbm9qYiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLiBJIGp1 c3QgZm91bmQgc2hjYW1sDQogIDxodHRwOi8vdG92LmdpdGh1Yi5pby9zaGNhbWwvZG9jLz4gYW5k IEkgd2FzIGdvaW5nIHRvIGdpdmUgaXQgYSB0cnksDQogIGRvIHlvdSBrbm93IGhvdyBpdCBjb21w YXJlcyB0byBzaGV4cCA/DQoNCg0KRGF2aWQgQ2hlbW91aWwgcmVwbGllZA0K4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoN CiAgQUZBSUsgc2hjYW1sIGlzIHVubWFpbnRhaW5lZCwgYnV0IHRoZSBhcHByb2FjaCBpcyB2ZXJ5 IG5pY2UgaW5kZWVkLg0KDQoNCk9sZCBDV04NCuKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIElm IHlvdSBoYXBwZW4gdG8gbWlzcyBhIENXTiwgeW91IGNhbiBbc2VuZCBtZSBhIG1lc3NhZ2VdIGFu ZCBJJ2xsIG1haWwNCiAgaXQgdG8geW91LCBvciBnbyB0YWtlIGEgbG9vayBhdCBbdGhlIGFyY2hp dmVdIG9yIHRoZSBbUlNTIGZlZWQgb2YgdGhlDQogIGFyY2hpdmVzXS4NCg0KICBJZiB5b3UgYWxz byB3aXNoIHRvIHJlY2VpdmUgaXQgZXZlcnkgd2VlayBieSBtYWlsLCB5b3UgbWF5IHN1YnNjcmli ZQ0KICBbb25saW5lXS4NCg0KICBbQWxhbiBTY2htaXR0XQ0KDQoNCltzZW5kIG1lIGEgbWVzc2Fn ZV0gPG1haWx0bzphbGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5vcmc+DQoNClt0aGUgYXJjaGl2 ZV0gPGh0dHA6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC9jd24vPg0KDQpbUlNTIGZlZWQgb2YgdGhl IGFyY2hpdmVzXSA8aHR0cDovL2FsYW4ucGV0aXRlcG9tbWUubmV0L2N3bi9jd24ucnNzPg0KDQpb b25saW5lXSA8aHR0cDovL2xpc3RzLmlkeWxsLm9yZy9saXN0aW5mby9jYW1sLW5ld3Mtd2Vla2x5 Lz4NCg0KW0FsYW4gU2NobWl0dF0gPGh0dHA6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC8+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.

--=-=-=--