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 sympa.inria.fr (Postfix) with ESMTPS id 322017F3B1 for ; Tue, 3 Mar 2020 09:00:22 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.70,510,1574118000"; d="scan'208,217";a="438523030" Received: from set.irisa.fr (HELO set) ([131.254.10.170]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384; 03 Mar 2020 09:00:21 +0100 From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr, comp@lists.orbitalfox.eu Date: Tue, 03 Mar 2020 09:00:21 +0100 Message-ID: <87r1y96f6y.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 SGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhl IHdlZWsgb2YgRmVicnVhcnkgMjUgdG8NCk1hcmNoIDAzLCAyMDIwLg0KDQpU YWJsZSBvZiBDb250ZW50cw0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCk9DYW1sIDQuMTAgcmVsZWFz ZWQNClN1bW1hcnkgb2YgdGhlIER1bmUgcmV0cmVhdCAyMDIwDQpNdWx0aWNv cmUgT0NhbWw6IEZlYiAyMDIwIHVwZGF0ZQ0KT3Bsb3QgMC41MA0Kc291cGF1 bHQ6IGEgc3RhdGljIHdlYnNpdGUgZ2VuZXJhdG9yIGJhc2VkIG9uIEhUTUwg cmV3cml0aW5nDQpPbGQgQ1dODQoNCg0KT0NhbWwgNC4xMCByZWxlYXNlZA0K 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZTogPGh0dHBzOi8vZGlzY3Vzcy5v Y2FtbC5vcmcvdC9vY2FtbC00LTEwLXJlbGVhc2VkLzUxOTQvND4NCg0KDQpD b250bnVpbmcgdGhpcyB0aHJlYWQsIEFuaWwgTWFkaGF2YXBlZGR5IHNhaWQN CuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gA0KDQogIEluZGVlZCwgbWFueSB0aGFua3MgdG8gZXZlcnlvbmUgd2hvIGxl YXB0IGluIHRvIG1ha2UgNC4xMCByZWFkeSBpbg0KICBvcGFtIGluIHN1Y2gg cmVjb3JkIHRpbWUhICBKdXN0IGEgbm90ZSB0aGF0IHRoZSBDSSBEb2NrZXIg aW1hZ2VzIGFyZQ0KICBub3cgYWxzbyByZWJ1aWx0IGZvciB4ODZfNjQsIGFy bTMyLzY0IGFuZCBwcGM2NGxlIHRvIHJlZmxlY3QgdGhlIDQuMTANCiAgcmVs ZWFzZSwgc28gZmVlbCBmcmVlIHRvIHN0YXJ0IHVzaW5nDQogIHRoZW0uIDxo dHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb2NhbWwvb3BhbTIvdGFncz4NCg0K DQpTdW1tYXJ5IG9mIHRoZSBEdW5lIHJldHJlYXQgMjAyMA0K4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoN CiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9z dW1tYXJ5LW9mLXRoZS1kdW5lLXJldHJlYXQtMjAyMC81MjI0LzE+DQoNCg0K SsOpcsOpbWllIERpbWlubyBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgA0KDQogIFdlIHJlY2VudGx5IG9yZ2FuaXNlZCB0aGUgc2Vj b25kIER1bmUgcmV0cmVhdC4gSWYgeW91J2QgbGlrZSB0byBzZWUNCiAgd2hh dCBpcyBoYXBwZW5pbmcgaW4gdGhlIER1bmUgd29ybGQgYXQgdGhlIG1vbWVu dCwgcGxlYXNlIGZpbmQgYQ0KICBzdW1tYXJ5IG9mIHdoYXQgd2UgZGlzY3Vz c2VkIGFuZCB3b3JrIG9uIGluIHRoaXMgYmxvZyBwb3N0IQ0KDQogIDxodHRw czovL2R1bmUuYnVpbGQvYmxvZy9kdW5lLXJldHJlYXQtMjAyMC8+DQoNCg0K TXVsdGljb3JlIE9DYW1sOiBGZWIgMjAyMCB1cGRhdGUNCuKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQog IEFyY2hpdmU6DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvbXVs dGljb3JlLW9jYW1sLWZlYi0yMDIwLXVwZGF0ZS81MjI3LzE+DQoNCg0KQW5p bCBNYWRoYXZhcGVkZHkgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIANCg0KICBXZWxjb21lIHRvIHRoZSBGZWJydWFy eSAyMDIwIG5ld3MgdXBkYXRlIGZyb20gdGhlIE11bHRpY29yZSBPQ2FtbA0K ICB0ZWFtLCBzcHJlYWQgYWNyb3NzIHRoZSBVSywgSW5kaWEsIEZyYW5jZSBh bmQgU3dpdHplcmxhbmQhIFRoaXMNCiAgZm9sbG93cyBvbiBmcm9tIFtsYXN0 IG1vbnRoJ3NdIHVwZGF0ZSwgYW5kIGhhcyBiZWVuIHB1dCB0b2dldGhlciBi eQ0KICBAc2hha3RoaW1hYW4gYW5kIEBrYXljZWVzcmsuDQoNCiAgVGhlIFty ZWxlYXNlIG9mIE9DYW1sIDQuMTAuMF0gaGFzIHN1Y2Nlc3NmdWxseSBwdXNo ZWQgb3V0IHNvbWUNCiAgcHJlcmVxdWlzaXRlIGZlYXR1cmVzIGludG8gdGhl IHVwc3RyZWFtIGNvbXBpbGVyLiAgT3VyIHdvcmsgaW4NCiAgRmVicnVhcnkg aGFzIGZvY3Vzc2VkIG9uIGdldHRpbmcgdGhlIG11bHRpY29yZSBPQ2FtbCBi cmFuY2ggImZlYXR1cmUNCiAgY29tcGxldGUiIHdpdGggcmVzcGVjdCB0byB0 aGUgY29tcGxldGUgT0NhbWwgbGFuZ3VhZ2UsIGFuZCBkb2luZw0KICBleHRl bnNpdmUgYmVuY2htYXJraW5nIGFuZCBzdHJlc3MgdGVzdGluZyB0byB0ZXN0 IG91ciB0d28gbWlub3IgaGVhcA0KICBpbXBsZW1lbnRhdGlvbnMuDQoNCiAg VG8gdGhpcyBlbmQsIGEgbnVtYmVyIG9mIHNpZ25pZmljYW50IHBhdGNoZXMg aGF2ZSBiZWVuIG1lcmdlZCBpbnRvIHRoZQ0KICBbTXVsdGljb3JlIE9DYW1s IHRyZWVzXSB0aGF0IGVzc2VudGlhbGx5IHByb3ZpZGUgY29tcGxldGUgY292 ZXJhZ2Ugb2YNCiAgdGhlIGxhbmd1YWdlIGZlYXR1cmVzLiBXZSBlbmNvdXJh Z2UgeW91IHRvIHRlc3QgdGhlIHNhbWUgZm9yDQogIHJlZ3Jlc3Npb25zIGFu ZCBwcm92aWRlIGFueSBpbXByb3ZlbWVudHMgb3IgcmVwb3J0IHNob3J0Y29t aW5ncyB0bw0KICB1cy4gVGhlcmUgYXJlIG9uZ29pbmcgT0NhbWwgUFJzIGFu ZCBpc3N1ZXMgdGhhdCBhcmUgYWxzbyB1bmRlciByZXZpZXcsDQogIGFuZCB3 ZSBob3BlIHRvIGNvbXBsZXRlIHRob3NlIGZvciB0aGUgNC4xMSByZWxlYXNl IGN5Y2xlLiBBIG5ldyBzZXQgb2YNCiAgcGFyYWxsZWwgYmVuY2htYXJrcyBo YXZlIGJlZW4gYWRkZWQgdG8gb3VyIFtTYW5kbWFyayBiZW5jaG1hcmtpbmcN CiAgc3VpdGVdIChsaXZlIGluc3RhbmNlIFtoZXJlXSksIGluY2x1ZGluZyBl bmhhbmNlbWVudHMgdG8gdGhlIGJ1aWxkDQogIHNldHVwLg0KDQoNCltsYXN0 IG1vbnRoJ3NdDQo8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L211bHRp Y29yZS1vY2FtbC1qYW51YXJ5LTIwMjAtdXBkYXRlLzUwOTA+DQoNCltyZWxl YXNlIG9mIE9DYW1sIDQuMTAuMF0NCjxodHRwczovL2Rpc2N1c3Mub2NhbWwu b3JnL3Qvb2NhbWwtNC0xMC1yZWxlYXNlZC81MTk0Pg0KDQpbTXVsdGljb3Jl IE9DYW1sIHRyZWVzXQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC1tdWx0 aWNvcmUvb2NhbWwtbXVsdGljb3JlPg0KDQpbU2FuZG1hcmsgYmVuY2htYXJr aW5nIHN1aXRlXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sLWJlbmNoL3Nh bmRtYXJrPg0KDQpbaGVyZV0gPGh0dHA6Ly9iZW5jaDIub2NhbWxsYWJzLmlv Pg0KDQpNdWx0aWNvcmUgT0NhbWwNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQril4ogQ29tcGxldGVkDQoNCiAg VGhlIGZvbGxvd2luZyBQUnMgaGF2ZSBiZWVuIG1lcmdlZCBpbnRvIE11bHRp Y29yZSBPQ2FtbDoNCg0KICDigKIgW29jYW1sLW11bHRpY29yZS9vY2FtbC1t dWx0aWNvcmUjMjgxXSBJbnRyb2R1Y2UgYEZvcmNpbmdfdGFnJyB0byBmaXgN CiAgICBjb25jdXJyZW5jeSBidWcgd2l0aCBsYXp5IHZhbHVlcw0KDQogICAg QSBgRm9yY2luZ190YWcnIGlzIHVzZWQgdG8gaW1wbGVtZW50IGxhenkgdmFs dWVzIHRvIGhhbmRsZSBhDQogICAgY29uY3VycmVuY3kgYnVnLiBJdCBiZWhh dmVzIGxpa2UgYSBsb2NrZWQgYml0LCBhbmQgYW55IGNvbmN1cnJlbnQNCiAg ICBhY2Nlc3MgYnkgYSBtdXRhdG9yIHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9u IG9uIHRoYXQgZG9tYWluLg0KDQogIOKAoiBbb2NhbWwtbXVsdGljb3JlL29j YW1sLW11bHRpY29yZSMyODJdIFNhZmVwb2ludHMNCg0KICAgIEEgcHJlbGlt aW5hcnkgdmVyc2lvbiBvZiBzYWZlIHBvaW50cyBoYXMgYmVlbiBtZXJnZWQg aW50byB0aGUNCiAgICBNdWx0aWNvcmUgT0NhbWwgdHJlZXMuIFtvY2FtbC1t dWx0aWNvcmUvb2NhbWwtbXVsdGljb3JlIzE4N10gYWxzbw0KICAgIGNvbnRh aW5zIG1vcmUgZGlzY3Vzc2lvbiBhbmQgYmFja2dyb3VuZCBhYm91dCBob3cg Y292ZXJhZ2UgY2FuIGJlDQogICAgaW1wcm92ZWQgaW4gZnV0dXJlIFBScy4N Cg0KICDigKIgW29jYW1sLW11bHRpY29yZS9vY2FtbC1tdWx0aWNvcmUjMjg1 XSBJbnRyb2R1Y2UgYW4gJ29wcG9ydHVuaXN0aWMnDQogICAgbWFqb3IgY29s bGVjdGlvbiBzbGljZQ0KDQogICAgQW4gIm9wcG9ydHVuaXN0aWMgd29yayBj cmVkaXQiIGlzIGltcGxlbWVudGVkIGluIHRoaXMgUFIgd2hpY2ggZm9ybXMN CiAgICBhIGJhc2lzIGZvciBkb2luZyBtYXJrIGFuZCBzd2VlcCB3b3JrIHdo aWxlIHdhaXRpbmcgdG8gc3luY2hyb25pc2UNCiAgICB3aXRoIG90aGVyIGRv bWFpbnMuDQoNCiAg4oCiIFtvY2FtbC1tdWx0aWNvcmUvb2NhbWwtbXVsdGlj b3JlIzI4Nl0gRG8gZmZsdXNoIGFuZCB2YXJpYWJsZSBhcmdzIGluDQogICAg Y2FtbF9nY19sb2cNCg0KICAgIFRoZSBjYW1sX2djX2xvZygpIGZ1bmN0aW9u IGhhcyBiZWVuIHVwZGF0ZWQgdG8gZW5zdXJlIHRoYXQgYGZmbHVzaCcNCiAg ICBpcyBpbnZva2VkIG9ubHkgd2hlbiBHQyBsb2dnaW5nIGlzIGVuYWJsZWQu DQoNCiAg4oCiIFtvY2FtbC1tdWx0aWNvcmUvb2NhbWwtbXVsdGljb3JlIzI4 N10gSW5jcmVhc2UgRVZFTlRfQlVGX1NJWkUNCg0KICAgIER1cmluZyBkZWJ1 Z2dpbmcgd2l0aCBldmVudCB0cmFjZSBkYXRhIGl0IGlzIHVzZWZ1bCB0byBy ZWR1Y2UgdGhlDQogICAgYnVmZmVyIGZsdXNoIHRpbWVzLCBhbmQgaGVuY2Ug dGhlIGBFVkVOVF9CVUZfU0laRScgaGFzIG5vdyBiZWVuDQogICAgaW5jcmVh c2VkLg0KDQogIOKAoiBbb2NhbWwtbXVsdGljb3JlL29jYW1sLW11bHRpY29y ZSMyODhdIFdyaXRlIGJhcnJpZXIgb3B0aW1pemF0aW9uDQoNCiAgICBUaGlz IFBSIGNsb3NlcyB0aGUgcmVncmVzc2lvbiBmb3IgdGhlIGBjaGFtZW5lb3Nf cmVkdXhfbHd0Jw0KICAgIGJlbmNobWFya2luZyBpbiBTYW5kbWFyayBieSB1 c2luZyBgaW50bmF0JyB0byBhdm9pZCBzaWduIGV4dGVuc2lvbnMNCiAgICBh bmQgY2xlYW5zIHVwIGB3cml0ZV9iYXJyaWVyJyB0byBpbXByb3ZlIG92ZXJh bGwgcGVyZm9ybWFuY2UuDQoNCiAg4oCiIFtvY2FtbC1tdWx0aWNvcmUvb2Nh bWwtbXVsdGljb3JlIzI5MF0gVW5pZnkgc3dlZXAgYnVkZ2V0IHRvIGJlIGlu DQogICAgd29yZCBzaXplDQoNCiAgICBUaGUgUFIgdXBkYXRlcyB0aGUgc3dl ZXAgd29yayB1bml0cyB0byBhbGwgYmUgaW4gd29yZCBzaXplLiBUaGlzIGlz DQogICAgdG8gaGFuZGxlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBi dWRnZXQgZm9yIHNldHVwLCBzd2VlcCBhbmQNCiAgICBmb3IgbGFyZ2UgYWxs b2NhdGlvbnMgaW4gYmxvY2tzLg0KDQoNCiAgW29jYW1sLW11bHRpY29yZS9v Y2FtbC1tdWx0aWNvcmUjMjgxXQ0KICA8aHR0cHM6Ly9naXRodWIuY29tL29j YW1sLW11bHRpY29yZS9vY2FtbC1tdWx0aWNvcmUvcHVsbC8yODE+DQoNCiAg W29jYW1sLW11bHRpY29yZS9vY2FtbC1tdWx0aWNvcmUjMjgyXQ0KICA8aHR0 cHM6Ly9naXRodWIuY29tL29jYW1sLW11bHRpY29yZS9vY2FtbC1tdWx0aWNv cmUvcHVsbC8yODI+DQoNCiAgW29jYW1sLW11bHRpY29yZS9vY2FtbC1tdWx0 aWNvcmUjMTg3XQ0KICA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sLW11bHRp Y29yZS9vY2FtbC1tdWx0aWNvcmUvaXNzdWVzLzE4Nz4NCg0KICBbb2NhbWwt bXVsdGljb3JlL29jYW1sLW11bHRpY29yZSMyODVdDQogIDxodHRwczovL2dp dGh1Yi5jb20vb2NhbWwtbXVsdGljb3JlL29jYW1sLW11bHRpY29yZS9wdWxs LzI4NT4NCg0KICBbb2NhbWwtbXVsdGljb3JlL29jYW1sLW11bHRpY29yZSMy ODZdDQogIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwtbXVsdGljb3JlL29j YW1sLW11bHRpY29yZS9wdWxsLzI4Nj4NCg0KICBbb2NhbWwtbXVsdGljb3Jl L29jYW1sLW11bHRpY29yZSMyODddDQogIDxodHRwczovL2dpdGh1Yi5jb20v b2NhbWwtbXVsdGljb3JlL29jYW1sLW11bHRpY29yZS9wdWxsLzI4Nz4NCg0K ICBbb2NhbWwtbXVsdGljb3JlL29jYW1sLW11bHRpY29yZSMyODhdDQogIDxo dHRwczovL2dpdGh1Yi5jb20vb2NhbWwtbXVsdGljb3JlL29jYW1sLW11bHRp Y29yZS9wdWxsLzI4OD4NCg0KICBbb2NhbWwtbXVsdGljb3JlL29jYW1sLW11 bHRpY29yZSMyOTBdDQogIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwtbXVs dGljb3JlL29jYW1sLW11bHRpY29yZS9wdWxsLzI5MD4NCg0KDQril4ogT25n b2luZw0KDQogIOKAoiBBIGxvdCBvZiB3b3JrIGlzIG9uZ29pbmcgZm9yIHRo ZSBpbXBsZW1lbnRhdGlvbiBvZiBhIHN5bmNocm9uaXNlZA0KICAgIG1pbm9y IGdhcmJhZ2UgY29sbGVjdG9yIGZvciBNdWx0aWNvcmUgT0NhbWwsIGluY2x1 ZGluZyBiZW5jaG1hcmtpbmcNCiAgICBmb3IgdGhlIHN0b3AtdGhlLXdvcmxk IChzdHcpIGJyYW5jaC4gIFdlIHdpbGwgcHVibGlzaCB0aGUgcmVzdWx0cyBv Zg0KICAgIHRoaXMgaW4gYSBmdXR1cmUgdXBkYXRlLCBhcyB3ZSBhcmUgYXNz ZW1ibGluZyBhIGN1cnJlbnRseQ0KICAgIGNvbXByZWhlbnNpdmUgZXZhbHVh dGlvbiBvZiB0aGUgcnVudGltZSBhZ2FpbnN0IHRoZSBtYWluc3RyZWFtDQog ICAgcnVudGltZS4NCg0KDQpCZW5jaG1hcmtpbmcNCuKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIFtTYW5kbWFya10gbm93IGhh cyBzdXBwb3J0IHRvIHJ1biBwYXJhbGxlbCBiZW5jaG1hcmtzLiBXZSBjYW4g YWxzbyBub3cNCiAgYWJvdXQgR0MgbGF0ZW5jeSBtZWFzdXJlbWVudHMgZm9y IGJvdGggc3RvY2sgT0NhbWwgYW5kIE11bHRpY29yZSBPQ2FtbA0KICBjb21w aWxlci4NCg0KICDigKIgW29jYW1sLWJlbmNoL3NhbmRtYXJrIzczXSBNb3Jl IHBhcmFsbGVsIGJlbmNobWFya3MNCg0KICAgIEEgbnVtYmVyIG9mIHBhcmFs bGVsIGJlbmNobWFya3Mgc3VjaCBhcyBOLWJvZHksIFF1aWNrIFNvcnQgYW5k DQogICAgbWF0cml4IG11bHRpcGxpY2F0aW9uIGhhdmUgbm93IGJlZW4gYWRk ZWQgdG8gU2FuZG1hcmshDQoNCiAg4oCiIFtvY2FtbC1iZW5jaC9zYW5kbWFy ayM3Nl0gUHJvbW90ZSBwYWNrYWdlcy4gVW5icmVhayBDSS4NCg0KICAgIFRo ZSBDb250aW51b3VzIEludGVncmF0aW9uIGJ1aWxkIGNhbiBub3cgZXhlY3V0 ZSBhZnRlciB1cGRhdGluZyBhbmQNCiAgICBwcm9tb3RpbmcgcGFja2FnZXMg aW4gU2FuZG1hcmsuDQoNCiAg4oCiIFtvY2FtbC1iZW5jaC9zYW5kbWFyayM3 OF0gQWRkIHN1cHBvcnQgZm9yIGNvbGxlY3RpbmcgaW5mb3JtYXRpb24NCiAg ICBhYm91dCBHQyBwYXVzZXRpbWVzIG9uIHRydW5rDQoNCiAgICBUaGUgUFIg bm93IGhlbHBzIHByb2Nlc3MgdGhlIHJ1bnRpbWUgbG9nIGFuZCBwcm9kdWNl cyBhIGAuYmVuY2gnDQogICAgZmlsZSB0aGF0IGNhcHR1cmVzIHRoZSBHQyBw YXVzZSB0aW1lcy4gVGhpcyB3b3JrcyBvbiBib3RoIHN0b2NrDQogICAgT0Nh bWwgYW5kIGluIE11bHRpY29yZSBPQ2FtbC4NCg0KICDigKIgW29jYW1sLWJl bmNoL3NhbmRtYXJrIzg2XSBSZWFkIGFuZCB3cml0ZSBJcm1pbiBiZW5jaG1h cmsNCg0KICAgIEEgdGVzdCBmb3IgbWVhc3VyaW5nIElybWluJ3MgbWVyZ2Ug Y2FwYWJpbGl0aWVzIHdpdGggR2l0IGFzIGl0cw0KICAgIGZpbGVzeXN0ZW0g aXMgYmVpbmcgdGVzdGVkIHdpdGggZGlmZmVyZW50IHJlYWQgYW5kIHdyaXRl IHJhdGVzLg0KDQogIOKAoiBBIG51bWJlciBvZiBvdGhlciBwYXJhbGxlbCBi ZW5jaG1hcmtzIGxpa2UgTWVyZ2Ugc29ydCwNCiAgICBGbG95ZC1XYXJzaGFs bCBtYXRyaXgsIHByaW1lIG51bWJlciBnZW5lcmF0aW9uLCBwYXJhbGxlbCBt YXAsIGZpbHRlcg0KICAgIGV0LiBhbC4gaGF2ZSBiZWVuIGFkZGVkIHRvIFNh bmRtYXJrLg0KDQoNCltTYW5kbWFya10gPGh0dHA6Ly9iZW5jaDIub2NhbWxs YWJzLmlvLz4NCg0KW29jYW1sLWJlbmNoL3NhbmRtYXJrIzczXQ0KPGh0dHBz Oi8vZ2l0aHViLmNvbS9vY2FtbC1iZW5jaC9zYW5kbWFyay9wdWxsLzczPg0K DQpbb2NhbWwtYmVuY2gvc2FuZG1hcmsjNzZdDQo8aHR0cHM6Ly9naXRodWIu Y29tL29jYW1sLWJlbmNoL3NhbmRtYXJrL3B1bGwvNzY+DQoNCltvY2FtbC1i ZW5jaC9zYW5kbWFyayM3OF0NCjxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwt YmVuY2gvc2FuZG1hcmsvcHVsbC83OD4NCg0KW29jYW1sLWJlbmNoL3NhbmRt YXJrIzg2XQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC1iZW5jaC9zYW5k bWFyay9wdWxsLzg2Pg0KDQoNCkRvY3VtZW50YXRpb24NCuKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIOKAoiBFeGFtcGxl cyB1c2luZyBkb21haW5zbGliIGFuZCBtb2RpZnlpbmcgRG9tYWlucyBhcmUg Y3VycmVudGx5IGJlaW5nDQogICAgd29ya2VkIHVwb24gZm9yIGEgY2hhcHRl ciBvbiBQYXJhbGxlbCBQcm9ncmFtbWluZyBmb3IgTXVsdGljb3JlDQogICAg T0NhbWwuIFdlIHdpbGwgcmVsZWFzZSBhbiBlYXJseSBkcmFmdCB0byB0aGUg Y29tbXVuaXR5IGZvciB5b3VyDQogICAgZmVlZGJhY2suDQoNCg0KT0NhbWwN CuKVjOKVjOKVjOKVjOKVjA0KDQogIE9uZSBQUiBvcGVuZWQgdG8gT0NhbWwg dGhpcyBtb250aCwgd2hpY2ggZml4ZXMgdXAgdGhlIG1hcnNoYWxsaW5nDQog IHNjaGVtZSB0byBiZSBtdWx0aWNvcmUgY29tcGF0aWJsZS4gVGhlIGNvbXBs ZXRlIHNldCBvZiBbdXBzdHJlYW0NCiAgbXVsdGljb3JlIHByZXJlcXVpc2l0 ZXNdIGFyZSBsYWJlbGxlZCBpbiB0aGUgY29tcGlsZXIgaXNzdWUgdHJhY2tl ci4NCg0KICDigKIgW29jYW1sL29jYW1sIzkyOTNdIFVzZSBhZGRybWFwIGhh c2ggdGFibGUgZm9yIG1hcnNoYWxpbmcNCg0KICAgIFRoZSBoYXNoIHRhYmxl IChhZGRybWFwKSBpbXBsZW1lbnRhdGlvbiBmcm9tIE11bHRpY29yZSBPQ2Ft bCBoYXMNCiAgICBiZWVuIHBvcnRlZCB0byB1cHN0cmVhbSBPQ2FtbCB0byBh dm9pZCB1c2luZyBHQyBtYXJrIGJpdHMgdG8NCiAgICByZXByZXNlbnQgdmlz aXRlZG5lc3MuDQoNCg0KW3Vwc3RyZWFtIG11bHRpY29yZSBwcmVyZXF1aXNp dGVzXQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9sYWJlbHMv bXVsdGljb3JlLXByZXJlcXVpc2l0ZT4NCg0KW29jYW1sL29jYW1sIzkyOTNd IDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvcHVsbC85MjkzPg0K DQoNCkFjcm9ueW1zDQrilYzilYzilYzilYzilYzilYzilYzilYwNCg0KICDi gKIgQ1RGOiBDb21tb24gVHJhY2UgRm9ybWF0DQogIOKAoiBDSTogQ29udGlu dW91cyBJbnRlZ3JhdGlvbg0KICDigKIgR0M6IEdhcmJhZ2UgQ29sbGVjdG9y DQogIOKAoiBQUjogUHVsbCBSZXF1ZXN0DQoNCiAgQXMgYWx3YXlzLCBtYW55 IHRoYW5rcyB0byBvdXIgZmVsbG93IE9DYW1sIGRldmVsb3BlcnMgYW5kIHVz ZXJzIHdobw0KICBoYXZlIHJldmlld2VkIG91ciBjb2RlLCByZXBvcnRlZCBi dWdzIG9yIG90aGVyd2lzZSBhc3Npc3RlZCB0aGlzDQogIG1vbnRoLg0KDQoN Ck9wbG90IDAuNTANCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0K DQogIEFyY2hpdmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5u LW9wbG90LTAtNTAvNTIzNS8xPg0KDQoNCnNhbmV0dGUgYW5ub3VuY2VkDQri lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIANCg0KICBJJ20gaGFwcHkgdG8gYW5ub3VjZSB0aGUgcmV2aXZhbCBv ZiB0aGUgYG9wbG90JyBsaWJyYXJ5Lg0KDQogIElmIHlvdSBldmVyIHdhbnRl ZCB0byBxdWlja2x5IGRyYXcgdGhlIGdyYXBoIG9mIGFuIGludHJpZ3VpbmcN CiAgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uLCBhbmltYXRlIGl0IGJ5IHZhcnlp bmcgYSBwYXJhbWV0ZXIsIG9yIGV4cGxvcmUgYQ0KICAzRCBzdXJmYWNlLCB3 aXRob3V0IGxlYXZpbmcgeW91ciBmYXZvcml0ZSBwcm9ncmFtbWluZyBsYW5n dWFnZSwgdGhlbg0KICBgb3Bsb3QnIGlzIGZvciB5b3UuDQoNCiAgSWYgeW91 J3JlIGZhbWlsaWFyIHdpdGggTGFUZVggYW5kIHdhbnQgdG8gcHJvZHVjZSBu aWNlIG1hdGhlbWF0aWNhbA0KICBncmFwaGljcyBkZWNvcmF0ZWQgd2l0aCBM YVRlWCBmb3JtdWxhcywgdGhhdCB5b3UgY2FuIHZpZXcgb25zY3JlZW4sDQog IGV4cG9ydCB0byBpbWFnZXMgb3IgdmVjdG9yIGdyYXBoaWNzIChwZGYsIGVw cykgdGhlbiBgb3Bsb3QnIGlzIGV2ZW4NCiAgbW9yZSBmb3IgeW91IQ0KDQog IOKAoiBJbnN0YWxsYXRpb246IGBvcGFtIGluc3RhbGwgb3Bsb3QnDQogIOKA oiBkb2N1bWVudGF0aW9uOg0KICAgIDxodHRwczovL3NhbmV0dGUuZ2l0aHVi LmlvL29wbG90L29wbG90L09wbG90L2luZGV4Lmh0bWw+DQogIOKAoiBzb3Vy Y2UgY29kZSwgaXNzdWVzLCBldGM6IDxodHRwczovL2dpdGh1Yi5jb20vc2Fu ZXR0ZS9vcGxvdD4NCg0KICBEcmF3aW5nIGlzIGhhcmR3YXJlIGFjY2VsZXJh dGVkIChvcGVuZ2wpIHRoYW5rcyB0byB0aGUgdmVuZXJhYmxlDQogIGBvY2Ft bHNkbCcgYW5kIGBsYWJsZ2wnIGxpYnJhcmllcy4gSSdtIGdsYWQgdGhleSBz dGlsbCB3b3JrIHBlcmZlY3RseS4NCg0KICBIYXBweSBwbG90dGluZy4NCg0K DQpzb3VwYXVsdDogYSBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IgYmFzZWQg b24gSFRNTCByZXdyaXRpbmcNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRwczov L2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5uLXNvdXBhdWx0LWEtc3RhdGljLXdl YnNpdGUtZ2VuZXJhdG9yLWJhc2VkLW9uLWh0bWwtcmV3cml0aW5nLzQxMjYv MTI+DQoNCg0KRGFuaWlsIEJhdHVyaW4gYW5ub3VuY2VkDQrilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIANCg0KICBbMS45LjBdIHJlbGVhc2UgaXMgbm93 IGF2YWlsYWJsZS4NCg0KICDigKIgYC0taW5kZXgtb25seScgb3B0aW9uIHRo YXQgbWFrZXMgc291cGF1bHQgZHVtcCB0aGUgc2l0ZSBtZXRhZGF0YSB0bw0K ICAgIEpTT04gYW5kIHN0b3AgYXQgdGhhdA0KICDigKIgTWV0YWRhdGEgZXh0 cmFjdGlvbiBhbmQgaW5kZXggZ2VuZXJhdGlvbiBjYW4gbm93IGJlIGxpbWl0 ZWQgdG8NCiAgICBzcGVjaWZpYyBwYWdlcy9zZWN0aW9uL3BhdGggcmVnZXhl cywganVzdCBsaWtlIHdpZGdldHMNCiAg4oCiIFRoZSBgcHJlcHJvY2Vzc19l bGVtZW50JyB3aWRnZXQgbm93IHN1cHBvcnRzIGEgbGlzdCBvZiBzZWxlY3Rv cnMsDQogICAgZS5nLiBgc2VsZWN0b3IgPSBbImNvZGUiLCAicHJlIGNvZGUi XScuDQogIOKAoiBQbHVnaW4gQVBJIG5vdyBoYXMgZnVuY3Rpb25zIGZvciBy dW5uaW5nIGV4dGVybmFsIHByb2dyYW1zLCBhbmQgc29tZQ0KICAgIG1vcmUg ZWxlbWVudCB0cmVlIGFjY2VzcyBmdW5jdGlvbnMuDQogIOKAoiBDU1Mgc2Vs ZWN0b3IgcGFyc2UgZXJyb3JzIGFyZSBub3cgaGFuZGxlZCBncmFjZWZ1bGx5 IChbbGFtYmRhc291cA0KICAgIFBSIzMxXSkuDQogIOKAoiBUaGUgYHRpdGxl JyB3aWRnZXQgbm93IGNvcnJlY3RseSByZW1vdmVzIEhUTUwgdGFncyBmcm9t IHRoZSBzdXBwb3NlZA0KICAgIHRpdGxlIHN0cmluZyBhbmQgZG9lc24ndCBh ZGQgZXh0cmEgd2hpdGVzcGFjZSAoZml4ZXMgYnkgW1Rob21hcw0KICAgIExl dGFuXSkuDQoNCg0KWzEuOS4wXSA8aHR0cHM6Ly9zb3VwYXVsdC5uZW9jaXRp ZXMub3JnL2Jsb2cvc291cGF1bHQtMS45LjAtcmVsZWFzZS8+DQoNCltsYW1i ZGFzb3VwIFBSIzMxXSA8aHR0cHM6Ly9naXRodWIuY29tL2FhbnRyb24vbGFt YmRhc291cC9wdWxsLzMxPg0KDQpbVGhvbWFzIExldGFuXSA8aHR0cHM6Ly9z b2FwLmNvZmZlZS9+bHRobXMvPg0KDQoNCk9sZCBDV04NCuKVkOKVkOKVkOKV kOKVkOKVkOKVkA0KDQogIElmIHlvdSBoYXBwZW4gdG8gbWlzcyBhIENXTiwg eW91IGNhbiBbc2VuZCBtZSBhIG1lc3NhZ2VdIGFuZCBJJ2xsIG1haWwNCiAg aXQgdG8geW91LCBvciBnbyB0YWtlIGEgbG9vayBhdCBbdGhlIGFyY2hpdmVd IG9yIHRoZSBbUlNTIGZlZWQgb2YgdGhlDQogIGFyY2hpdmVzXS4NCg0KICBJ ZiB5b3UgYWxzbyB3aXNoIHRvIHJlY2VpdmUgaXQgZXZlcnkgd2VlayBieSBt YWlsLCB5b3UgbWF5IHN1YnNjcmliZQ0KICBbb25saW5lXS4NCg0KICBbQWxh biBTY2htaXR0XQ0KDQoNCltzZW5kIG1lIGEgbWVzc2FnZV0gPG1haWx0bzph bGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5vcmc+DQoNClt0aGUgYXJjaGl2 ZV0gPGh0dHA6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC9jd24vPg0KDQpbUlNT IGZlZWQgb2YgdGhlIGFyY2hpdmVzXSA8aHR0cDovL2FsYW4ucGV0aXRlcG9t bWUubmV0L2N3bi9jd24ucnNzPg0KDQpbb25saW5lXSA8aHR0cDovL2xpc3Rz LmlkeWxsLm9yZy9saXN0aW5mby9jYW1sLW5ld3Mtd2Vla2x5Lz4NCg0KW0Fs YW4gU2NobWl0dF0gPGh0dHA6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC8+DQoN Cg== --=-=-= 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 February 25 to March = 03, 2020.

