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