[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/stream d531a58 19/36: Avoid recursive stream-append in
From: |
Stefan Monnier |
Subject: |
[elpa] externals/stream d531a58 19/36: Avoid recursive stream-append in stream-concatenate |
Date: |
Tue, 1 Dec 2020 17:22:50 -0500 (EST) |
branch: externals/stream
commit d531a585b5139426ca66e612726595a84f8b1e42
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
Avoid recursive stream-append in stream-concatenate
This fix prevents exceeding `max-lisp-eval-depth' for streams returned
by stream-concatenate.
---
stream.el | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/stream.el b/stream.el
index 8b71a1b..853251e 100644
--- a/stream.el
+++ b/stream.el
@@ -4,7 +4,7 @@
;; Author: Nicolas Petton <nicolas@petton.fr>
;; Keywords: stream, laziness, sequences
-;; Version: 2.2.0
+;; Version: 2.2.1
;; Package-Requires: ((emacs "25"))
;; Package: stream
@@ -377,7 +377,17 @@ will be found by calling FUNCTION on the preceding
element."
"Concatenate all streams in STREAM-OF-STREAMS and return the result.
All elements in STREAM-OF-STREAMS must be streams. The result is
a stream."
- (seq-reduce #'stream-append stream-of-streams (stream-empty)))
+ (stream-make
+ (while (and (not (stream-empty-p stream-of-streams))
+ (stream-empty-p (stream-first stream-of-streams)))
+ (cl-callf stream-rest stream-of-streams))
+ (if (stream-empty-p stream-of-streams)
+ nil
+ (cons
+ (stream-first (stream-first stream-of-streams))
+ (stream-concatenate
+ (stream-cons (stream-rest (stream-first stream-of-streams))
+ (stream-rest stream-of-streams)))))))
(defun stream-of-directory-files-1 (directory &optional nosort recurse
follow-links)
"Helper for `stream-of-directory-files'."
- [elpa] externals/stream 00e523f 15/36: Add stream stream-delay and stream-of-directory-files, (continued)
- [elpa] externals/stream 00e523f 15/36: Add stream stream-delay and stream-of-directory-files, Stefan Monnier, 2020/12/01
- [elpa] externals/stream ac42cc1 18/36: Fix some quoting problems in doc strings, Stefan Monnier, 2020/12/01
- [elpa] externals/stream a36469b 17/36: Add some more basic stream operations, Stefan Monnier, 2020/12/01
- [elpa] externals/stream f8e6639 20/36: * stream/stream.el (stream--generalizer): Accept more arguments, Stefan Monnier, 2020/12/01
- [elpa] externals/stream 873ee4e 23/36: Fix errors detected by tests added in last commit, Stefan Monnier, 2020/12/01
- [elpa] externals/stream cbf7e78 30/36: * stream/stream-x.el: Update copyright, Stefan Monnier, 2020/12/01
- [elpa] externals/stream f1fce5e 35/36: * packages/stream/stream.el: Bump version to 2.2.5., Stefan Monnier, 2020/12/01
- [elpa] externals/stream 05b20e1 25/36: Add file "stream-x.el" to the stream package, Stefan Monnier, 2020/12/01
- [elpa] externals/stream 76ed94e 27/36: Fix seq-empty-p for streams, Stefan Monnier, 2020/12/01
- [elpa] externals/stream 89f61bf 33/36: * packages/stream/stream.el (stream--force): Small fix (Bug#37888)., Stefan Monnier, 2020/12/01
- [elpa] externals/stream d531a58 19/36: Avoid recursive stream-append in stream-concatenate,
Stefan Monnier <=
- [elpa] externals/stream 40e5fb1 26/36: Remove an outdated test, Stefan Monnier, 2020/12/01
- [elpa] externals/stream 9c7aef0 34/36: * [stream] Update copyright years, Stefan Monnier, 2020/12/01
- [elpa] externals/stream f7701f8 31/36: Update copyrights of some packages, Stefan Monnier, 2020/12/01
- [elpa] externals/stream 3354b2a 29/36: * stream/tests/stream-tests.el: Require 'generator', Stefan Monnier, 2020/12/01
- [elpa] externals/stream a3f3da1 32/36: Drop forced lambda's from stream (Bug#30626), Stefan Monnier, 2020/12/01
- [elpa] externals/stream 0b2a49f 16/36: * packages/stream/stream.el: Bump version number., Stefan Monnier, 2020/12/01
- [elpa] externals/stream 0055487 36/36: * .gitignore: New file, Stefan Monnier, 2020/12/01