OCaml 4.10 released

Contnuing this thread, Anil Madhavapeddy said

Indeed, many thanks to everyone who leapt in to make 4.10 ready in opam in = such record time! Just a note that the CI Docker images are now also rebui= lt for x86_64, arm32/64 and ppc64le to reflect the 4.10 release, so feel free to s= tart using them. http= s://hub.docker.com/r/ocaml/opam2/tags

Summary of the Dune retreat 2020

J=C3=A9r=C3=A9mie Dimino announced

We recently organised the second Dune retreat. If you'd like to see what is= happening in the Dune world at the moment, please find a summary of what we discussed and work on in this blog post!

https://dune.build/b= log/dune-retreat-2020/

Multicore OCaml: Feb 2020 update

Anil Madhavapeddy announced

Welcome to the February 2020 news update from the Multicore OCaml team, spr= ead across the UK, India, France and Switzerland! This follows on from last month's update, and has been put together by @shakthimaan and @kayceesr= k.

The releas= e of OCaml 4.10.0 has successfully pushed out some prerequisite feature= s into the upstream compiler. Our work in February has focussed on getting the multicore OCaml= branch "feature complete" with respect to the complete OCaml language, and= doing extensive benchmarking and stress testing to test our two minor heap implem= entations.

To this end, a number of significant patches have been merged into the Multicore OCaml = trees that essentially provide complete coverage of the language features. We encourag= e you to test the same for regressions and provide any improvements or repo= rt shortcomings to us. There are ongoing OCaml PRs and issues that are also un= der review, and we hope to complete those for the 4.11 release cycle. A new= set of parallel benchmarks have been added to our Sandmark benchmarking suite (live instance here), including enhancements to= the build setup.

