Customized.

(displaying-byte-compile-warnings):
To avoid error, use (forward-line -1), not previous-line.
This commit is contained in:
Richard M. Stallman 1998-01-26 10:28:01 +00:00
parent 70b40ea144
commit 713ea1de58

View file

@ -4,13 +4,13 @@
;; Author: Jamie Zawinski <jwz@lucid.com> ;; Author: Jamie Zawinski <jwz@lucid.com>
;; Hallvard Furuseth <hbf@ulrik.uio.no> ;; Hallvard Furuseth <hbf@ulrik.uio.no>
;; Keywords: internal ;; Keywords: lisp
;; Subsequently modified by RMS. ;; Subsequently modified by RMS.
;;; This version incorporates changes up to version 2.10 of the ;;; This version incorporates changes up to version 2.10 of the
;;; Zawinski-Furuseth compiler. ;;; Zawinski-Furuseth compiler.
(defconst byte-compile-version "$Revision: 2.34 $") (defconst byte-compile-version "$Revision: 2.35 $")
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
@ -190,11 +190,18 @@
;; list)))) ;; list))))
(defvar emacs-lisp-file-regexp (if (eq system-type 'vax-vms) (defgroup bytecomp nil
"\\.EL\\(;[0-9]+\\)?$" "Emacs Lisp byte-compiler"
"\\.el$") :group 'lisp)
(defcustom emacs-lisp-file-regexp (if (eq system-type 'vax-vms)
"\\.EL\\(;[0-9]+\\)?$"
"\\.el$")
"*Regexp which matches Emacs Lisp source files. "*Regexp which matches Emacs Lisp source files.
You may want to redefine `byte-compile-dest-file' if you change this.") You may want to redefine the function `byte-compile-dest-file'
if you change this variable."
:group 'bytecomp
:type 'regexp)
;; This enables file name handlers such as jka-compr ;; This enables file name handlers such as jka-compr
;; to remove parts of the file name that should not be copied ;; to remove parts of the file name that should not be copied
@ -234,12 +241,16 @@ You may want to redefine `byte-compile-dest-file' if you change this.")
;; thing to do. ;; thing to do.
(autoload 'byte-decompile-bytecode "byte-opt") (autoload 'byte-decompile-bytecode "byte-opt")
(defvar byte-compile-verbose (defcustom byte-compile-verbose
(and (not noninteractive) (> baud-rate search-slow-speed)) (and (not noninteractive) (> baud-rate search-slow-speed))
"*Non-nil means print messages describing progress of byte-compiler.") "*Non-nil means print messages describing progress of byte-compiler."
:group 'bytecomp
:type 'boolean)
(defvar byte-compile-compatibility nil (defcustom byte-compile-compatibility nil
"*Non-nil means generate output that can run in Emacs 18.") "*Non-nil means generate output that can run in Emacs 18."
:group 'bytecomp
:type 'boolean)
;; (defvar byte-compile-generate-emacs19-bytecodes ;; (defvar byte-compile-generate-emacs19-bytecodes
;; (not (or (and (boundp 'epoch::version) epoch::version) ;; (not (or (and (boundp 'epoch::version) epoch::version)
@ -248,19 +259,26 @@ You may want to redefine `byte-compile-dest-file' if you change this.")
;; makes use of byte-ops which are present only in Emacs 19. Code generated ;; makes use of byte-ops which are present only in Emacs 19. Code generated
;; this way can never be run in Emacs 18, and may even cause it to crash.") ;; this way can never be run in Emacs 18, and may even cause it to crash.")
(defvar byte-optimize t (defcustom byte-optimize t
"*Enables optimization in the byte compiler. "*Enables optimization in the byte compiler.
nil means don't do any optimization. nil means don't do any optimization.
t means do all optimizations. t means do all optimizations.
`source' means do source-level optimizations only. `source' means do source-level optimizations only.
`byte' means do code-level optimizations only.") `byte' means do code-level optimizations only."
:group 'bytecomp
:type '(choice (const :tag "none" nil)
(const :tag "all" t)
(const :tag "source-level" source)
(const :tag "byte-level" byte)))
(defvar byte-compile-delete-errors t (defcustom byte-compile-delete-errors t
"*If non-nil, the optimizer may delete forms that may signal an error. "*If non-nil, the optimizer may delete forms that may signal an error.
This includes variable references and calls to functions such as `car'.") This includes variable references and calls to functions such as `car'."
:group 'bytecomp
:type 'boolean)
(defvar byte-compile-dynamic nil (defvar byte-compile-dynamic nil
"*If non-nil, compile function bodies so they load lazily. "If non-nil, compile function bodies so they load lazily.
They are hidden comments in the compiled file, and brought into core when the They are hidden comments in the compiled file, and brought into core when the
function is called. function is called.
@ -271,7 +289,7 @@ For example, add -*-byte-compile-dynamic: t;-*- on the first line.
When this option is true, if you load the compiled file and then move it, When this option is true, if you load the compiled file and then move it,
the functions you loaded will not be able to run.") the functions you loaded will not be able to run.")
(defvar byte-compile-dynamic-docstrings t (defcustom byte-compile-dynamic-docstrings t
"*If non-nil, compile doc strings for lazy access. "*If non-nil, compile doc strings for lazy access.
We bury the doc strings of functions and variables We bury the doc strings of functions and variables
inside comments in the file, and bring them into core only when they inside comments in the file, and bring them into core only when they
@ -285,19 +303,28 @@ in the source file. For example, add this to the first line:
-*-byte-compile-dynamic-docstrings:nil;-*- -*-byte-compile-dynamic-docstrings:nil;-*-
You can also set the variable globally. You can also set the variable globally.
This option is enabled by default because it reduces Emacs memory usage.") This option is enabled by default because it reduces Emacs memory usage."
:group 'bytecomp
:type 'boolean)
(defvar byte-optimize-log nil (defcustom byte-optimize-log nil
"*If true, the byte-compiler will log its optimizations into *Compile-Log*. "*If true, the byte-compiler will log its optimizations into *Compile-Log*.
If this is 'source, then only source-level optimizations will be logged. If this is 'source, then only source-level optimizations will be logged.
If it is 'byte, then only byte-level optimizations will be logged.") If it is 'byte, then only byte-level optimizations will be logged."
:group 'bytecomp
:type '(choice (const :tag "none" nil)
(const :tag "all" t)
(const :tag "source-level" source)
(const :tag "byte-level" byte)))
(defvar byte-compile-error-on-warn nil (defcustom byte-compile-error-on-warn nil
"*If true, the byte-compiler reports warnings with `error'.") "*If true, the byte-compiler reports warnings with `error'."
:group 'bytecomp
:type 'boolean)
(defconst byte-compile-warning-types (defconst byte-compile-warning-types
'(redefine callargs free-vars unresolved obsolete)) '(redefine callargs free-vars unresolved obsolete))
(defvar byte-compile-warnings t (defcustom byte-compile-warnings t
"*List of warnings that the byte-compiler should issue (t for all). "*List of warnings that the byte-compiler should issue (t for all).
Elements of the list may be be: Elements of the list may be be:
@ -308,9 +335,13 @@ Elements of the list may be be:
versa, or redefined to take a different number of arguments. versa, or redefined to take a different number of arguments.
obsolete obsolete variables and functions. obsolete obsolete variables and functions.
See also the macro `byte-compiler-options'.") See also the macro `byte-compiler-options'."
:group 'bytecomp
:type '(set (const free-vars) (const unresolved)
(const callargs) (const redefined)
(const obsolete)))
(defvar byte-compile-generate-call-tree nil (defcustom byte-compile-generate-call-tree nil
"*Non-nil means collect call-graph information when compiling. "*Non-nil means collect call-graph information when compiling.
This records functions were called and from where. This records functions were called and from where.
If the value is t, compilation displays the call graph when it finishes. If the value is t, compilation displays the call graph when it finishes.
@ -323,7 +354,10 @@ not reported.
The call tree also lists those functions which are not known to be called The call tree also lists those functions which are not known to be called
\(that is, to which no calls have been compiled). Functions which can be \(that is, to which no calls have been compiled). Functions which can be
invoked interactively are excluded from this list.") invoked interactively are excluded from this list."
:group 'bytecomp
:type '(choice (const :tag "Yes" t) (const :tag "No" nil)
(const :tag "Ask" lambda)))
(defconst byte-compile-call-tree nil "Alist of functions and their call tree. (defconst byte-compile-call-tree nil "Alist of functions and their call tree.
Each element looks like Each element looks like
@ -334,10 +368,13 @@ where CALLERS is a list of functions that call FUNCTION, and CALLS
is a list of functions for which calls were generated while compiling is a list of functions for which calls were generated while compiling
FUNCTION.") FUNCTION.")
(defvar byte-compile-call-tree-sort 'name (defcustom byte-compile-call-tree-sort 'name
"*If non-nil, sort the call tree. "*If non-nil, sort the call tree.
The values `name', `callers', `calls', `calls+callers' The values `name', `callers', `calls', `calls+callers'
specify different fields to sort on.") specify different fields to sort on."
:group 'bytecomp
:type '(choice (const name) (const callers) (const calls)
(const calls+callers) (const nil)))
;; (defvar byte-compile-overwrite-file t ;; (defvar byte-compile-overwrite-file t
;; "If nil, old .elc files are deleted before the new is saved, and .elc ;; "If nil, old .elc files are deleted before the new is saved, and .elc
@ -1119,7 +1156,8 @@ otherwise pop it")
(prog1 (selected-window) (prog1 (selected-window)
(select-window (display-buffer (current-buffer))) (select-window (display-buffer (current-buffer)))
(goto-char byte-compile-warnings-point-max) (goto-char byte-compile-warnings-point-max)
(previous-line 1) (beginning-of-line)
(forward-line -1)
(recenter 0)))))))) (recenter 0))))))))