all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: emacs-devel@gnu.org
Subject: Re: eieio, pretty printing, and edebug
Date: Wed, 29 Oct 2014 16:40:41 -0700	[thread overview]
Message-ID: <871tpqv406.fsf@ericabrahamsen.net> (raw)
In-Reply-To: 5450531F.1060601@siege-engine.com

Eric Ludlam <eric@siege-engine.com> writes:

> On 10/28/2014 12:44 PM, Stefan Monnier wrote:
>>> Line 895 in eieio.el, were it not commented out, would fix this by
>>> having edebug print using the object-print generic, not prin1. I eval'ed
>>> the line and tried it, and it seemed to work fine.
>>
>>> How come it's currently commented out? Can I open a bug for this?
>>
>> `defalias' is clearly not right, since it hijacks the function.  But if
>> we change it to advice-add, I think it'd be OK to enable this
>> edebug help.
>>
>> I think it would also be good to add hooks to the native printing system
>> so that such tweaks can be done more reliably.  Ideally, these same
>> hooks could be used for things like desktop and savehist to replace
>> markers or other "non-printable" objects with alternative output.
>
> Hi,
>
> Related to debugging EIEIO classes, the `data-debug.el' extension
> which is a part of Emacs includes a nice way to browse large data
> structures. In it, data-debug-eval-expression is something I've bound
> to M-: for myself.  It shows the short version of the eval'd
> expression when it is short, and goes into a browser type buffer when
> it is particularly large.

That's an interesting library, thanks! Using the eval expression on
gnus-registry-db still causes Emacs to run out of memory, though :)

I've opened bug 18897 for this. I'd be happy to provide a patch, but I
don't quite see how advice-add with :override would be all that
different from the defalias.

Right now, edebug expressions are printed with
`edebug-safe-prin1-to-string', which calls `edebug-prin1-to-string',
which is an alias for `prin1-to-string'. I'd certainly consider printing
objects to be a part of the "safety" routine -- would it be unreasonable
to make edebug aware of eieio, and move most of the logic of
`eieio-edebug-prin1-to-string' into `edebug-safe-prin1-to-string',
guarded by a `featurep'?

Eric




  reply	other threads:[~2014-10-29 23:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-27 18:22 eieio, pretty printing, and edebug Eric Abrahamsen
2014-10-28 16:44 ` Stefan Monnier
2014-10-29  2:38   ` Eric Ludlam
2014-10-29 23:40     ` Eric Abrahamsen [this message]
2014-10-30  1:57       ` Stefan Monnier
2014-10-30  2:36         ` Eric Abrahamsen
2014-10-30  2:34       ` Stefan Monnier
2014-10-30  2:50         ` Eric Abrahamsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871tpqv406.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.