Multicore OCaml

  • Completed

    The following PRs have been merged into Multicore OCaml:

    • oca= ml-multicore/ocaml-multicore#281 Introduce Forcing_tag to fix concurrency bug with lazy values

      A Forcing_tag is used to implement lazy values to handle a con= currency bug. It behaves like a locked bit, and any concurrent access by a = mutator will raise an exception on that domain.

    • oca= ml-multicore/ocaml-multicore#282 Safepoints

      A preliminary version of safe points has been merged into the Multicore OCa= ml trees. ocaml-multicore/ocaml-multicore#187 also contains more discuss= ion and background about how coverage can be improved in future PRs.

    • oca= ml-multicore/ocaml-multicore#285 Introduce an 'opportunistic' major collection slice

      An "opportunistic work credit" is implemented in this PR which forms a basi= s for doing mark and sweep work while waiting to synchronise with other dom= ains.

    • oca= ml-multicore/ocaml-multicore#286 Do fflush and variable args in caml_gc_log

      The caml_gc_log() function has been updated to ensure that fflush is invoked only when GC logging is enabled.

    • oca= ml-multicore/ocaml-multicore#287 Increase EVENT_BUF_SIZE

      During debugging with event trace data it is useful to reduce the buffer fl= ush times, and hence the EVENT_BUF_SIZE has now been increased.

    • oca= ml-multicore/ocaml-multicore#288 Write barrier optimization

      This PR closes the regression for the chameneos_redux_lwt benc= hmarking in Sandmark by using intnat to avoid sign extensions = and cleans up write_barrier to improve overall performance.

    • oca= ml-multicore/ocaml-multicore#290 Unify sweep budget to be in word size

      The PR updates the sweep work units to all be in word size. This is to hand= le the differences between the budget for setup, sweep and for large alloca= tions in blocks.

  • Ongoing
    • A lot of work is ongoing for the implementation of a synchronised minor= garbage collector for Multicore OCaml, including benchmarking for the stop= -the-world (stw) branch. We will publish the results of this in a future u= pdate, as we are assembling a currently comprehensive evaluation of the run= time against the mainstream runtime.

