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 <[email protected]> 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 <http://ripple-project.org> 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
