bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#27117: 26.0.50; Setting cl-print-compiled to `static' has problems i


From: npostavs
Subject: bug#27117: 26.0.50; Setting cl-print-compiled to `static' has problems if print-circle isn't set
Date: Sun, 28 May 2017 10:56:45 -0400

Perhap this is just expected behaviour when `print-circle' is nil, but
using 'prin1' instead of 'cl-prin1' doesn't have this problem.

The setup is a bit convoluted (adapted from #15789) because I don't
understand what circumstances are needed to produce a bytecode function
with loops.

Evaluate the following from 'emacs -Q':

    (require 'tmm)

    (defvar frame-with-circle nil)

    (defadvice tmm-add-prompt (before emacspeak pre act comp)
      "Speaks the list of completions we have available."
      (setq frame-with-circle (backtrace-frame 4)))

    (tmm-menubar) ; then C-g

    (let ((cl-print-compiled 'static))
      (cl-prin1 (nth 1 frame-with-circle) (current-buffer)))

Prints into the buffer

   #f(compiled-function () #<bytecode> [tmm-add-prompt
    (#f(compiled-function () #<bytecode> [tmm-add-prompt
    (#f(compiled-function () #<bytecode> [tmm-add-prompt
    (#f(compiled-function () #<bytecode> [tmm-add-prompt
    ...

and 

   Debugger entered--Lisp error: (error "Lisp nesting exceeds 
‘max-lisp-eval-depth’")

Replacing 'cl-prin1' with 'prin1' gives:

    #[0 "\302\303\301\242\"\210\300 \207" [tmm-add-prompt (#0) remove-hook 
minibuffer-setup-hook] 3]





reply via email to

[Prev in Thread] Current Thread [Next in Thread]