[Top][All Lists]

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

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

From: Kim F. Storm
Subject: Re: emacs-lisp/cl.el (pushnew): void-variable x
Date: Thu, 21 Sep 2006 10:31:33 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Miles Bader <address@hidden> writes:

> address@hidden (Kim F. Storm) writes:
>> I have added new primitive memql, and modified pushnew and member* to use it.
> Er, well Richard said to wait until after the release, but ...

But it was later said that making the change fixed a different bug...

I probably misunderstood something?!?

> I think your change to pushnew is wrong -- it evaluates the value twice.

Ah, yes.

> A change to `pushnew' is not necessary anyway: for simple cases (a value
> with no side-effects), the change to `member*' is enough to do the job,
> so `pushnew' itself can just be reverted to what it was before Richard's
> change (just calling adjoin).

IIUC, the rationale for Richard's original change was to allow a
program using pushnew to be evalled in non-compiled form without
loading cl (because it needs the _function_ adjoin defined there).

> [Non-simple cases can easily be handled as well by making the `adjoin'
> compiler-macro bind the value when it's non-simple.]

It doesn't help in the non-compiled case.

Kim F. Storm <address@hidden> http://www.cua.dk

reply via email to

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