From: Ernie Foster [MSAI]
Subject: Possible bug in GNU Common Lisp
Date: 
Message-ID: <53lsbm$ovd@hobbes.cc.uga.edu>
It is my understanding that EVAL should accept only one argument in any
implementation of Common Lisp.  Further, the Lisp interpreter should
complain bitterly about any attempt to use more than one argument with EVAL.  

However, I (inadvertently) used EVAL with multiple arguments while programming
in GNU Common Lisp.  Each of the arguments was evaluated (once) and then the
first argument was evaluated again (as one would expect) with EVAL returning
this value (also as one would expect).

This would seem to be an implementation error unless I am missing something.

Could anyone cast some light on this situation?

Thanks.

--
Ernest Foster        ·······@ai.uga.edu

From: Barry Margolin
Subject: Re: Possible bug in GNU Common Lisp
Date: 
Message-ID: <53mjnt$1kd@tools.bbnplanet.com>
In article <··········@hobbes.cc.uga.edu>,
Ernie Foster [MSAI] <·······@ai.uga.edu> wrote:
>It is my understanding that EVAL should accept only one argument in any
>implementation of Common Lisp.  Further, the Lisp interpreter should
>complain bitterly about any attempt to use more than one argument with EVAL.  

I don't think there's a requirement that the interpreter complain when you
supply the wrong number of arguments to a function.  Calling a function
with the wrong number of arguments results in undefined behavior, which
means that the implementation can do whatever it wants.  Many
implementation provide extensions in the form of additional optional
or keyword arguments to standard functions.  So long as these extensions
don't affect the behavior of valid programs they're OK.
-- 
Barry Margolin
BBN Planet, Cambridge, MA
······@bbnplanet.com -  Phone (617) 873-3126 - Fax (617) 873-6351
(BBN customers, please call (800) 632-7638 option 1 for support)
From: Jeff Barnett
Subject: Re: Possible bug in GNU Common Lisp
Date: 
Message-ID: <DzA2Jy.Bvp@gremlin.nrtc.northrop.com>
In article <··········@hobbes.cc.uga.edu>, ·······@ai.uga.edu (Ernie Foster [MSAI]) writes:
|> It is my understanding that EVAL should accept only one argument in any
|> implementation of Common Lisp.  Further, the Lisp interpreter should
|> complain bitterly about any attempt to use more than one argument with EVAL.  
|> 
|> However, I (inadvertently) used EVAL with multiple arguments while programming
|> in GNU Common Lisp.  Each of the arguments was evaluated (once) and then the
|> first argument was evaluated again (as one would expect) with EVAL returning
|> this value (also as one would expect).
|> 
|> This would seem to be an implementation error unless I am missing something.
|> 
|> Could anyone cast some light on this situation?

Eval general takes two arguments; the second one is an optional
environment so that macros and special forms that need to call
eval can make sure the evaluation is done in the proper context.

Jeff Barnett