[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scri
From: |
Kenichi Handa |
Subject: |
Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used] |
Date: |
Fri, 20 Jul 2007 10:16:21 +0900 |
User-agent: |
SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/23.0.0 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) |
Thank you investigating this problem. I now can reproduce
the bug, and I think I found a solution. Please wait for a
while. I'll let you know when it is fixed.
---
Kenichi Handa
address@hidden
In article <address@hidden>, Joe Wells <address@hidden> writes:
> Joe Wells <address@hidden> writes:
> > Kenichi Handa <address@hidden> writes:
> >
>>> In article <address@hidden>, Joe Wells <address@hidden> writes:
>>>
>>>> I have reverified the bug. I tested in a dummy account to make sure
>>>> none of my account settings affected things. I have also verified
>>>> that I get the bug when using the console (no X windows).
>>>
>>>> Here are some more details on my configuration. I am using
>>>> Ubuntu 6.06 LTS (âDapper Drakeâ) with all packages fully updated.
>>>> Everything I am using is standard Ubuntu except for my kernel and
>>>> Emacs. I am using a custom Linux kernel version 2.6.17 (this version
>>>> was fairly current a year ago) with a few extra patches applied by my
>>>> hardware middleman. As I reported in my original report, I built
>>>> Emacs with these options:
>>>
>>>> export CFLAGS='-O0 -g3 -ggdb'
>>>> ./configure --prefix=$HOME/local2 --enable-debug --disable-nls
>>>> --with-x-toolkit=gtk
>>>
>>>> I suppose that the â--disable-nlsâ or â--with-x-toolkit=gtkâ
>>>> options
>>>> might contribute to the bug.
>>>
>>> I configured Emacs 21.1 with the same options, but still
>>> can't reproduce the bug (my distribution is Debian). After
>>> starting Emacs, the *Messsage* buffer contains this:
>>>
>>> ("/home/handa/local2/bin/emacs" "--quick" "--eval" "(setq
>>> utf-8-compose-scripts\ t)" "--load" "lao-util")
>>> Loading encoded-kb...done
>>> For information about the GNU Project and its goals, type C-h C-p.
>>> Loading regexp-opt...done
>>> Loading thai-util...
>>> Loading mule-util...done
>>> Loading thai-util...done
>>> Loading devan-util...
>>> Loading ind-util...done
>>> Loading devan-util...done
>>> Loading mlm-util...done
>>> Loading tml-util...done
> >
> > Here is the *Messages* buffer for me which shows the error:
> >
> > ----------------------------------------------------------------------
> > ("/home/jbw/local2/bin/emacs" "--quick" "--eval" "(setq
> > utf-8-compose-scripts t)" "--load" "lao-util")
> > Loading encoded-kb...done
> > For information about the GNU Project and its goals, type C-h C-p.
> > Loading thai-util... [2 times]
> > Loading mule-util...
> > Loading lao-util... [2 times]
> > Loading regexp-opt...
> > Loading lao-util... [2 times]
> > Loading regexp-opt...
> > Loading lao-util... [2 times]
> > Loading regexp-opt...
> > Loading lao-util...
> > utf-8-post-read-conversion: Recursive load:
> > "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc",
> > "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc",
> > "/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc",
> > "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc",
> > "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc",
> > "/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc",
> > "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc"
> > ----------------------------------------------------------------------
> >
> > There are several differences. Your *Messages* buffer shows
> > regexp-opt being loaded just once and before the other files. Mine
> > shows regexp-opt not being loaded until after several other files, and
> > it is loaded repeatedly as part of the recursive load loop.
> >
> > Mine shows thai-util being loaded _twice_, with the second time
> > apparently happening during the first time.
> >
> > Yours _never_ loads lao-util.
> >
>>> If you don't supply "--load lao-util", does your emacs work
>>> well?
> >
> > No, sooner or later something else causes it to be loaded. It seems
> > that any time an attempt is made to load âmule-utilâ, âlao-utilâ, or
> > âregexp-optâ, a recursive loading loop results. A quick check reveals
> > I get the same error with both of these command lines:
> >
> > emacs --no-window-system --quick --eval '(setq utf-8-compose-scripts t)'
> > --load "mule-util"
> >
> > emacs --no-window-system --quick --eval '(setq utf-8-compose-scripts t)'
> > --load "regexp-opt"
> >
>>> How about "--load lao-util.el" instead?
> >
> > I get the same problem if I load âlao-util.elâ instead of
> > âlao-utilâ.
> >
> > --
> > Joe
> >
> > P.S. Unfortunately, doing (setq debug-on-error t) before (load
> > "lao-util") does not trigger the debugger, which makes it harder to
> > figure out just what is happening.
> Well, debug-on-error is not working (presumably because the debugger
> itself is failing for the same reason), but stack-trace-on-error does
> work! I've appended the full stack trace below.
> It seems that an additional ingredient is needed to trigger the bug:
> the path to Emacs's installed location must include a symbolic link.
> On my system, Emacs is installed under â/home/jbw/local2â, which is a
> symbolic link to â/mnt/extra-space-02/jbw/localâ.
> Loading is canonicalizing paths using the function file-truename which
> invokes file-symlink-p which uses the macro DECODE_FILE which invokes
> code_convert_string_norecord using the value of
> default-file-name-coding-system which is mule-utf-8. The function
> code_convert_string_norecord makes an attempt to prevent character
> composition with the line âcoding.composing = COMPOSITION_DISABLED;â,
> but this seems to be ignored (or be affecting a completely different
> code path for character composition). The function
> code_convert_string_norecord invokes decode_coding_string which
> invokes run_pre_post_conversion_on_str if the coding system has a
> post-read-conversion property. The coding system mule-utf-8 has as
> its value of its post-read-conversion property the function
> utf-8-post-read-conversion. The function
> run_pre_post_conversion_on_str then invokes
> utf-8-post-read-conversion, which attempts to run lao-compose-region.
> The function lao-compose-region is autoloaded from âlao-util.elâ, and
> loading that file defines the initial value of a variable by invoking
> âregexp-optâ which is autoloaded from âregexp-opt.elâ. There is some
> additional complication. See the stack trace below.
> What seems to be needed is some way of telling the
> post-read-conversion function to do all of its usual work except for
> any work for character composition.
> Joe
> ----------------------------------------------------------------------
> lao-compose-region(30 1)
> utf-8-post-read-conversion(29)
> file-symlink-p("/home/jbw/local2")
> file-truename("/home/jbw/local2" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp" (91) ((("/home/jbw/"
> . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp" (91)
> ((("/home/jbw/" . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/debug.elc")
> debug(error (error "Recursive load"
> "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc"
> "/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc"))
> lao-compose-region(30 1)
> utf-8-post-read-conversion(29)
> file-symlink-p("/home/jbw/local2")
> file-truename("/home/jbw/local2" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp" (91) ((("/home/jbw/"
> . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp" (91)
> ((("/home/jbw/" . "/home/jbw/") ("/home/" . "/home/"))))
>
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc")
> regexp-opt(("ngh" "kh" "qh" "ng" "th" "dh" "hp" "fh" "ph" "gn" "hh" "nh"
> "mh" "lh" "yh" "wh" "hl" "hy" "hn" "hm" "k" "j" "s" "x" "y" "d" "t" "n" "b"
> "p" "f" "m" "l" "r" "v" "w" "O" "h"))
> byte-code("\306\307\310\311\"!\312\307\310\311 \"!\313\307\310\311
> \"!\312\307\310\311\"!\314\307\310\311\"!\315\307\310\311
\"!\260\207" [lao-transcription-consonant-alist
lao-transcription-semi-vowel-alist lao-transcription-vowel-alist
lao-transcription-maa-sakod-alist lao-transcription-tone-alist
lao-transcription-punctuation-alist "\\(" regexp-opt mapcar car "\\)\\("
"\\)?\\(\\(" "\\)?\\(" "\\)?\\)?\\|"] 15)
> (defconst lao-transcription-pattern (byte-code
> "\306\307\310\311\"!\312\307\310\311 \"!\313\307\310\311
> \"!\312\307\310\311\"!\314\307\310\311\"!\315\307\310\311
\"!\260\207" [lao-transcription-consonant-alist
lao-transcription-semi-vowel-alist lao-transcription-vowel-alist
lao-transcription-maa-sakod-alist lao-transcription-tone-alist
lao-transcription-punctuation-alist "\\(" regexp-opt mapcar car "\\)\\("
"\\)?\\(\\(" "\\)?\\(" "\\)?\\)?\\|"] 15)
("/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc" . 10639))
> lao-compose-region(30 1)
> utf-8-post-read-conversion(29)
> file-symlink-p("/home/jbw/local2")
> file-truename("/home/jbw/local2" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp" (91) ((("/home/jbw/"
> . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/language" (91)
> ((("/home/jbw/" . "/home/jbw/") ("/home/" . "/home/"))))
>
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc")
> lao-compose-region(30 1)
> utf-8-post-read-conversion(29)
> file-symlink-p("/home/jbw/local2")
> file-truename("/home/jbw/local2" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp" (91) ((("/home/jbw/"
> . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp" (91)
> ((("/home/jbw/" . "/home/jbw/") ("/home/" . "/home/"))))
>
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc")
> regexp-opt(("ngh" "kh" "qh" "ng" "th" "dh" "hp" "fh" "ph" "gn" "hh" "nh"
> "mh" "lh" "yh" "wh" "hl" "hy" "hn" "hm" "k" "j" "s" "x" "y" "d" "t" "n" "b"
> "p" "f" "m" "l" "r" "v" "w" "O" "h"))
> byte-code("\306\307\310\311\"!\312\307\310\311 \"!\313\307\310\311
> \"!\312\307\310\311\"!\314\307\310\311\"!\315\307\310\311
\"!\260\207" [lao-transcription-consonant-alist
lao-transcription-semi-vowel-alist lao-transcription-vowel-alist
lao-transcription-maa-sakod-alist lao-transcription-tone-alist
lao-transcription-punctuation-alist "\\(" regexp-opt mapcar car "\\)\\("
"\\)?\\(\\(" "\\)?\\(" "\\)?\\)?\\|"] 15)
> (defconst lao-transcription-pattern (byte-code
> "\306\307\310\311\"!\312\307\310\311 \"!\313\307\310\311
> \"!\312\307\310\311\"!\314\307\310\311\"!\315\307\310\311
\"!\260\207" [lao-transcription-consonant-alist
lao-transcription-semi-vowel-alist lao-transcription-vowel-alist
lao-transcription-maa-sakod-alist lao-transcription-tone-alist
lao-transcription-punctuation-alist "\\(" regexp-opt mapcar car "\\)\\("
"\\)?\\(\\(" "\\)?\\(" "\\)?\\)?\\|"] 15)
("/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc" . 10639))
> lao-compose-region(30 1)
> utf-8-post-read-conversion(29)
> file-symlink-p("/home/jbw/local2")
> file-truename("/home/jbw/local2" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp" (91) ((("/home/jbw/"
> . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/language" (91)
> ((("/home/jbw/" . "/home/jbw/") ("/home/" . "/home/"))))
>
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/language/lao-util.elc")
> lao-compose-region(30 1)
> utf-8-post-read-conversion(29)
> file-symlink-p("/home/jbw/local2")
> file-truename("/home/jbw/local2" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share" (91) ((("/home/jbw/" . "/home/jbw/")
> ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1" (91) ((("/home/jbw/" .
> "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp" (91) ((("/home/jbw/"
> . "/home/jbw/") ("/home/" . "/home/"))))
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp" (91)
> ((("/home/jbw/" . "/home/jbw/") ("/home/" . "/home/"))))
>
> file-truename("/home/jbw/local2/share/emacs/22.1/lisp/emacs-lisp/regexp-opt.elc")
> load("regexp-opt")
> eval((load "regexp-opt"))
> eval-last-sexp-1(nil)
> eval-last-sexp(nil)
> call-interactively(eval-last-sexp)
> ----------------------------------------------------------------------
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Kenichi Handa, 2007/07/16
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Joe Wells, 2007/07/16
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Kenichi Handa, 2007/07/17
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Joe Wells, 2007/07/17
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Joe Wells, 2007/07/18
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Kenichi Handa, 2007/07/18
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Joe Wells, 2007/07/19
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Joe Wells, 2007/07/19
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used],
Kenichi Handa <=
- Re: address@hidden: strange Emacs 22.1 failure due to utf-8-compose-scripts when --no-window-system used], Kenichi Handa, 2007/07/19