The issue that triggered the note was when I macroexpanded a defstruct form. In that case the accessors were being defined in the wrong package. So it looks like I misdiagnosed the issue - I think it must be that *package* isn't bound. Since I was also evaluating these defstructs I was also confronted with the rather confusing(amusing only in retrospect) situation of no longer having defstruct accessors after I did so. I'll make the change.
What's your experience that makes you worry about binding these kinds of variables?
-Alan
On Jan 24, 2004, at 3:18 AM, Helmut Eller wrote:
Alan Ruttenberg alanralanr@comcast.net writes:
Looks like macroexpand and other uses of eval-string don't read in the right package.
eval-string and our macroexpand functions use from-string for reading. from-string reads in the *buffer-package*. Looks right to me.
Or are you suggesting that eval-string should bind *package* to *buffer-package* before evaluating ? That's probably a similar issue as with *load-pathname*. I think it is better not to mess around with user visible dynamic variables. But again, if you think otherwise, just change the code and let us see how that works.
Helmut.