[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New pp
From: |
Stefan Monnier |
Subject: |
Re: New pp |
Date: |
Sat, 11 Mar 2017 11:40:10 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
>> Hmm... but if we use such a pseudo-stream here, doesn't it break all
>> calls to `princ' within other cl-print-object methods (i.e. forcing us
>> the override pretty much all existing cl-print-object methods with
>> a pprint-specific one)?
> It doesn't break anything, AFAIK, it just means that you don't get
> control over newlines vs spaces.
But from my reading of the code, we may sometimes end up calling `princ'
with a pp-state object, and I expect it won't know what to do with it.
> Oh wait, did you possibly miss a close paren? Might be clearer this way:
> (cl-defmethod cl-print-object (object (pprint-state (head :pprint)))
> (pp--scan (cl-prin1-to-string object)
> (cdr pprint-state))
> object)
No, the problem is when we run for example the
(cl-defmethod cl-print-object ((object vector) stream)
method (which AFAIK takes precedence over the
(cl-defmethod cl-print-object (object (pprint-state (head :pprint)))
method, so it will receive a pp-state stream and pass it on to `princ`).
Stefan
- New pp (was: bug#25295: 26.0.50; Represent eieio objects using object-print in backtraces and edebug), Stefan Monnier, 2017/03/11
- Re: New pp (was: bug#25295: 26.0.50; Represent eieio objects using object-print in backtraces and edebug), Noam Postavsky, 2017/03/11
- Re: New pp,
Stefan Monnier <=
- Re: New pp, Noam Postavsky, 2017/03/11
- Re: New pp, Stefan Monnier, 2017/03/11
- Re: New pp, Noam Postavsky, 2017/03/12
- Re: New pp, Stefan Monnier, 2017/03/12
- Re: New pp, Noam Postavsky, 2017/03/12