From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: [ANN] New library stream.el in ELPA Date: Thu, 15 Oct 2015 00:13:22 +0200 Message-ID: <87h9ltxfnh.fsf@web.de> References: <87d1whk75h.fsf@petton.fr> <87d1whaan5.fsf@web.de> <87oag1lgrf.fsf@petton.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444860907 25914 80.91.229.3 (14 Oct 2015 22:15:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 14 Oct 2015 22:15:07 +0000 (UTC) Cc: emacs-devel@gnu.org To: Nicolas Petton Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 15 00:14:59 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZmUK2-0005Ys-Ug for ged-emacs-devel@m.gmane.org; Thu, 15 Oct 2015 00:14:59 +0200 Original-Received: from localhost ([::1]:44751 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmUK2-00050S-Bq for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 18:14:58 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmUId-0004w5-DY for emacs-devel@gnu.org; Wed, 14 Oct 2015 18:13:32 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmUIZ-0001vL-By for emacs-devel@gnu.org; Wed, 14 Oct 2015 18:13:31 -0400 Original-Received: from mout.web.de ([212.227.15.4]:55797) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmUIZ-0001v2-4q for emacs-devel@gnu.org; Wed, 14 Oct 2015 18:13:27 -0400 Original-Received: from drachen.dragon ([90.186.1.49]) by smtp.web.de (mrweb001) with ESMTPSA (Nemesis) id 0M1FqS-1aat1p0ePQ-00tEu4; Thu, 15 Oct 2015 00:13:25 +0200 In-Reply-To: <87oag1lgrf.fsf@petton.fr> (Nicolas Petton's message of "Wed, 14 Oct 2015 15:30:12 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-Provags-ID: V03:K0:2h353mE42FN7ZGUq5SUplKiPc58N0tGymjLDsSW9Tkxscf6ePtS UYfe9e5euOraqHYsHOmmRP7wryxSVbG/7kRF1z8prizWb4mtXUm6VotLrPvaru+V/OB9yB4 k6OtUNTSlaJnD1ifNGK9HVPf7XyvjxB8Ov1MmjSZZpAjW/DjPWhhFvwSzb0es6bb6JJsove DQfGpM594inPc/CsO6oFw== X-UI-Out-Filterresults: notjunk:1;V01:K0:VzfLmsubuBM=:C/LQbIRTYv0yNWf6fLcBBC CsYxPkQebWsPTynbqH2dFQoGGZ0oKAWtRSepip/E8z4N4aXSEw0IHW6xsa00yAiaAzsrZGX68 l+EMUzwC9T4CC8rwPcx0lwtvInnMhNyHhxXbpDDPaRc4TKoH1LabKsfhKhdE4khcMi88ofqr8 DVanXac89b1b1L8gEIZ/68HMX3bL1L99s3Uygv6md/3HnWovlVdYcNV1sxAXd+dGxZGIVdcmM lefZvN6eiO32ogVLVkBBhqlNrvk3GtH0q7rx5T90Y7uocv+aRIw7vSWF7My0bg3SCSZU2GMx4 zb/EpBgw1XKzGgtR2qn4WdsgFy8XP8PrWUyJ0xWvmMWwyjKKbBCLM8jZj+XSgwzgMt8P7s88l aDXaxfeBAp7ZyqL+ONN5dsw7Fs88bwLTOxBWxcIHlwgEYKDMLt+sZ8ar22O8EbzSbA7zgkpqG GAq0yjGj91QRQ9kfwibWvxyuaJ8TUTodK5CR4ztH2knnmFmDV2pXVOYjLwXcFJJT4DiYPADpv E371skiNxTavkXCi3BeAEBh7I9JjaGuJghyXs2ngrZ4MP4hy/vZ1oQuoyZot8XZYpr7gTNTrW woA8N3M6pfMlmrp6KS3hr+38BAxPel31KG3UibOPy8Q/QLX90rIkhXtlJs83DbbhkV54TMaA8 jxxkQ3DoLP3GDl8Z3xXgNLaeWJrDRKHbE0PH3e1yLE6qUJxrvLwXIUzLwR+7r2tof7XV05BVF +Fl8VE5j6O5n1sABhrgTsNBvcJ4HfbfHVRuT9aXD4RLXswa3N4UYTclsk4H93T+HuxiRphrF X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.4 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191591 Archived-At: Nicolas Petton writes: > If you do stream it, using `stream-first' and `stream-rest' for > instance, you shouldn't have this issue, right? I don't remember. Maybe your implementation is cleverer than mine was ;-) I tried this stress test with your lib: --8<---------------cut here---------------start------------->8--- (defun stream-append (s1 s2) (if (stream-empty-p s1) s2 (stream-cons (stream-first s1) (stream-append (stream-rest s1) s2)))) (seq-elt (stream-append (stream (cl-loop for i from 1 to 100 collect i)) (seq-filter #'cl-oddp (stream-append (stream (cl-loop for i from 1 to 50000 collect i)) (seq-map #'1+ (stream (cl-loop for i from 50001 to 100001 collect i)))))) 40000) --8<---------------cut here---------------end--------------->8--- What can I say - it work well! BTW, is `stream-append' missing in your library, or should that be done via some `seq' function? Regards, Michael.