[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#25122: 24.5; function describe-variable hangs on large variables
From: |
npostavs |
Subject: |
bug#25122: 24.5; function describe-variable hangs on large variables |
Date: |
Sat, 11 Mar 2017 10:35:24 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> (cl-letf (((symbol-function 'pp)
>> (lambda (object &optional stream)
>> (let ((fn (lambda (ob &optional stream)
>> (princ (pp-to-string ob)
>> (or stream standard-output))
>> (terpri)))
>> (print-circle t))
>> (if (consp object)
>> (progn
>> (insert "\n(")
>> (mapc fn object)
>> (cl-letf (((point) (1- (point))))
>> (insert ")")))
>> (funcall fn object stream))))))
>
> Hmm... I wonder why this would be faster. In the past, the
> implementation of `print-circle` had a poor complexity, but we fixed
> that around Emacs-24, IIRC so it now uses a hash-table and should have
> O(n) complexity, which means that pp shouldn't be slower than (mapc
> #'pp).
I think it's because when we indent-sexp only on individual entries, we
don't parse as far back.
- bug#25122: 24.5; function describe-variable hangs on large variables, (continued)
- bug#25122: 24.5; function describe-variable hangs on large variables, npostavs, 2017/03/12
- bug#25122: 24.5; function describe-variable hangs on large variables, Drew Adams, 2017/03/12
- bug#25122: 24.5; function describe-variable hangs on large variables, Stefan Monnier, 2017/03/12
- bug#25122: 24.5; function describe-variable hangs on large variables, npostavs, 2017/03/12
- bug#25122: 24.5; function describe-variable hangs on large variables, npostavs, 2017/03/13
- bug#25122: 24.5; function describe-variable hangs on large variables, npostavs, 2017/03/13
- bug#25122: 24.5; function describe-variable hangs on large variables, npostavs, 2017/03/15
bug#25122: 24.5; function describe-variable hangs on large variables, Thierry Volpiatto, 2017/03/11
bug#25122: 24.5; function describe-variable hangs on large variables, Stefan Monnier, 2017/03/11