From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 1991F8003B for ; Sat, 12 Nov 2016 17:21:10 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=Pass smtp.pra=simon.cruanes.2007@m4x.org; spf=Pass smtp.mailfrom=SRS0=BI++=W5=m4x.org=simon.cruanes.2007@bounces.m4x.org; spf=Pass smtp.helo=postmaster@mx1.polytechnique.org Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of simon.cruanes.2007@m4x.org designates 129.104.30.34 as permitted sender) identity=pra; client-ip=129.104.30.34; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="SRS0=BI++=W5=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="simon.cruanes.2007@m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of SRS0=BI++=W5=m4x.org=simon.cruanes.2007@bounces.m4x.org designates 129.104.30.34 as permitted sender) identity=mailfrom; client-ip=129.104.30.34; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="SRS0=BI++=W5=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="SRS0=BI++=W5=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of postmaster@mx1.polytechnique.org designates 129.104.30.34 as permitted sender) identity=helo; client-ip=129.104.30.34; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="SRS0=BI++=W5=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="postmaster@mx1.polytechnique.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" IronPort-PHdr: =?us-ascii?q?9a23=3APTXp1RGMKYE18M7AkWcVaJ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ7zr8WwAkXT6L1XgUPTWs2DsrQf2rGQ6/+rCTFIyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSijewZb1/IA+qoQjTucUbgotvIbstxxXUpXdFZ/?= =?us-ascii?q?5Yzn5yK1KJmBb86Maw/Jp9/ClVpvks6c1OX7jkcqohVbBXAygoPG4z5M3wqBnM?= =?us-ascii?q?VhCP6WcGUmUXiRVHHQ7I5wznU5jrsyv6su192DSGPcDzULs5Vyiu47ttRRT1ji?= =?us-ascii?q?oMKjw3/3zNisFogqxVoAyvqQF8zY7ab46aKOdxcaHTct4BSmpNQtxcWjZdDo6m?= =?us-ascii?q?bYYCCfcKM+ZCr4n6olsDtQawBQipBOPozD9Dm2H73bcn0+s7FwHJwhcgFM8JvX?= =?us-ascii?q?TPrdX1MaASUeavwKbU1zXDculZ2THj54jTaBwtv+2AUa5yfMfKzEkiGAzEgk+X?= =?us-ascii?q?qYz/MDOYz+IAuHWV4epnUOKgkW8nqwdprziuwMcskIjJiZgPxlDK7yV12Ig0Ks?= =?us-ascii?q?OlSE5gf9GkCJRQtzmAO4t3RMMiTWZotSAnwbMFoZ62ZDUGxIojyhLFdvCLb4eF?= =?us-ascii?q?7gjtWeqNOzt1in1odKq7ihqu60Sty/PwWtOp3FpWsCZJiMTAu3QT2xHV98OJUO?= =?us-ascii?q?Fy/l271jaKzw3T6v9LIUQzlafDLp4gzaM8moALsUTEGi/3mFn2g7GKeUUk/Oio?= =?us-ascii?q?6v3nYqj4qZOGMI90kA7+Prwvmsy5H+s4LhADU3WF9em4zrHv4FH1TbpQgvA4jq?= =?us-ascii?q?XVqp7XKMsDqq68GQBV04Ij6xilDzeh1dQVhWQJIk5Ydh6bl4XkJlLALPf/Afqn?= =?us-ascii?q?g1uhkC9mx/XJM7zuGJnNKWLDkLj5cLZm6k5czQ0zzdZF651IELEBPej8Wknvu9?= =?us-ascii?q?zDFBM1LRC4z/rlBdhmzYweXn+PAqmFP6zMql+E/OcvLuaDZYMPvzb9Mfcl6+b0?= =?us-ascii?q?jXAlgV8dYbWp3ZwPZX+kBPtmJkGZbWPogtcACmcKohEzTPfqiV2HST5cfWy+X6?= =?us-ascii?q?M65jEhCYKpF53PRo63gO/J4CDuOZlbaSgSDVSBHl/vdICFWbELci3EceF7lTlR?= =?us-ascii?q?brmkTIlp/guzvQn30PIzNevR/Stevoj+3d54/KuJzUlt3TkoH4KayW7bHDI8pX?= =?us-ascii?q?8BWzJjhPM3mkd60FrWiaU=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0B3AABXQCdYhyIeaIFdFggGDBcBAQQBA?= =?us-ascii?q?QoBAYMGAQEBAQF3gQABsS2EWoMggi+ICUESAQEBAQEBAQEBAQESAQEBCgsJCR0?= =?us-ascii?q?wgjMYghcBBSNWEAshEw4CAg8FKSAniE0EAQmvLoIpi20OixaHTC2CMAWBJQEBA?= =?us-ascii?q?ZkPCAEBhjyKFguCPo1ijUSECiUGgRE4LIRvcQGIBwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0B3AABXQCdYhyIeaIFdFggGDBcBAQQBAQoBAYMGAQEBAQF?= =?us-ascii?q?3gQABsS2EWoMggi+ICUESAQEBAQEBAQEBAQESAQEBCgsJCR0wgjMYghcBBSNWE?= =?us-ascii?q?AshEw4CAg8FKSAniE0EAQmvLoIpi20OixaHTC2CMAWBJQEBAZkPCAEBhjyKFgu?= =?us-ascii?q?CPo1ijUSECiUGgRE4LIRvcQGIBwEBAQ?= X-IronPort-AV: E=Sophos;i="5.31,627,1473112800"; d="asc'?scan'208";a="244726218" Received: from mx1.polytechnique.org ([129.104.30.34]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Nov 2016 17:21:09 +0100 Received: from carty.home (APuteaux-655-1-47-192.w90-62.abo.wanadoo.fr [90.62.102.192]) (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 C9CF7564726; Sat, 12 Nov 2016 17:21:08 +0100 (CET) Date: Sat, 12 Nov 2016 17:21:07 +0100 From: Simon Cruanes To: Oleg Cc: gabriel.scherer@gmail.com, yminsky@janestreet.com, caml-list@inria.fr, gmalecha@gmail.com Message-ID: <20161112162107.GB24883@carty.home> References: <20161112130134.GA3313@Magus.localnet> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="vOmOzSkFvhd7u8Ms" Content-Disposition: inline In-Reply-To: <20161112130134.GA3313@Magus.localnet> User-Agent: Mutt/1.7.1 (2016-10-04) X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Sat Nov 12 17:21:09 2016 +0100 (CET)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.000400, queueID=22BAE564728 X-Org-Mail: simon.cruanes.2007@polytechnique.org Subject: Re: [Caml-list] The fastest stream library [Was: Question about --vOmOzSkFvhd7u8Ms Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Using meta-programming is very nice indeed, but until meta-OCaml is merged into OCaml itself, it will be no use for most OCaml programmers (at least, those I know of). So it still makes sense to write alternative stream libraries that do not rely on metaprogramming nor on features yet to come (effects=E2=80=A6). For pure OCaml libraries, there is= no clear winner yet (depends on what API is exposed), Sequence is faster in most cases but cannot implement zip/merge, BatSeq/Core.Sequence are good in average and probably the best tradeoff overall, Enum is a bit complicated but quite comprehensive=E2=80=A6 Le Sat, 12 Nov 2016, Oleg a =C3=A9crit : > Gabriel,=20 >=20 > Thank you for the detailed and thoughtful message and the > motivations behind Enum choices. The library and language design was > the central issue in our paper. We do have a different overall > approach, which you haven't yet touched. The approach is > meta-programming.=20 >=20 > It is high-performance community who discovered for themselves > that the most promising way to increase or maintain performance is by > meta-programming. It was late Ken Kennedy (of High-Performance Fortran > fame) who came with telescoping languages and popularized the idea of > active libraries. It was again Ken Kennedy who coined the phrase > ``abstraction without guilt''. The references (in old, by now) paper > make the case that become even clearer by now > http://www-rocq.inria.fr/~acohen/publications/CDGHKP06.ps.gz >=20 > Thus we can have a very general interface and still very efficient > implementation. We can have a pure functional, a fully compositional > interface and a very tangled, imperative implementation with --=20 Simon Cruanes http://weusepgp.info/ key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3 7D8D 4AC0 1D08 49AA 62B6 --vOmOzSkFvhd7u8Ms Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIcBAEBCAAGBQJYJ0FzAAoJEErAHQhJqmK2HDQQAIjO1ea25D3aVZpKXI4GlotI vkWhkwVjAAF4fH85v3JWPjJZccWGhYOeypZuzDSHGD/8kGCZpV8fmHaimj6nNaLs ILtOGq3az4itQdmOcGUhvzFcBnmAH7SoR5NEMAoyM2IZmT4fNZQbDEfWhRpa2DfY Kjf1kcwwgH+ijSJVqfUkDBpZiIsuiVXYxV7hC9VA/XYpSfyOY0iqNaIHmbDg9FUO xrXDoiGrNEc7HIIniMaKtEN3ScWE7mN7VCLhl9iXbiO0wG3qIklxZ3Ncnys59HPY 6wm4bqFV14Sy03Xnx8vFYvJXnbHxpnx/YFAX4Te2To/7geu8dRbG9BVG+jTbNfA6 sHgNQhHaqKUj3mh1CBkrcBRMzbmYSqWX8NTAPQwxPYcp3S7+5qUa4LbZlNgKUiV7 zwEaMMkZSsPDoUuSc5EgaG2r++W1e4mOX4x3k1FUZseezfkcNRCBboNCqJmSecY5 q1VY6XGILWw8nNutsT6fb8vEwtgOozYQrTz7Nl68esawbs0Xup2BIzWqAOKPDJmV Iy+8Qzeoe5gVUG4geG1bs43d83i2VgXU0sQJgsaMkz20owGSLK5UYzJeE+upikS/ CrxdPJRG3B/2XL4NmF8YUpYtRBC0NeyyiUIeZ5HaOOFlWe2w3tn/I9CNsRSjlunp aMH8mJBFhQWLghRSC0AP =QmHb -----END PGP SIGNATURE----- --vOmOzSkFvhd7u8Ms--