Mercurial > hg > xemacs-beta
diff lisp/cl-macs.el @ 4719:bd51ab22afa8
Make it possible to silence warnings issued when #'mapcar's result is discarded.
lisp/ChangeLog addition:
2009-10-19 Aidan Kehoe <kehoea@parhasard.net>
* bytecomp.el (byte-compile-default-warnings):
Add two new warning types, discarded-consing (basically use of
mapcar instead of mapc where its result is discarded) and
quoted-lambda (use of a lambda expression quoted as data in a
function context).
(byte-compile-warnings): Document the new warnings.
(byte-compile-fset, byte-compile-funarg): Implement the
quoted-lambda warning option.
(byte-compile-mapcar): Renamed to byte-compile-maybe-mapc.
(byte-compile-maybe-mapc, byte-compile-maplist):
Implement the discarded-consing warning option.
Add more functions that should be compiled using
byte-compile-funarg, notably mapvector, mapc-internal,
map-char-table.
* cl-macs.el (mapcar*):
If we know at compile time that there are no CL options being
used, use the mapcar subr, not the byte-coded function.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 19 Oct 2009 12:47:21 +0100 |
parents | dca5bb2adff1 |
children | ebca981a0012 |
line wrap: on
line diff
--- a/lisp/cl-macs.el Sun Oct 11 17:26:40 2009 +0200 +++ b/lisp/cl-macs.el Mon Oct 19 12:47:21 2009 +0100 @@ -3266,6 +3266,11 @@ form (cons 'mapc-internal (cdr form)))) +(define-compiler-macro mapcar* (&whole form cl-func cl-x &rest cl-rest) + (if cl-rest + form + (cons 'mapcar (cdr form)))) + (mapc #'(lambda (y) (put (car y) 'side-effect-free t)