Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles $Revision: 1.7.0.8 $; site uiucuxc
Path: utzoo!linus!philabs!cmcl2!seismo!lll-crg!dual!qantel!ihnp4!inuxc!pur-ee!uiucdcs!uiucuxc!chandra
From: chandra@uiucuxc.Uiuc.ARPA
Newsgroups: net.lang.lisp
Subject: HELP: a bug in my lisp interpreter!
Message-ID: <16700002@uiucuxc>
Date: Thu, 8-Aug-85 10:32:00 EDT
Article-I.D.: uiucuxc.16700002
Posted: Thu Aug  8 10:32:00 1985
Date-Received: Tue, 13-Aug-85 01:28:46 EDT
Lines: 32
Nf-ID: #N:uiucuxc:16700002:000:730
Nf-From: uiucuxc.Uiuc.ARPA!chandra    Aug  8 09:32:00 1985


		HELP:	A strange Bug!

I got an exprimental lisp from a friend to play with. It has 
a strange bug.
Here is a session which illustrates the bug. Notice how
the variable foo gets changed after the eval is called.

==>   (defun test macro (args) `(cdr  (quote ,(cadr args))))
test

==>   (test   (a b c d))
  (b c d)

==>   (setq foo '(test   (a b c d)))
  (test   (a b c d))

==>   (eval foo)
  (b c d)

==> foo
  (cdr '(a b c d))

; why did the foo change? I tried the same thing in real MAClisp and Franz
; and the value of foo was retained and was not changed.

; Have you got any idea what went wrong?

Thank you 
Navin Chandra
(to reply: please post a response on the net.lang.lisp, mail never 
really seems to  reach me)