comparison lisp/byte-optimize.el @ 4886:1e9078742fa7

Merge.
author Aidan Kehoe <kehoea@parhasard.net>
date Tue, 26 Jan 2010 15:16:31 +0000
parents 6772ce4d982b
children 755ae5b97edb
comparison
equal deleted inserted replaced
4884:29fb3baea939 4886:1e9078742fa7
1207 1207
1208 ;;; I wonder if I missed any :-\) 1208 ;;; I wonder if I missed any :-\)
1209 (let ((side-effect-free-fns 1209 (let ((side-effect-free-fns
1210 '(% * + - / /= 1+ 1- < <= = > >= abs acos append aref ash asin atan 1210 '(% * + - / /= 1+ 1- < <= = > >= abs acos append aref ash asin atan
1211 assoc assq 1211 assoc assq
1212 boundp buffer-file-name buffer-local-variables buffer-modified-p 1212 bigfloat-get-precision boundp buffer-file-name buffer-local-variables
1213 buffer-substring 1213 buffer-modified-p buffer-substring
1214 capitalize car-less-than-car car cdr ceiling concat 1214 capitalize car-less-than-car car cdr ceiling concat
1215 ;; coordinates-in-window-p not in XEmacs 1215 ;; coordinates-in-window-p not in XEmacs
1216 copy-marker cos count-lines 1216 copy-marker cos count-lines
1217 default-boundp default-value documentation downcase 1217 default-boundp default-value denominator documentation downcase
1218 elt exp expt fboundp featurep 1218 elt exp expt fboundp featurep
1219 file-directory-p file-exists-p file-locked-p file-name-absolute-p 1219 file-directory-p file-exists-p file-locked-p file-name-absolute-p
1220 file-newer-than-file-p file-readable-p file-symlink-p file-writable-p 1220 file-newer-than-file-p file-readable-p file-symlink-p file-writable-p
1221 float floor format 1221 float floor format
1222 get get-buffer get-buffer-window getenv get-file-buffer 1222 get get-buffer get-buffer-window getenv get-file-buffer
1231 hash-table-type 1231 hash-table-type
1232 ;; 1232 ;;
1233 int-to-string 1233 int-to-string
1234 length log log10 logand logb logior lognot logxor lsh 1234 length log log10 logand logb logior lognot logxor lsh
1235 marker-buffer max member memq min mod 1235 marker-buffer max member memq min mod
1236 next-window nth nthcdr number-to-string 1236 next-window nth nthcdr number-to-string numerator
1237 parse-colon-path plist-get previous-window 1237 parse-colon-path plist-get previous-window
1238 radians-to-degrees rassq regexp-quote reverse round 1238 radians-to-degrees rassq regexp-quote reverse round
1239 sin sqrt string< string= string-equal string-lessp string-to-char 1239 sin sqrt string< string= string-equal string-lessp string-to-char
1240 string-to-int string-to-number substring symbol-plist 1240 string-to-int string-to-number substring symbol-plist
1241 tan upcase user-variable-p vconcat 1241 tan upcase user-variable-p vconcat
1250 isqrt floor* ceiling* truncate* round* mod* rem* subseq 1250 isqrt floor* ceiling* truncate* round* mod* rem* subseq
1251 list-length getf 1251 list-length getf
1252 )) 1252 ))
1253 (side-effect-and-error-free-fns 1253 (side-effect-and-error-free-fns
1254 '(arrayp atom 1254 '(arrayp atom
1255 bobp bolp buffer-end buffer-list buffer-size buffer-string bufferp 1255 bigfloatp bignump bobp bolp buffer-end buffer-list buffer-size
1256 buffer-string bufferp
1256 car-safe case-table-p cdr-safe char-or-string-p char-table-p 1257 car-safe case-table-p cdr-safe char-or-string-p char-table-p
1257 characterp commandp cons 1258 characterp commandp cons
1258 consolep console-live-p consp 1259 consolep console-live-p consp
1259 current-buffer 1260 current-buffer
1260 ;; XEmacs: extent functions, frame-live-p, various other stuff 1261 ;; XEmacs: extent functions, frame-live-p, various other stuff
1261 devicep device-live-p 1262 devicep device-live-p
1262 dot dot-marker eobp eolp eq eql equal eventp extentp 1263 dot dot-marker eobp eolp eq eql equal eventp extentp
1263 extent-live-p floatp framep frame-live-p 1264 extent-live-p fixnump floatingp floatp framep frame-live-p
1264 get-largest-window get-lru-window 1265 get-largest-window get-lru-window
1265 hash-table-p 1266 hash-table-p
1266 identity ignore integerp integer-or-marker-p interactive-p 1267 identity ignore integerp integer-or-marker-p interactive-p
1267 invocation-directory invocation-name 1268 invocation-directory invocation-name
1268 keymapp list listp 1269 keymapp list listp
1269 make-marker mark mark-marker markerp memory-limit minibuffer-window 1270 make-marker mark mark-marker markerp memory-limit minibuffer-window
1270 ;; mouse-movement-p not in XEmacs 1271 ;; mouse-movement-p not in XEmacs
1271 natnump nlistp not null number-or-marker-p numberp 1272 natnump nlistp not null number-or-marker-p numberp
1272 one-window-p ;; overlayp not in XEmacs 1273 one-window-p ;; overlayp not in XEmacs
1273 point point-marker point-min point-max processp 1274 point point-marker point-min point-max processp
1274 range-table-p 1275 rationalp ratiop range-table-p realp
1275 selected-window sequencep stringp subrp symbolp syntax-table-p 1276 selected-window sequencep stringp subrp symbolp syntax-table-p
1276 user-full-name user-login-name user-original-login-name 1277 user-full-name user-login-name user-original-login-name
1277 user-real-login-name user-real-uid user-uid 1278 user-real-login-name user-real-uid user-uid
1278 vector vectorp 1279 vector vectorp
1279 window-configuration-p window-live-p windowp 1280 window-configuration-p window-live-p windowp
1280 ;; Functions defined by cl 1281 ;; Functions defined by cl
1281 eql floatp-safe list* subst acons equalp random-state-p 1282 eql list* subst acons equalp random-state-p
1282 copy-tree sublis 1283 copy-tree sublis
1283 ))) 1284 )))
1284 (dolist (fn side-effect-free-fns) 1285 (dolist (fn side-effect-free-fns)
1285 (put fn 'side-effect-free t)) 1286 (put fn 'side-effect-free t))
1286 (dolist (fn side-effect-and-error-free-fns) 1287 (dolist (fn side-effect-and-error-free-fns)
1454 '(byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop 1455 '(byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop
1455 byte-goto-if-not-nil-else-pop)) 1456 byte-goto-if-not-nil-else-pop))
1456 1457
1457 (defconst byte-after-unbind-ops 1458 (defconst byte-after-unbind-ops
1458 '(byte-constant byte-dup 1459 '(byte-constant byte-dup
1459 byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-integerp 1460 byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-fixnump
1460 byte-eq byte-not 1461 byte-eq byte-not
1461 byte-cons byte-list1 byte-list2 ; byte-list3 byte-list4 1462 byte-cons byte-list1 byte-list2 ; byte-list3 byte-list4
1462 byte-interactive-p) 1463 byte-interactive-p)
1463 ;; How about other side-effect-free-ops? Is it safe to move an 1464 ;; How about other side-effect-free-ops? Is it safe to move an
1464 ;; error invocation (such as from nth) out of an unwind-protect? 1465 ;; error invocation (such as from nth) out of an unwind-protect?
1467 ;; For the same reason, byte-equal was deleted from this list. 1468 ;; For the same reason, byte-equal was deleted from this list.
1468 "Byte-codes that can be moved past an unbind.") 1469 "Byte-codes that can be moved past an unbind.")
1469 1470
1470 (defconst byte-compile-side-effect-and-error-free-ops 1471 (defconst byte-compile-side-effect-and-error-free-ops
1471 '(byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp 1472 '(byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp
1472 byte-integerp byte-numberp byte-eq byte-equal byte-not byte-car-safe 1473 byte-fixnump byte-numberp byte-eq byte-equal byte-not byte-car-safe
1473 byte-cdr-safe byte-cons byte-list1 byte-list2 byte-point byte-point-max 1474 byte-cdr-safe byte-cons byte-list1 byte-list2 byte-point byte-point-max
1474 byte-point-min byte-following-char byte-preceding-char 1475 byte-point-min byte-following-char byte-preceding-char
1475 byte-current-column byte-eolp byte-eobp byte-bolp byte-bobp 1476 byte-current-column byte-eolp byte-eobp byte-bolp byte-bobp
1476 byte-current-buffer byte-interactive-p)) 1477 byte-current-buffer byte-interactive-p))
1477 1478