Mercurial > hg > xemacs-beta
comparison 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 |
comparison
equal
deleted
inserted
replaced
4718:a27de91ae83c | 4719:bd51ab22afa8 |
---|---|
3264 (define-compiler-macro mapc (&whole form cl-func cl-seq &rest cl-rest) | 3264 (define-compiler-macro mapc (&whole form cl-func cl-seq &rest cl-rest) |
3265 (if cl-rest | 3265 (if cl-rest |
3266 form | 3266 form |
3267 (cons 'mapc-internal (cdr form)))) | 3267 (cons 'mapc-internal (cdr form)))) |
3268 | 3268 |
3269 (define-compiler-macro mapcar* (&whole form cl-func cl-x &rest cl-rest) | |
3270 (if cl-rest | |
3271 form | |
3272 (cons 'mapcar (cdr form)))) | |
3273 | |
3269 (mapc | 3274 (mapc |
3270 #'(lambda (y) | 3275 #'(lambda (y) |
3271 (put (car y) 'side-effect-free t) | 3276 (put (car y) 'side-effect-free t) |
3272 (put (car y) 'byte-compile 'cl-byte-compile-compiler-macro) | 3277 (put (car y) 'byte-compile 'cl-byte-compile-compiler-macro) |
3273 (put (car y) 'cl-compiler-macro | 3278 (put (car y) 'cl-compiler-macro |