Benchmarking

Sandmark now has support to run= parallel benchmarks. We can also now about GC latency measurements for bot= h stock OCaml and Multicore OCaml compiler.

  • ocaml-bench/san= dmark#73 More parallel benchmarks

    A number of parallel benchmarks such as N-body, Quick Sort and matrix multi= plication have now been added to Sandmark!

  • ocaml-bench/san= dmark#76 Promote packages. Unbreak CI.

    The Continuous Integration build can now execute after updating and promoti= ng packages in Sandmark.

  • ocaml-bench/san= dmark#78 Add support for collecting information about GC pausetimes on trunk

    The PR now helps process the runtime log and produces a .bench= file that captures the GC pause times. This works on both stock OCaml and = in Multicore OCaml.

  • ocaml-bench/san= dmark#86 Read and write Irmin benchmark

    A test for measuring Irmin's merge capabilities with Git as its filesystem = is being tested with different read and write rates.

  • A number of other parallel benchmarks like Merge sort, Floyd-Warshall m= atrix, prime number generation, parallel map, filter et. al. have been adde= d to Sandmark.

Documentation

  • Examples using domainslib and modifying Domains are currently being wor= ked upon for a chapter on Parallel Programming for Multicore OCaml. We will= release an early draft to the community for your feedback.

OCaml

