comparison lisp/cl-macs.el @ 440:8de8e3f6228a r21-2-28

Import from CVS: tag r21-2-28
author cvs
date Mon, 13 Aug 2007 11:33:38 +0200
parents 3ecd8885ac67
children abe6d1db359e
comparison
equal deleted inserted replaced
439:357dd071b03c 440:8de8e3f6228a
2742 (form (car args))) 2742 (form (car args)))
2743 (while (setq args (cdr args)) 2743 (while (setq args (cdr args))
2744 (setq form (list 'cons (car args) form))) 2744 (setq form (list 'cons (car args) form)))
2745 form)) 2745 form))
2746 2746
2747 (define-compiler-macro get* (sym prop &optional def) 2747 (define-compiler-macro get* (sym prop &optional default)
2748 (if def 2748 (list 'get sym prop default))
2749 (list 'getf (list 'symbol-plist sym) prop def)
2750 (list 'get sym prop)))
2751 2749
2752 (define-compiler-macro typep (&whole form val type) 2750 (define-compiler-macro typep (&whole form val type)
2753 (if (cl-const-expr-p type) 2751 (if (cl-const-expr-p type)
2754 (let ((res (cl-make-type-test val (cl-const-expr-val type)))) 2752 (let ((res (cl-make-type-test val (cl-const-expr-val type))))
2755 (if (or (memq (cl-expr-contains res val) '(nil 1)) 2753 (if (or (memq (cl-expr-contains res val) '(nil 1))
2793 ;;; Things that are side-effect-free. Moved to byte-optimize.el 2791 ;;; Things that are side-effect-free. Moved to byte-optimize.el
2794 ;(dolist (fun '(oddp evenp plusp minusp 2792 ;(dolist (fun '(oddp evenp plusp minusp
2795 ; abs expt signum last butlast ldiff 2793 ; abs expt signum last butlast ldiff
2796 ; pairlis gcd lcm 2794 ; pairlis gcd lcm
2797 ; isqrt floor* ceiling* truncate* round* mod* rem* subseq 2795 ; isqrt floor* ceiling* truncate* round* mod* rem* subseq
2798 ; list-length get* getf)) 2796 ; list-length getf))
2799 ; (put fun 'side-effect-free t)) 2797 ; (put fun 'side-effect-free t))
2800 2798
2801 ;;; Things that are side-effect-and-error-free. Moved to byte-optimize.el 2799 ;;; Things that are side-effect-and-error-free. Moved to byte-optimize.el
2802 ;(dolist (fun '(eql floatp-safe list* subst acons equalp random-state-p 2800 ;(dolist (fun '(eql floatp-safe list* subst acons equalp random-state-p
2803 ; copy-tree sublis)) 2801 ; copy-tree sublis))