emacs-devel
[Top][All Lists]
Advanced

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

Re: [Unicode-2] `C-h f' error


From: Katsumi Yamaoka
Subject: Re: [Unicode-2] `C-h f' error
Date: Mon, 19 Nov 2007 17:31:02 +0900
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/23.0.60 (gnu/linux)

>>>>> Katsumi Yamaoka wrote:

>>> Debugger entered--Lisp error: (setting-constant :validate)
>>>   function-called-at-point()
>>>   [...]
>>>   call-interactively(describe-function)

I think I have reached to the real cause of this problem.  Though
it may happen only to me, I've tested it with two machines running
different OS (Fedora 8 and RHL 9).  The necessary conditions to
make it happen are:

  A function is dumped into the Emacs executable.
  It uses a macro in which uninterned symbols are used in `let'.

In that case, uninterned symbols seem to be replaced with the
interned ones when dumping into Emacs.  The way I reproduced it is:

1. Make the /tmp/test.el file (attached below) and byte compile it.
2. Modify the lisp/loadup.el file as follows:

--8<---------------cut here---------------start------------->8---
*** loadup.el~  Sun Nov 11 21:51:19 2007
--- loadup.el   Mon Nov 19 08:14:23 2007
***************
*** 85,88 ****
--- 85,89 ----
  (load "simple")
  
+ (load "/tmp/test")
  (load "help")
  
--8<---------------cut here---------------end--------------->8---

3. Dump Emacs in this way:
    $ cd src
    $ ./temacs -batch -l loadup dump

4. Run Emacs as:
    $ ./emacs -batch -Q -eval '(foo)'
   I got:
set-display-table-and-terminal-coding-system reset-language-environment English

5. Run Emacs as:
    $ ./emacs -batch -Q -l /tmp/test -eval '(foo)'
  I got:
foo bar baz

The test.el file is here:

--8<---------------cut here---------------start------------->8---
(defmacro foo-macro nil
  (let ((foo (make-symbol "foo"))
        (bar (make-symbol "bar"))
        (baz (make-symbol "baz")))
    `(message "%s %s %s" ',foo ',bar ',baz)))

(defun foo nil
  (foo-macro))
--8<---------------cut here---------------end--------------->8---

Regards,




reply via email to

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