GNU bug report logs -
#12045
24.1.50; semantic :: Debugger entered--Lisp error: (wrong-type-argument syntax-table-p nil)
Previous Next
Reported by: Jambunathan K <kjambunathan <at> gmail.com>
Date: Wed, 25 Jul 2012 15:06:02 UTC
Severity: normal
Found in version 24.1.50
Fixed in version 24.3
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 12045 in the body.
You can then email your comments to 12045 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Wed, 25 Jul 2012 15:06:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Jambunathan K <kjambunathan <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 25 Jul 2012 15:06:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
I am exploring semantic for the first time.
1. runemacs.exe -Q
2. Visit your favorite library. M-x find-library RET org-odt.el RET
3. M-x semantic-mode RET
4. C-c , j (With cursor on "some" symbol)
5. Note the following error. Either some interesting thing should
happen or a useful message should be echoed.
Debugger entered--Lisp error: (wrong-type-argument syntax-table-p nil)
set-syntax-table(nil)
semantic-ctxt-current-symbol-default(nil)
semantic-ctxt-current-symbol()
semantic-ctxt-current-thing()
semantic-complete-default-to-tag(nil)
semantic-complete-read-tag-engine([object semantic-collector-buffer-deep "Jump to symbol: " #<buffer org-odt.el> nil unbound unbound unbound unbound unbound] [object semantic-displayor-traditional-with-focus-highlight "simple" nil unbound unbound] "Jump to symbol: " nil nil nil)
semantic-complete-read-tag-buffer-deep("Jump to symbol: ")
semantic-complete-jump-local()
call-interactively(semantic-complete-jump-local nil nil)
In GNU Emacs 24.1.50.1 (i386-mingw-nt5.1.2600)
of 2012-07-23 on MARVIN
Bzr revision: 109189 vincentb1 <at> users.sourceforge.net-20120722211412-mnq2ih82me0bpuhx
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
`configure --with-gcc (4.6) --no-opt --enable-checking --cflags
-ID:/devel/emacs/libs/libXpm-3.5.8/include
-ID:/devel/emacs/libs/libXpm-3.5.8/src
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
-ID:/devel/emacs/libs/giflib-4.1.4-1/include
-ID:/devel/emacs/libs/jpeg-6b-4/include
-ID:/devel/emacs/libs/tiff-3.8.2-1/include
-ID:/devel/emacs/libs/gnutls-3.0.9/include
-ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
-ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'
Important settings:
value of $EMACSDATA: C:/Program Files/emacs-24.1.50/etc
value of $EMACSDOC: C:/Program Files/emacs-24.1.50/etc
value of $EMACSLOADPATH: C:/Program Files/emacs-24.1.50/site-lisp;C:/Program Files/emacs-24.1.50/../site-lisp;C:/Program Files/emacs-24.1.50/lisp;C:/Program Files/emacs-24.1.50/leim
value of $EMACSPATH: C:/Program Files/emacs-24.1.50/bin
value of $LANG: ENG
locale-coding-system: cp1252
default enable-multibyte-characters: t
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Wed, 25 Jul 2012 21:20:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 12045 <at> debbugs.gnu.org (full text, mbox):
Jambunathan K. writes:
> I am exploring semantic for the first time.
>
> 1. runemacs.exe -Q
> 2. Visit your favorite library. M-x find-library RET org-odt.el RET
> 3. M-x semantic-mode RET
> 4. C-c , j (With cursor on "some" symbol)
> 5. Note the following error. Either some interesting thing should
> happen or a useful message should be echoed.
>
> Debugger entered--Lisp error: (wrong-type-argument syntax-table-p nil)
I'm pretty sure I've fixed this bug some time ago in the upstream CEDET
version from bzr, so it should get fixed in Emacs proper when we do the
next merge for Emacs 24.2. If you'd like to test the upstream version,
read here
http://cedet.sourceforge.net/bzr-repo.shtml
on how to get it.
-David
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Fri, 27 Jul 2012 20:34:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 12045 <at> debbugs.gnu.org (full text, mbox):
David Engster <deng <at> randomsample.de> writes:
> Jambunathan K. writes:
>> I am exploring semantic for the first time.
>>
>> 1. runemacs.exe -Q
>> 2. Visit your favorite library. M-x find-library RET org-odt.el RET
>> 3. M-x semantic-mode RET
>> 4. C-c , j (With cursor on "some" symbol)
>> 5. Note the following error. Either some interesting thing should
>> happen or a useful message should be echoed.
>>
>> Debugger entered--Lisp error: (wrong-type-argument syntax-table-p nil)
>
> I'm pretty sure I've fixed this bug some time ago in the upstream CEDET
> version from bzr, so it should get fixed in Emacs proper when we do the
> next merge for Emacs 24.2. If you'd like to test the upstream version,
> read here
>
> http://cedet.sourceforge.net/bzr-repo.shtml
>
> on how to get it.
I am running in to issues compiling cedet with my Cygwin shell. This is
because my path names have spaces and the makefile doesn't allow for it.
My Emacs is a native Windows Emacs.
Here is an annotated log.
make fails because the path has spaces
--8<---------------cut here---------------start------------->8---
kjambunathan <at> Jambu-NetBook /cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet
$ make
Removing loaddefs.el files from subprojects.
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
/bin/sh: line 0: cd: /cygdrive/c/Documents: No such file or directory
make: *** [clean-autoloads] Error 1
--8<---------------cut here---------------end--------------->8---
Passing CURDIR with "~" explicitly set gets me past the above hurdle and
from the looks of it compilation seems to be proceeding just fine.
--8<---------------cut here---------------start------------->8---
$ make EMACS="/cygdrive/c/Program\ Files/emacs-24.1.50/bin/runemacs.exe" CURDIR="~/src/cedet"
Removing loaddefs.el files from subprojects.
Generating autoloads.
make[1]: Entering directory `/cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet/lisp/cedet'
/cygdrive/c/Program\ Files/emacs-24.1.50/bin/runemacs.exe -batch --no-site-file --eval '(setq debug-on-error t)' -l "../../cedet-remove-builtin.el" -L ../speedbar/ -L ../eieio/ -L ./ -L ./ --eval '(setq generated-autoload-file "/cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet/lisp/cedet/loaddefs.el")' -f batch-update-autoloads /cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet/lisp/cedet
make[1]: Leaving directory `/cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet/lisp/cedet'
--8<---------------cut here---------------end--------------->8---
..but make fails while installing info.
--8<---------------cut here---------------start------------->8---
make[1]: Leaving directory `/cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet/doc/texi'
Installing info files under /cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data//src/cedet/doc/info
cp: cannot stat `/cygdrive/c/Documents': No such file or directory
~/src/cedet/doc/info/dir: could not read (No such file or directory) and could not create (No such file or directory)
cp: cannot stat `and': No such file or directory
~/src/cedet/doc/info/dir: could not read (No such file or directory) and could not create (No such file or directory)
--8<---------------cut here---------------end--------------->8---
I find no semantic.elc - file from which `semantic-mode' comes from -
in my build path. I have a mixed feeling about how good the
compilation went.
--8<---------------cut here---------------start------------->8---
$ find . -name 'semantic.elc'
kjambunathan <at> Jambu-NetBook /cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet
--8<---------------cut here---------------end--------------->8---
> -David
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Fri, 27 Jul 2012 20:56:02 GMT)
Full text and
rfc822 format available.
Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):
Jambunathan K writes:
> I am running in to issues compiling cedet with my Cygwin shell. This is
> because my path names have spaces and the makefile doesn't allow for it.
> My Emacs is a native Windows Emacs.
Use 8.3 compatible names in your path components as a workaround,
e.g. "PROGRA~1" instead of "Program Files".
Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Sat, 28 Jul 2012 07:11:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 12045 <at> debbugs.gnu.org (full text, mbox):
> From: Jambunathan K <kjambunathan <at> gmail.com>
> Date: Sat, 28 Jul 2012 01:55:58 +0530
> Cc: 12045 <at> debbugs.gnu.org
>
> I am running in to issues compiling cedet with my Cygwin shell. This is
> because my path names have spaces and the makefile doesn't allow for it.
That's right, 'make' doesn't support whitespace in file names, and
never will. You can use various tricks to get around that, and
sometimes you will succeed, but if you want the problem be gone for
good, don't use file names with whitespace when 'make' is part of the
game.
> ..but make fails while installing info.
>
> --8<---------------cut here---------------start------------->8---
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data/src/cedet/doc/texi'
> Installing info files under /cygdrive/c/Documents and Settings/kjambunathan/My Documents/My Data//src/cedet/doc/info
> cp: cannot stat `/cygdrive/c/Documents': No such file or directory
> ~/src/cedet/doc/info/dir: could not read (No such file or directory) and could not create (No such file or directory)
> cp: cannot stat `and': No such file or directory
> ~/src/cedet/doc/info/dir: could not read (No such file or directory) and could not create (No such file or directory)
> --8<---------------cut here---------------end--------------->8---
Quoting the arguments passed to 'install-info' might help here.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Tue, 07 Aug 2012 08:17:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 12045 <at> debbugs.gnu.org (full text, mbox):
David Engster <deng <at> randomsample.de> writes:
> Jambunathan K. writes:
>> I am exploring semantic for the first time.
>>
>> 1. runemacs.exe -Q
>> 2. Visit your favorite library. M-x find-library RET org-odt.el RET
>> 3. M-x semantic-mode RET
>> 4. C-c , j (With cursor on "some" symbol)
>> 5. Note the following error. Either some interesting thing should
>> happen or a useful message should be echoed.
>>
>> Debugger entered--Lisp error: (wrong-type-argument syntax-table-p nil)
>
> I'm pretty sure I've fixed this bug some time ago in the upstream CEDET
> version from bzr, so it should get fixed in Emacs proper when we do the
> next merge for Emacs 24.2. If you'd like to test the upstream version,
> read here
>
> http://cedet.sourceforge.net/bzr-repo.shtml
>
> on how to get it.
My original report was on Windows. The current report is on Debian
Squeeze against CEDET bzr repo. So, consider this a bug report against
the "future"-CEDET.
When I do "C-c , j" on some symbol, that I know is defined in current
.el file, I get
,----
| Jump to symbol: org-e-odt-lib-dir [No Match] [5 times]
`----
When I partially type up the symbol and do TAB for completion, I get
,----
| semantic-analyze-current-context: Cannot analyze buffers not supported
| by Semantic
`----
If semantic does not support EmacsLisp files [1],
1. It should report an error or warning when the buffer tries to enter
semantic-mode.
2. Disable menu items (starting with Developement->etc) that doesn't
apply to current buffer.
Footnotes:
[1] Or for that matter a given language.
I have the following in my .emacs, as suggested by cedet help.
,----
| ;; Load CEDET.
| ;; See cedet/common/cedet.info for configuration details.
| ;; IMPORTANT: For Emacs >= 23.2, you must place this *before* any
| ;; CEDET component (including EIEIO) gets activated by another
| ;; package (Gnus, auth-source, ...).
| (load-file "~/src/cedet/cedet-devel-load.el")
|
| ;; Add further minor-modes to be enabled by semantic-mode.
| ;; See doc-string of `semantic-default-submodes' for other things
| ;; you can use here.
| (add-to-list 'semantic-default-submodes 'global-semantic-idle-summary-mode t)
| (add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode t)
| (add-to-list 'semantic-default-submodes 'global-cedet-m3-minor-mode t)
|
| ;; Enable Semantic
| (semantic-mode 1)
|
| ;; Enable EDE (Project Management) features
| (global-ede-mode 1)
`----
> -David
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Thu, 11 Oct 2012 20:47:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 12045 <at> debbugs.gnu.org (full text, mbox):
Jambunathan K. writes:
> My original report was on Windows. The current report is on Debian
> Squeeze against CEDET bzr repo. So, consider this a bug report against
> the "future"-CEDET.
>
> When I do "C-c , j" on some symbol, that I know is defined in current
> .el file, I get
> ,----
> | Jump to symbol: org-e-odt-lib-dir [No Match] [5 times]
> `----
>
> When I partially type up the symbol and do TAB for completion, I get
> ,----
> | semantic-analyze-current-context: Cannot analyze buffers not supported
> | by Semantic
> `----
>
> If semantic does not support EmacsLisp files [1],
> 1. It should report an error or warning when the buffer tries to enter
> semantic-mode.
>
> 2. Disable menu items (starting with Developement->etc) that doesn't
> apply to current buffer.
You are right, this problem still exists. It is due to the fact that
semantic-mode is active for all buffers (it is a minor mode after all),
whether they could be parsed or not. Raising an error or warning for all
buffers that cannot be parsed would surely be very annoying, so we
cannot do that. However, we can check if a buffer was parsed by calling
`semantic-active-p' (which simply returns `semantic-new-buffer-fcn-was-run').
The solution for the menu items is pretty simple (checking for
`semantic-active-p' instead of only looking at `semantic-mode'). I've
now pushed a change to CEDET upstream that does this, and I will merge
it soon.
Regarding interactive commands, especially those with a pre-defined
keybinding, I'm not entirely sure what would be the best fix. The
easiest way would be if keymaps could be activated dependend on a
buffer-local variable, just as I can do that via the :visible attribute
for menu items. I don't think this is possible, but maybe someone around
here knows a solution. Otherwise, we'd have to check for
`semantic-active-p' in all interactive commands.
-David
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Thu, 11 Oct 2012 21:06:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 12045 <at> debbugs.gnu.org (full text, mbox):
David Engster writes:
>> When I do "C-c , j" on some symbol, that I know is defined in current
>> .el file, I get
>> ,----
>> | Jump to symbol: org-e-odt-lib-dir [No Match] [5 times]
>> `----
[...]
> You are right, this problem still exists. It is due to the fact that
> semantic-mode is active for all buffers (it is a minor mode after all),
> whether they could be parsed or not.
I forgot to add: The reason I was confused in the beginning was that
CEDET actually does parse Elisp files. I just lately realized that this
feature is not enabled by default in Emacs proper. You have to manually
require it through
(require 'semantic/bovine/el)
Maybe Yidong disabled it during the initial merge because he found it
too intrusive. I'm not sure, which is why I'm CCing him. Maybe this is
something that could be changed?
-David
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Fri, 12 Oct 2012 00:10:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 12045 <at> debbugs.gnu.org (full text, mbox):
> Regarding interactive commands, especially those with a pre-defined
> keybinding, I'm not entirely sure what would be the best fix. The
> easiest way would be if keymaps could be activated dependend on a
> buffer-local variable, just as I can do that via the :visible attribute
> for menu items.
Minor mode keymaps work exactly this way (the minor-mode variable
enables/disables the corresponding keymap). But usually it's not
necessary to disable a binding just because it's currently unusable.
Just like most menu items use :enable rather than :visible, since that
lets the user know that there is such a feature, even though it
currently can't be used.
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Fri, 12 Oct 2012 06:12:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 12045 <at> debbugs.gnu.org (full text, mbox):
Stefan Monnier writes:
>> Regarding interactive commands, especially those with a pre-defined
>> keybinding, I'm not entirely sure what would be the best fix. The
>> easiest way would be if keymaps could be activated dependend on a
>> buffer-local variable, just as I can do that via the :visible attribute
>> for menu items.
>
> Minor mode keymaps work exactly this way (the minor-mode variable
> enables/disables the corresponding keymap). But usually it's not
> necessary to disable a binding just because it's currently unusable.
> Just like most menu items use :enable rather than :visible, since that
> lets the user know that there is such a feature, even though it
> currently can't be used.
OK, so I will change the Semantic menu items to
:visible semantic-mode
:enable (semantic-active-p)
Regarding the key bindings however, I think we can agree that the
current situation needs improvement. The interactive commands usually
assume that the buffer was correctly set up for parsing and hence raise
some cryptic error if that isn't the case (see subject). So if the
keybindings should simply stay enabled in all buffers if semantic-mode
is active, I will have to add some `semantic-raise-error-if-unparsed'
function at the beginning of every interactive function.
-David
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Fri, 12 Oct 2012 13:49:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 12045 <at> debbugs.gnu.org (full text, mbox):
> Regarding the key bindings however, I think we can agree that the
> current situation needs improvement. The interactive commands usually
> assume that the buffer was correctly set up for parsing and hence raise
> some cryptic error if that isn't the case (see subject).
Right, the error message should be improved.
> So if the keybindings should simply stay enabled in all buffers if
> semantic-mode is active, I will have to add some
> `semantic-raise-error-if-unparsed' function at the beginning of every
> interactive function.
Also, compared to making the binding conditional, this has the advantage
that the error message can say *why* the binding doesn't work, contrary
to a laconic "<key> is undefined".
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12045
; Package
emacs
.
(Sun, 14 Oct 2012 19:43:01 GMT)
Full text and
rfc822 format available.
Message #38 received at 12045 <at> debbugs.gnu.org (full text, mbox):
Stefan Monnier writes:
>> So if the keybindings should simply stay enabled in all buffers if
>> semantic-mode is active, I will have to add some
>> `semantic-raise-error-if-unparsed' function at the beginning of every
>> interactive function.
>
> Also, compared to making the binding conditional, this has the advantage
> that the error message can say *why* the binding doesn't work, contrary
> to a laconic "<key> is undefined".
I've now merged those changes into Emacs trunk. The Semantic menu items
should now be inactive when the buffer is not parsed. Also, I added the
above described check to some of the interactive functions so they raise
a proper error. Please let me know if I missed some important ones here.
-David
bug marked as fixed in version 24.3, send any further explanations to
12045 <at> debbugs.gnu.org and Jambunathan K <kjambunathan <at> gmail.com>
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Sun, 21 Oct 2012 02:02:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 18 Nov 2012 12:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 12 years and 220 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.