[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
New pp (was: bug#25295: 26.0.50; Represent eieio objects using object-pr
From: |
Stefan Monnier |
Subject: |
New pp (was: bug#25295: 26.0.50; Represent eieio objects using object-print in backtraces and edebug) |
Date: |
Sat, 11 Mar 2017 10:38:47 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
> I posted an initial draft at
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25122#21, I'm not seeing
> as much speedup as I'd hoped, though I haven't tried optimizing it yet.
Thanks. I answered there about the performance aspect.
> +(defun pp-prin1 (object &optional stream)
> + (let ((cl-print-readably nil)
> + (stream (make-pp-state (or stream standard-output))))
> + (pp--scan :open-block stream)
> + (prog1 (cl-prin1 object (cons :pprint stream))
^^^^^^^^^^^^^^^^^^^^^
Why not just pass `stream' since it's a struct and we can hence dispatch
based on its type?
> +;; fallback to standard `cl-print-object'.
> +(cl-defmethod cl-print-object (object (stream (head :pprint)))
> + (pp--scan (cl-prin1-to-string object) (cdr stream))
> + object)
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)?
Stefan
- New pp (was: bug#25295: 26.0.50; Represent eieio objects using object-print in backtraces and edebug),
Stefan Monnier <=
- 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, 2017/03/11
- 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