emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: emacs-lisp/cl.el (pushnew): void-variable x


From: Stefan Monnier
Subject: Re: emacs-lisp/cl.el (pushnew): void-variable x
Date: Tue, 12 Sep 2006 09:22:49 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

>> Honestly, I think using `add-to-list' here makes no sense.
>> Since we have the variable as a symbol and we're macro-expanding, we can
>> just use `(unless (member ,element ,var) (setq ,var (cons ,element ,var)))
>> That'll be a lot more efficient than going through a function call to
>> add-to-list, using an aux-var accessed via symbol-value and set and checking
>> `append' arg etc...

> Yup, and it even looks like cl-macs.el has the machinery in place to do
> that, it's just very hard to follow (lots of levels of compiler-macros).

> However I think it normally doesn't "take" because the default
> comparison function for pushnew is `eql', not eq, so there's no non-cl
> way to express the result; that's why it uses member*.

[...]

> The following patche seems to implement this:

Looks good to me,


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]