[slime-devel] Re: Printing of function arglists

Helmut Eller e9626484 at stud3.tuwien.ac.at
Mon Feb 23 11:46:18 UTC 2004


Marco Baringer <mb at bese.it> writes:

> i think swank-pprint should bind print-pretty to t, no matter what the
> value of *swank-pprint-pretty* is (it's called pprint after all).

I agree, *PRINT-PRETTY* should always be T in swank-pprint.  But was
is the meaning of *swank-pprint-pretty* then?  Similar to
*sldb-pprint-frames*?

> i think it woud be quite fair to say that all slime output is
> controlled by one set of variables, if you want functions args to not
> be pprint'd it's reasonable to assume you wouldn't want anything else
> to be pprint'd either.

I think it is a nice feature when different commands can use different
printer settings, e.g., setting *PRINT-PRETTY* to nil for bulk output
(for efficiency) and to T for macro expansion commands sounds
perfectly reasonable to me. 

The come back to the arglist.  When *PRINT-PRETTY* is t the arglist
for

  (defun foo (&optional (function #'identity)) ...)

is printed as 

  (foo &optional #'#'identity)

Not pretty :-)  When *PRINT-PRETTY* is nil the result is 

  (foo &optional (function (function identity)))

Not perfect, but a bit better IMO.

Another issue are very long argument lists, e.g., for WRITE.  With
*PRINT-PRETTY* t the result is printed in multiple lines, which looks
nicer in Emacs 21.  

Could *print-pprint-dispatch* be used to suppress the conversion of
(function ...) --> #'... ?

Helmut.









More information about the slime-devel mailing list