unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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).