One PR opened to OCaml this month, which fixes up the marshalling scheme to= be multicore compatible. The complete set of upstream multicore prerequisites are labelled in the compiler issue tracker.

  • ocaml/ocaml#9293 U= se addrmap hash table for marshaling

    The hash table (addrmap) implementation from Multicore OCaml has been porte= d to upstream OCaml to avoid using GC mark bits to represent visitedness.

Acronyms

  • CTF: Common Trace Format
  • CI: Continuous Integration
  • GC: Garbage Collector
  • PR: Pull Request

As always, many thanks to our fellow OCaml developers and users who have re= viewed our code, reported bugs or otherwise assisted this month.

Oplot 0.50

sanette announced

I'm happy to annouce the revival of the oplot library.

If you ever wanted to quickly draw the graph of an intriguing mathematical = function, animate it by varying a parameter, or explore a 3D surface, witho= ut leaving your favorite programming language, then oplot is for = you.

If you're familiar with LaTeX and want to produce nice mathematical graphic= s decorated with LaTeX formulas, that you can view onscreen, export to imag= es or vector graphics (pdf, eps) then oplot is even more for you!

Drawing is hardware accelerated (opengl) thanks to the venerable ocam= lsdl and lablgl libraries. I'm glad they still work per= fectly.

Happy plotting.

soupault: a static website generator based on HTML rewriting

Daniil Baturin announced

1.9= .0 release is now available.

  • --index-only option that makes soupault dump the site meta= data to JSON and stop at that
  • Metadata extraction and index generation can now be limited to specific= pages/section/path regexes, just like widgets
  • The preprocess_element widget now supports a list of selec= tors, e.g. selector =3D ["code", "pre code"].
  • Plugin API now has functions for running external programs, and some mo= re element tree access functions.
  • CSS selector parse errors are now handled gracefully (lambdasoup PR#31).
  • The title widget now correctly removes HTML tags from the = supposed title string and doesn't add extra whitespace (fixes by Thomas Letan).

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.

--=-=-=--