GNU bug report logs -
#25826
26.0.50; cl-mapc and cl-mapl do needless consing
Previous Next
Reported by: Tino Calancha <tino.calancha <at> gmail.com>
Date: Tue, 21 Feb 2017 08:06:01 UTC
Severity: wishlist
Found in version 26.0.50
Done: Tino Calancha <tino.calancha <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Tino Calancha <tino.calancha <at> gmail.com> writes:
> It's tricky to write a test to check if cl-mapc/cl-mapl over cons.
> Thus, i have written tests that just ensure the return values
> are as expected.
We should check that the args are consp at least:
[0001-fixup-Prevent-for-consing-in-cl-mapc-and-cl-mapl.patch (text/x-diff, inline)]
From aed9f2462f7825b1dddbdf20fa5aa9b74a51ca72 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs <at> gmail.com>
Date: Wed, 22 Feb 2017 20:46:12 -0500
Subject: [PATCH] fixup! Prevent for consing in cl-mapc and cl-mapl
---
test/lisp/emacs-lisp/cl-extra-tests.el | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/test/lisp/emacs-lisp/cl-extra-tests.el b/test/lisp/emacs-lisp/cl-extra-tests.el
index 82b2206a6c..5b2371e7b9 100644
--- a/test/lisp/emacs-lisp/cl-extra-tests.el
+++ b/test/lisp/emacs-lisp/cl-extra-tests.el
@@ -39,9 +39,9 @@
(let ((lst '(a b c))
(lst2 '(d e f))
(lst3 '(1 2 3))
- (fn1 (lambda (x) nil))
- (fn2 (lambda (x y) nil))
- (fn3 (lambda (x y z) nil)))
+ (fn1 (lambda (_x) nil))
+ (fn2 (lambda (_x _y) nil))
+ (fn3 (lambda (_x _y _z) nil)))
(should (equal lst (cl-mapc fn1 lst)))
(should (equal lst (cl-mapc fn2 lst lst2)))
(should (equal lst (cl-mapc fn3 lst lst2 lst3)))))
@@ -50,9 +50,9 @@
(let ((lst '(a b c))
(lst2 '(d e f))
(lst3 '(1 2 3))
- (fn1 (lambda (x) nil))
- (fn2 (lambda (x y) nil))
- (fn3 (lambda (x y z) nil)))
+ (fn1 (lambda (x) (should (consp x))))
+ (fn2 (lambda (x y) (should (and (consp x) (consp y)))))
+ (fn3 (lambda (x y z) (should (and (consp x) (consp y) (consp z))))))
(should (equal lst (cl-mapl fn1 lst)))
(should (equal lst (cl-mapl fn2 lst lst2)))
(should (equal lst (cl-mapl fn3 lst lst2 lst3)))))
@@ -62,8 +62,8 @@
(lst2 '(d e f))
(lst3 '(1 2 3))
(fn1 (lambda (x) x))
- (fn2 (lambda (x y) y))
- (fn3 (lambda (x y z) z)))
+ (fn2 (lambda (_x y) y))
+ (fn3 (lambda (_x _y z) z)))
(should (equal lst (cl-mapcar fn1 lst)))
(should (equal lst2 (cl-mapcar fn2 lst lst2)))
(should (equal lst3 (cl-mapcar fn3 lst lst2 lst3)))))
@@ -73,8 +73,8 @@
(lst2 '(d e f))
(lst3 '(1 2 3))
(fn1 (lambda (x) x))
- (fn2 (lambda (x y) y))
- (fn3 (lambda (x y z) (string-to-char (format "%S" x)))))
+ (fn2 (lambda (_x y) y))
+ (fn3 (lambda (x _y _z) (string-to-char (format "%S" x)))))
(should (equal lst (cl-map 'list fn1 lst)))
(should (equal (vconcat lst2) (cl-map 'vector fn2 lst lst2)))
(should (equal (mapconcat (lambda (x) (format "%S" x)) lst "")
@@ -84,9 +84,9 @@
(let ((lst '(a b c))
(lst2 '(d e f))
(lst3 '(1 2 3))
- (fn1 (lambda (x) x))
- (fn2 (lambda (x y) y))
- (fn3 (lambda (x y z) z)))
+ (fn1 (lambda (x) (should (consp x)) x))
+ (fn2 (lambda (x y) (should (and (consp x) (consp y))) y))
+ (fn3 (lambda (x y z) (should (and (consp x) (consp y) (consp z))) z)))
(should (equal (list lst (cdr lst) (cddr lst))
(cl-maplist fn1 lst)))
(should (equal (list lst2 (cdr lst2) (cddr lst2))
--
2.11.1
This bug report was last modified 8 years and 90 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.