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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 07D567EE4B for ; Tue, 15 Oct 2013 18:55:08 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of drupyog@zoho.com) identity=pra; client-ip=72.5.230.95; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="drupyog@zoho.com"; x-sender="drupyog@zoho.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of drupyog@zoho.com designates 72.5.230.95 as permitted sender) identity=mailfrom; client-ip=72.5.230.95; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="drupyog@zoho.com"; x-sender="drupyog@zoho.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@sender1.zohomail.com) identity=helo; client-ip=72.5.230.95; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="drupyog@zoho.com"; x-sender="postmaster@sender1.zohomail.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AooBAA9yXVJIBeZfnGdsb2JhbABagz+De78AgSIWDgEBAQEBBg0JCRQogiYBBSMVCwE0Aw4LDgwCBRYLAgIJAwIBAgFFBgEMCAEBh3QECqohdYNjAo5eAwSBKYxSgVaCaoE7jzWIUoY4jnA X-IPAS-Result: AooBAA9yXVJIBeZfnGdsb2JhbABagz+De78AgSIWDgEBAQEBBg0JCRQogiYBBSMVCwE0Aw4LDgwCBRYLAgIJAwIBAgFFBgEMCAEBh3QECqohdYNjAo5eAwSBKYxSgVaCaoE7jzWIUoY4jnA X-IronPort-AV: E=Sophos;i="4.93,500,1378850400"; d="scan'208";a="30466770" Received: from sender1.zohomail.com ([72.5.230.95]) by mail3-smtp-sop.national.inria.fr with ESMTP; 15 Oct 2013 18:55:06 +0200 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; h=message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:content-type; b=mCWNxerEDTlbO7u8xKr4jrc7ek+82QoREeNbYxErA1i4yeAKSwjfUFPsidTJem8NsAwCEFuuj9Fh SYIatgEEdMjwWmqjJBdHUTmq0cyAffsit9wFimVBDKfB0nQABa2H Received: from [129.16.250.56] (dhcp-250-56.nomad.chalmers.se [129.16.250.56]) by mx.zohomail.com with SMTPS id 1381856101314685.6612130728487; Tue, 15 Oct 2013 09:55:01 -0700 (PDT) Message-ID: <525D7362.1040708@zoho.com> Date: Tue, 15 Oct 2013 18:54:58 +0200 From: Drup User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: Peter Frey , caml-list@inria.fr References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ZohoMailClient: External X-Zoho-Virus-Status: 2 X-Validation-by: drupyog@zoho.com Subject: Re: [Caml-list] Packing/Unpacking modules Hi, I started an abstraction over stream modules in my small library LILiS https://github.com/drup/LILiS but I only used already implemented stream modules. It should be fairly easy to plug everything and it may be interesting to you, as an example use of streams. In LILiS, the most important operation is concatmap and, by extension, concat. You also need a clone operation. I know it's not stream's best spot, but it happen that streams are often very good concatenable lists. I ran a very small benchmark some time ago with the various stream implementations in batteries. Afaik, Stream from the stdlib is similar to BatEnum while being worse in every aspects so it's not here. Also, it doesn't really handle cloning. Since I use concatenation extensively, regular lists take forever to run, so it's not included. von koch simple, n = 11, 20 runs, time by run BatSeq: 1.34s BatEnum: 5.18s BatLazyList : 9.55s I'm quite curious how your streams perform, I may try later but I'm not sure I could implement concat quite as well as you would. I'm not very good at weird magic manipulation. P.S. The benchmark module is not available anymore.