[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Elisp printer
From: |
Stefan Monnier |
Subject: |
Re: Elisp printer |
Date: |
Wed, 08 Mar 2017 04:43:44 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
> What I forgot to mention is that this would be coupled with a slot in
> the base class that holds the function to "actually call", and the
> underlying call to make-byte-code would install some bytecode that would
> simply funcall whatever is in this slot, maybe passing in the object as
> a first argument.
But that adds a funcall-indirection. Given the cost of funcalls in
Elisp, this is a fairly major price to pay. In that case, you're better
off representing your functions as symbols, so you store the actual
function in the function slot, and the data slots in the symbol-plist or
symbol-value slots.
> I'm not 100% sure this addresses what you're looking for; if not I'd
> appreciate it if you could explain more.
Yes, it would, except I don't like its performance.
> One thing I note is that this doesn't provide the "sugar" of being able
> to refer to slots using their bare name, you'd have to use accessors.
That sugar is just an attractive idea, not indispensable.
Stefan
- Elisp printer (was: bug#25295: Represent eieio objects using object-print in backtraces and edebug), Michael Heerdegen, 2017/03/02
- Re: Elisp printer, Tom Tromey, 2017/03/07
- Re: Elisp printer, Lars Brinkhoff, 2017/03/08
- Re: Elisp printer, Stefan Monnier, 2017/03/08
- Re: Elisp printer, Lars Brinkhoff, 2017/03/09
- User-defined record types, Lars Brinkhoff, 2017/03/14
- Re: User-defined record types, Lars Brinkhoff, 2017/03/14
- Message not available
- Message not available
- Re: User-defined record types, Lars Brinkhoff, 2017/03/14
- Re: User-defined record types, Lars Brinkhoff, 2017/03/14
- Re: User-defined record types, Stefan Monnier, 2017/03/14
- Re: User-defined record types, Lars Brinkhoff, 2017/03/14
- Re: User-defined record types, Stefan Monnier, 2017/03/15