Subject: Re: bug#19564: 24.4; eieio backward compatibility

From: Thierry Volpiatto <[email-masked]>
Date: Wed, 14 Jan 2015 07:06:34 +0100

Stefan Monnier <[email-masked]> writes:

>> The confusion comes that slot-value as documented should use the quoted
>> slot (i.e 'slot) and oref should use the keyword slot (i.e :slot).
>
> I don't think so:
>
>    (defmacro oref (obj slot)
>      `(eieio-oref ,obj (quote ,slot)))
>    (defalias 'slot-value 'eieio-oref)
>
> They both accept the slot name (except that one needs it quoted and the
> other doesn't) and the initarg name (as an alternative name for the
> slot).

Yes right, I have ckecked too, thanks.

>> Note that it seems the documentation should be updated as slot-value
>> support both form for slot ('slot and :slot), and IIRC oref also support
>> both forms, but correct me if I am wrong, I am not sure about this one,
>> I will check.
>
> Could be, indeed.  I haven't looked enough at EIEIO's own documentation.

Probably it should be clarified:

(oref A :slot)
=> OK.
(oref A slot)
=> OK
(oref A 'slot)
=> Error: (wrong-type-argument symbolp (quote slot))
(slot-value A :slot)
=> OK
(slot-value A slot)
=> Symbol's value as variable is void: slot
(slot-value A 'slot)
=> OK

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997