* Q on byte-compiling and define-derived-mode
@ 2006-06-02 18:47 Drew Adams
2006-06-03 15:02 ` Richard Stallman
0 siblings, 1 reply; 3+ messages in thread
From: Drew Adams @ 2006-06-02 18:47 UTC (permalink / raw)
I have a file that starts with (define-derived-mode foo-mode...). Later in
the file I define a function that calls (foo-mode). When I byte-compile the
file I get this warning:
In end of data:
foobar.el:861:1:Warning: the function `foo-mode' is not known to be
defined.
Is this normal or a bug? Shouldn't the byte-compiler be able to tell that
foo-mode is defined in the same file (especially since the mode definition
is the first thing in the file)?
(In GNU Emacs 22.0.50.1 (i386-mingw-nt5.1.2600) of 2006-03-20 on W2ONE X
server distributor `Microsoft Corp.', version 5.1.2600 configured using
`configure --with-gcc (3.4) --cflags -Id:/g/include')
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Q on byte-compiling and define-derived-mode
2006-06-02 18:47 Q on byte-compiling and define-derived-mode Drew Adams
@ 2006-06-03 15:02 ` Richard Stallman
2006-06-03 15:49 ` Drew Adams
0 siblings, 1 reply; 3+ messages in thread
From: Richard Stallman @ 2006-06-03 15:02 UTC (permalink / raw)
Cc: emacs-devel
I have a file that starts with (define-derived-mode foo-mode...). Later in
the file
Please send a precise test case. Please don't ask people to try
to guess at what is needed to make this problem occur.
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: Q on byte-compiling and define-derived-mode
2006-06-03 15:02 ` Richard Stallman
@ 2006-06-03 15:49 ` Drew Adams
0 siblings, 0 replies; 3+ messages in thread
From: Drew Adams @ 2006-06-03 15:49 UTC (permalink / raw)
I have a file that starts with (define-derived-mode
foo-mode...). Later in the file
Please send a precise test case.
Right. I've determined the cause: if the define-derived-mode is not at top
level, then the warning occurs. I guess this is normal after all, as its
execution depends on other code.
Anyway, here's the test case:
(defvar foo-mode-map nil "Keymap for `foo-mode'.")
(unless foo-mode-map
(let ((map (make-sparse-keymap "Foo")))
(define-key map "?" 'fooey)
(setq foo-mode-map map)))
(when t
(define-derived-mode foo-mode nil "Foo"
"Major mode for Fooness"
(setq mode-line-format nil)
(set (make-local-variable 'auto-hscroll-mode) nil)
(set (make-local-variable 'auto-window-vscroll) nil)
(set (make-local-variable 'transient-mark-mode) nil)
(setq cursor-in-non-selected-windows t)
(blink-cursor-mode 1)))
(defun foo ()
"Pure foo"
(interactive)
(foo-mode))
------------------
Compiling file throw-1.el at Sat Jun 03 08:44:50 2006
In end of data:
throw-1.el:23:1:Warning: the function `foo-mode' is not known to be defined.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-06-03 15:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-02 18:47 Q on byte-compiling and define-derived-mode Drew Adams
2006-06-03 15:02 ` Richard Stallman
2006-06-03 15:49 ` Drew Adams
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).