GNU bug report logs - #8647
since lexical merge, declare-function in subr.el no longer works

Previous Next

Package: emacs;

Reported by: Glenn Morris <rgm <at> gnu.org>

Date: Tue, 10 May 2011 22:30:03 UTC

Severity: minor

Found in version 24.0.50

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #6 received at 8647 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 8647 <at> debbugs.gnu.org
Subject: Re: bug#8647: since lexical merge,
	declare-function in subr.el no longer works
Date: Wed, 11 May 2011 14:12:48 -0400
Moving the definition to the end of subr.el does not work, because
subr.el is loaded uncompiled during bootstrap.

IMO, conceptually the right fix is for an element in
byte-compile-initial-macro-environment to _always_ take precedence
during compilation, even if the file being compiled contains a
redefinition.

*** lisp/emacs-lisp/bytecomp.el	2011-05-11 17:32:38 +0000
--- lisp/emacs-lisp/bytecomp.el	2011-05-11 17:57:12 +0000
***************
*** 2166,2172 ****
  	      byte-compile-output nil))))
  
  (defun byte-compile-preprocess (form &optional _for-effect)
!   (setq form (macroexpand-all form byte-compile-macro-environment))
    ;; FIXME: We should run byte-optimize-form here, but it currently does not
    ;; recurse through all the code, so we'd have to fix this first.
    ;; Maybe a good fix would be to merge byte-optimize-form into
--- 2174,2183 ----
  	      byte-compile-output nil))))
  
  (defun byte-compile-preprocess (form &optional _for-effect)
!   ;; b-c-initial-m-e should take precedence during compilation.  (Bug#8647)
!   (setq form (macroexpand-all form
! 			      (append byte-compile-initial-macro-environment
! 				      byte-compile-macro-environment)))
    ;; FIXME: We should run byte-optimize-form here, but it currently does not
    ;; recurse through all the code, so we'd have to fix this first.
    ;; Maybe a good fix would be to merge byte-optimize-form into




This bug report was last modified 14 years and 68 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.