unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function
@ 2009-10-16 14:40 Aidan Kehoe
  0 siblings, 0 replies; 5+ messages in thread
From: Aidan Kehoe @ 2009-10-16 14:40 UTC (permalink / raw)
  To: emacs-pretest-bug


Hello!

Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

In *scratch*: 

(progn
  (setq print-length nil)
  (make-hash-table)) 
=> #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())

#s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data
 ())
=> 
Debugger entered--Lisp error: (void-function hash-table)
  (hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data nil)
  eval((hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data nil))
  eval-last-sexp-1(t)
  eval-last-sexp(t)
  eval-print-last-sexp()
  call-interactively(eval-print-last-sexp nil nil)

However, this succeeds: 

(car (list
      #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())))
=> #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())

XEmacs handles the problem in #'forward-sexp, details here: 

http://hg.debian.org/hg/xemacs/xemacs/file/a27de91ae83c/lisp/lisp.el#l55

When I use the XEmacs version of #'forward-sexp, the problem goes away. 

Goodbye, 

Aidan

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/Sources/emacs/nextstep/Emacs.app/Contents/Resources/etc/DEBUG for instructions.


In GNU Emacs 23.1.50.1 (i386-apple-darwin8.11.1, NS apple-appkit-824.48)
 of 2009-09-30 on bonbon
Windowing system distributor `Apple', version 10.3.824
configured using `configure  '--with-ns' '--enable-asserts' '--enable-maintainer-mode' '--enable-cocoa-experimental-ctrl-g' '--with-xpm' '--with-jpeg' '--with-tiff' '--with-png' 'LDFLAGS=-L/opt/local/lib -L/usr/X11R6/lib -L/usr/local/lib' 'CPPFLAGS=-I/opt/local/include -I/usr/X11R6/include -I/usr/local/include''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-v C-v C-v C-v C-v C-v 
C-v C-v C-v C-v <escape> v C-v C-v C-v C-v C-v <prior> 
<next> <next> <prior> <prior> <prior> <prior> <prior> 
<prior> <prior> <prior> <prior> C-x b * s c <tab> <return> 
( k i l l e C-a C-k <f1> v p r i n t - l e <tab> n 
<tab> <return> C-x o C-n C-n C-n C-n C-n C-e C-b C-b 
C-b C-b <return> C-x o C-n C-x o C-e C-b C-b C-b <return> 
C-x o C-x b * s c <tab> C-g C-x o C-n C-n C-x o C-x 
b * s c <tab> <return> <escape> > <return> <return> 
( s e t q SPC e v a l - e x p r e s s i o n - p r i 
n t - l e n g t h SPC n i l ) C-j C-p C-p C-p C-p C-p 
C-p C-e C-j C-p C-d C-d ( l e n g t h SPC ' C-e ) C-j 
C-x o C-x o C-p C-p C-n C-n C-n C-p C-p C-p C-p C-k 
C-k C-k C-p C-e C-j C-p C-e C-j q <escape> x r e p 
o r t - e m a c s - b u g C-g C-p <return> <return> 
C-p ( c o n s SPC . C-a ( c a r SPC C-e C-n C-e <backspace> 
) <return> <tab> n i l ) ) C-j C-x o C-p C-p C-f C-f 
C-f C-f C-f C-f C-f C-f C-d C-n C-n C-j C-x o q <escape> 
x r e p o r t - e m a c s - b u g <return>

Recent messages:
Making completion list...
Type C-x 1 to delete the help window.
uncompressing simple.el.gz...done
Quit
Mark set
Entering debugger...
Back to top level.
Quit
Entering debugger...
Back to top level.

-- 
¿Dónde estará ahora mi sobrino Yoghurtu Nghe, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function
@ 2009-10-18  3:43 Chong Yidong
  2009-10-18 14:43 ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Chong Yidong @ 2009-10-18  3:43 UTC (permalink / raw)
  To: Aidan Kehoe; +Cc: 4737

> In *scratch*:
>
> (progn
>   (setq print-length nil)
>   (make-hash-table))
> => #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())
>
> #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data
>  ())
> =>
> Debugger entered--Lisp error: (void-function hash-table)
>   (hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data nil)
>   eval((hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data nil))
>   eval-last-sexp-1(t)
>   eval-last-sexp(t)
>   eval-print-last-sexp()
>   call-interactively(eval-print-last-sexp nil nil)

> However, this succeeds:

> (car (list
>       #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())))
> => #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())

> XEmacs handles the problem in #'forward-sexp

I think it's safer to handle it in preceding-sexp.  Could you test the
patch below?


*** emacs/lisp/emacs-lisp/lisp-mode.el.~1.247.~	2009-09-27 18:51:01.000000000 -0400
--- emacs/lisp/emacs-lisp/lisp-mode.el	2009-10-17 23:41:53.000000000 -0400
***************
*** 673,678 ****
--- 673,682 ----
  	  (when (eq (preceding-char) ??)
  	    (forward-char -1)))
  
+ 	;; Skip over hash table read syntax
+ 	(when (looking-back "#s")
+ 	  (forward-char -2))
+ 
  	;; Skip over `#N='s.
  	(when (eq (preceding-char) ?=)
  	  (let (labeled-p)





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function
  2009-10-18  3:43 bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function Chong Yidong
@ 2009-10-18 14:43 ` Stefan Monnier
  2009-10-18 15:34   ` martin rudalics
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2009-10-18 14:43 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Aidan Kehoe, 4737

> + 	;; Skip over hash table read syntax
> + 	(when (looking-back "#s")
> + 	  (forward-char -2))

Calling looking-back without a limit argument is asking for trouble (it
has complexity O(size of buffer) or worse).


        Stefan





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function
  2009-10-18 14:43 ` Stefan Monnier
@ 2009-10-18 15:34   ` martin rudalics
  2009-10-19  2:06     ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: martin rudalics @ 2009-10-18 15:34 UTC (permalink / raw)
  To: Stefan Monnier, 4737; +Cc: Aidan Kehoe, Chong Yidong

 > Calling looking-back without a limit argument is asking for trouble (it
 > has complexity O(size of buffer) or worse).

Then we should make the limit argument non-optional.

martin





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function
  2009-10-18 15:34   ` martin rudalics
@ 2009-10-19  2:06     ` Stefan Monnier
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2009-10-19  2:06 UTC (permalink / raw)
  To: martin rudalics; +Cc: Aidan Kehoe, 4737, Chong Yidong

>> Calling looking-back without a limit argument is asking for trouble (it
>> has complexity O(size of buffer) or worse).

> Then we should make the limit argument non-optional.

Feel free to do that,


        Stefan


PS: Now that we can do it compatibly via set-advertised-calling-convention.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-10-19  2:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-18  3:43 bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function Chong Yidong
2009-10-18 14:43 ` Stefan Monnier
2009-10-18 15:34   ` martin rudalics
2009-10-19  2:06     ` Stefan Monnier
  -- strict thread matches above, loose matches on Subject: below --
2009-10-16 14:40 Aidan Kehoe

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).