GNU bug report logs - #25122
24.5; function describe-variable hangs on large variables

Previous Next

Package: emacs;

Reported by: Boruch Baum <boruch_baum <at> gmx.com>

Date: Tue, 6 Dec 2016 02:21:02 UTC

Severity: minor

Tags: fixed, patch

Merged with 13439, 21717

Found in versions 24.4.50, 24.5

Fixed in version 26.1

Done: npostavs <at> users.sourceforge.net

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: npostavs <at> users.sourceforge.net
Cc: 25122 <at> debbugs.gnu.org, Boruch Baum <boruch_baum <at> gmx.com>, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: bug#25122: 24.5; function describe-variable hangs on large variables
Date: Sun, 12 Mar 2017 12:29:16 -0400
> Threads aren't truly parallel.  The user can't do anything while the
> thread is running.

I think the idea is to build the printout while the user is reading the
docstring (for example).  The loop that prints would have regular
`yield` calls so that as soon as not to block other operations.

> I wonder if we could just hook this into scrolling somehow?

We definitely could (at least, there's no fundamental reason why we
can't insert the text from a jit-lock thingy, although modifying the
buffer text from jit-lock might trigger some latent bugs).

> As mentioned in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21717#8,
> it breaks circularity.  Try describing this variable:

>     (defvar circular-list
>       (let ((l (number-sequence 1 100)))
>         (setcdr (last l) l)
>         l)
>       "A circular list that has problems with (mapc 'pp val).")

That's why I think the (mapc #'pp) trick is an interesting observation
(it points to a performance bug that should be easy to fix) but is not
a solution in itself.


        Stefan




This bug report was last modified 8 years and 27 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.