This sounds really weird. Are you providing the full (setq) form to those macros, or the var and value separately? The fact that '(0 0) does not work but (list 0 0) does smells like there's some compiler macro triggering on (constantp value).


On Thu, Oct 3, 2013 at 8:48 AM, Didier Verna <didier@lrde.epita.fr> wrote:

  Hello,

yesterday, I fell on something extremely weird, or at least, which I
currently fail to understand. Basically, after a (defvar *var*), there
are times when (setq *var* '(0 0)) doesn't work (the previous value of
*var* remains in effect).

I cannot currently provide a minimal example because the situation
involves several levels of nested macro / function calls in code I
didn't write (*var* is solely mine though).

At first, I thought I had fallen on a compiler bug, but I get the same
behavior with at least 3 lisp implementations.

I ultimately found a workaround, consisting in using (list 0 0) instead
of '(0 0) in the assignment. I'm hoping this would be a clue to someone
here to get at least a direction for investigating...

Thanks.

--
Resistance is futile. You will be jazzimilated.

Lisp, Jazz, Aļkido: http://www.didierverna.info




--
Some gratuitous spam:

http://ripple.com Ripple, social credit system
http://common-lisp.net/project/armedbear ABCL, Common Lisp on the JVM
http://code.google.com/p/tapulli my Lisp open source projects
http://www.manydesigns.com/ ManyDesigns Portofino, open source model-driven Java web application framework