unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#25679: 26.0.50; Emacs hangs for nested generics
@ 2017-02-10 19:27 Philipp Stephani
  2017-02-13  9:30 ` Philipp Stephani
  2021-02-05 13:20 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 3+ messages in thread
From: Philipp Stephani @ 2017-02-10 19:27 UTC (permalink / raw)
  To: 25679


Create a file /tmp/Foo.java with the following content:

class Foo {
    void func(A<B<C>>> a, A<B<C>>> b, A<B<C>>> c, A<B<C>>> d, A<B<C>>> e, A<B<C>>> f, A<B<C>>> g, A<B<C>>> h, A<B<C>>> i, A<B<C>>> j, A<B<C>>> k) {}
}

Then open that file:

emacs -Q /tmp/Foo.java

Emacs hangs.  C-g also doesn't work.  GDB shows the culprit is a
recursive invocation of

"c-forward-<>-arglist-recur" (0x29dd1f00)
"c-forward-<>-arglist" (0x29dd2530)
"c-forward-name" (0x29dd2d40)
"c-forward-type" (0x29dd3750)

The actual top of the stack is often GC or a regex match.
Seems the parsing of generic arguments has some exponential behavior.
This is a regression since 24.3, where editing such files has no
noticeable delay.



In GNU Emacs 26.0.50.3 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2017-02-10 built on localhost
Repository revision: abcba32c262e575b562ec0e481e55538536f969f
Windowing system distributor 'The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --with-modules 'CFLAGS=-O0 -ggdb3' --enable-checking
 --enable-check-lisp-object-type'

Configured features:
XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message subr-x puny seq byte-opt gv
bytecomp byte-compile cl-extra help-mode cconv cl-loaddefs pcase cl-lib
dired dired-loaddefs format-spec rfc822 mml easymenu mml-sec
password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript case-table epa-hook jka-cmpr-hook help
simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote inotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 97870 8481)
 (symbols 48 20263 1)
 (miscs 40 331 131)
 (strings 32 18056 4481)
 (string-bytes 1 593648)
 (vectors 16 14075)
 (vector-slots 8 472899 6583)
 (floats 8 182 52)
 (intervals 56 218 0)
 (buffers 976 12)
 (heap 1024 32557 1028))

-- 
Google Germany GmbH
Erika-Mann-Straße 33
80636 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle

Diese E-Mail ist vertraulich.  Wenn Sie nicht der richtige Adressat sind,
leiten Sie diese bitte nicht weiter, informieren Sie den Absender und löschen
Sie die E-Mail und alle Anhänge.  Vielen Dank.

This e-mail is confidential.  If you are not the right addressee please do not
forward it, please inform the sender, and please erase this e-mail including
any attachments.  Thanks.





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

* bug#25679: 26.0.50; Emacs hangs for nested generics
  2017-02-10 19:27 bug#25679: 26.0.50; Emacs hangs for nested generics Philipp Stephani
@ 2017-02-13  9:30 ` Philipp Stephani
  2021-02-05 13:20 ` Lars Ingebrigtsen
  1 sibling, 0 replies; 3+ messages in thread
From: Philipp Stephani @ 2017-02-13  9:30 UTC (permalink / raw)
  To: 25679

[-- Attachment #1: Type: text/plain, Size: 1184 bytes --]

Philipp Stephani <p.stephani2@gmail.com> schrieb am Fr., 10. Feb. 2017 um
20:28 Uhr:

>
> Create a file /tmp/Foo.java with the following content:
>
> class Foo {
>     void func(A<B<C>>> a, A<B<C>>> b, A<B<C>>> c, A<B<C>>> d, A<B<C>>> e,
> A<B<C>>> f, A<B<C>>> g, A<B<C>>> h, A<B<C>>> i, A<B<C>>> j, A<B<C>>> k) {}
> }
>
> Then open that file:
>
> emacs -Q /tmp/Foo.java
>
> Emacs hangs.  C-g also doesn't work.  GDB shows the culprit is a
> recursive invocation of
>
> "c-forward-<>-arglist-recur" (0x29dd1f00)
> "c-forward-<>-arglist" (0x29dd2530)
> "c-forward-name" (0x29dd2d40)
> "c-forward-type" (0x29dd3750)
>
> The actual top of the stack is often GC or a regex match.
> Seems the parsing of generic arguments has some exponential behavior.
> This is a regression since 24.3, where editing such files has no
> noticeable delay.
>
>
>
I've tried lowering font-lock-maximum-decoration, it also doesn't appear to
help. Even at level 1 Emacs hangs.

In general I've got quite a few reports about hangs and slowness in newer
versions of CC-Mode. Please make sure it never hangs, if necessary by
removing the more complex parsing algorithms and adding hard timeouts to
font locking.

[-- Attachment #2: Type: text/html, Size: 2246 bytes --]

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

* bug#25679: 26.0.50; Emacs hangs for nested generics
  2017-02-10 19:27 bug#25679: 26.0.50; Emacs hangs for nested generics Philipp Stephani
  2017-02-13  9:30 ` Philipp Stephani
@ 2021-02-05 13:20 ` Lars Ingebrigtsen
  1 sibling, 0 replies; 3+ messages in thread
From: Lars Ingebrigtsen @ 2021-02-05 13:20 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 25679

Philipp Stephani <p.stephani2@gmail.com> writes:

> Create a file /tmp/Foo.java with the following content:
>
> class Foo {
>     void func(A<B<C>>> a, A<B<C>>> b, A<B<C>>> c, A<B<C>>> d, A<B<C>>> e, A<B<C>>> f, A<B<C>>> g, A<B<C>>> h, A<B<C>>> i, A<B<C>>> j, A<B<C>>> k) {}
> }
>
> Then open that file:
>
> emacs -Q /tmp/Foo.java
>
> Emacs hangs.  C-g also doesn't work.

I can reproduce this in Emacs 26.1, but not in Emacs 28, so I'm going to
guess that this has been fixed now, and I'm closing this bug report.  If
this problem is still present, please respond to the debbugs address and
we'll reopen.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

end of thread, other threads:[~2021-02-05 13:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-10 19:27 bug#25679: 26.0.50; Emacs hangs for nested generics Philipp Stephani
2017-02-13  9:30 ` Philipp Stephani
2021-02-05 13:20 ` Lars Ingebrigtsen

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