emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/bytecomp.el


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/bytecomp.el
Date: Fri, 08 Jul 2005 18:49:48 -0400

Index: emacs/lisp/emacs-lisp/bytecomp.el
diff -c emacs/lisp/emacs-lisp/bytecomp.el:2.170 
emacs/lisp/emacs-lisp/bytecomp.el:2.171
*** emacs/lisp/emacs-lisp/bytecomp.el:2.170     Mon Jul  4 17:33:35 2005
--- emacs/lisp/emacs-lisp/bytecomp.el   Fri Jul  8 22:49:47 2005
***************
*** 3351,3361 ****
  
  (defmacro byte-compile-maybe-guarded (condition &rest body)
    "Execute forms in BODY, potentially guarded by CONDITION.
! CONDITION is the test in an `if' form or in a `cond' clause.
! BODY is to compile the first arm of the if or the body of the
! cond clause.  If CONDITION is of the form `(foundp 'foo)'
  or `(boundp 'foo)', the relevant warnings from BODY about foo
! being undefined will be suppressed."
    (declare (indent 1) (debug t))
    `(let* ((fbound
           (if (eq 'fboundp (car-safe ,condition))
--- 3351,3364 ----
  
  (defmacro byte-compile-maybe-guarded (condition &rest body)
    "Execute forms in BODY, potentially guarded by CONDITION.
! CONDITION is a variable whose value is a test in an `if' or `cond'.
! BODY is the code to compile  first arm of the if or the body of the
! cond clause.  If CONDITION's value is of the form `(foundp 'foo)'
  or `(boundp 'foo)', the relevant warnings from BODY about foo
! being undefined will be suppressed.
! 
! If CONDITION's value is `(featurep 'xemacs)', that suppresses all
! warnings during execution of BODY."
    (declare (indent 1) (debug t))
    `(let* ((fbound
           (if (eq 'fboundp (car-safe ,condition))
***************
*** 3373,3385 ****
          (byte-compile-bound-variables
           (if bound
               (cons bound byte-compile-bound-variables)
!            byte-compile-bound-variables)))
!      (progn ,@body)
!      ;; Maybe remove the function symbol from the unresolved list.
!      (if fbound
!        (setq byte-compile-unresolved-functions
!              (delq (assq fbound byte-compile-unresolved-functions)
!                    byte-compile-unresolved-functions)))))
  
  (defun byte-compile-if (form)
    (byte-compile-form (car (cdr form)))
--- 3376,3392 ----
          (byte-compile-bound-variables
           (if bound
               (cons bound byte-compile-bound-variables)
!            byte-compile-bound-variables))
!         (byte-compile-warnings
!          (if (equal ,condition '(featurep 'xemacs))
!              nil byte-compile-warnings)))
!      (unwind-protect
!        (progn ,@body)
!        ;; Maybe remove the function symbol from the unresolved list.
!        (if fbound
!          (setq byte-compile-unresolved-functions
!                (delq (assq fbound byte-compile-unresolved-functions)
!                      byte-compile-unresolved-functions))))))
  
  (defun byte-compile-if (form)
    (byte-compile-form (car (cdr form)))
***************
*** 3420,3431 ****
             (if (null (cdr clause))
                 ;; First clause is a singleton.
                 (byte-compile-goto-if t for-effect donetag)
!                (setq nexttag (byte-compile-make-tag))
!                (byte-compile-goto 'byte-goto-if-nil nexttag)
!                (byte-compile-maybe-guarded (car clause)
!                  (byte-compile-body (cdr clause) for-effect))
!                (byte-compile-goto 'byte-goto donetag)
!                (byte-compile-out-tag nexttag)))))
      ;; Last clause
      (let ((guard (car clause)))
        (and (cdr clause) (not (eq guard t))
--- 3427,3438 ----
             (if (null (cdr clause))
                 ;; First clause is a singleton.
                 (byte-compile-goto-if t for-effect donetag)
!              (setq nexttag (byte-compile-make-tag))
!              (byte-compile-goto 'byte-goto-if-nil nexttag)
!              (byte-compile-maybe-guarded (car clause)
!                (byte-compile-body (cdr clause) for-effect))
!              (byte-compile-goto 'byte-goto donetag)
!              (byte-compile-out-tag nexttag)))))
      ;; Last clause
      (let ((guard (car clause)))
        (and (cdr clause) (not (eq guard t))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]