Subject: 26.0; NEWS: "Values in call stack frames are now displayed using `cl-prin1'"

From: Drew Adams <[email-masked]>
Date: Mon, 30 Oct 2017 15:18:57 -0700 (PDT)

[Note: I could not send this from the Emacs 26 pretest, because of bug #29074.  I'm just mailing this in.]

1. The NEWS entry says only this (with British spelling, BTW):

 The old behaviour of using 'prin1' can be restored by customizing the
 new option 'debugger-print-function'.

That doesn't tell a user how to restore the old behavior.  Please tell
us what print function to use to get the old behavior.

The defcustom for `debugger-print-function' should offer a set of reasonable choices, plus let you specify an arbitrary function.  Those choices should include cl-prin1 and whatever the previously used print function was (what was it? clearly it was not `print').

2. Also, the function used is apparently really `cl-prin1', and there is NO doc for that function.  C-h f cl-prin1 shows this:

  cl-prin1 is an autoloaded Lisp closure in `cl-print.el'.

  (cl-prin1 OBJECT &optional STREAM)

  Not documented.

That's another bug, but please fix it as part of this report.

3. Also, is the backtrace really printed using prin1 or cl-prin1? I have print-length and print-level set to nil and print-circle set to t or nil (neither helps).  I turn off truncated lines.  And yet for a return value that is a list of 57 elements in *Backtrace* I cannot move to the end of the list - the displayed list is truncated after a bit.

That's useless.  Users should be able to get a full *Backtrace*, being able to move over full Lisp objects such as lists.

I don't see this problem in previous Emacs releases.

This "feature" (of cl-prin1 or whatever) has apparently not been road-tested.  Please revert it as the default behavior.  Let users opt in to use it, until you get it to work.  It's generally a bad idea to change the default behavior to some new, untested behavior.  Let users try it out for a few releases, before deciding to make it the new default behavior.