Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!apple!agate!ucbvax!docs.uu.se!Bjorn.Victor From: Bjorn.Victor@docs.uu.se (Bjorn Victor) Newsgroups: comp.sys.ti.explorer Subject: Re: TI lisp and "IF" Message-ID: <9104091238.AA00365@mizar.DoCS.UU.SE> Date: 9 Apr 91 12:38:43 GMT References: <2880116725-2159710@KSL-Mac-62> Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 28 >Sender: acuff@ksl-mac-62.stanford.edu >Date: Mon, 8 Apr 91 09:25:25 PDT >Reply-To: acuff@sumex-aim.stanford.edu >From: Richard Acuff > >> Used to be, when I wrote a conditional using IF with a macro as the >> predicate, everything worked just fine. I just installed the latest >> version of TI lisp on my MX (lisp version 6.1) and now I get a break with >> the message "Attempt to evaluate [my macro] as a function". ANyone know if >> this is the correct behavior for IF and/or why this is now different? > >I think I'm using the latest versions and I don't see this problem. Do you >have demonstration code? > > -- Rich My guess is that Tom Bonura is using the macro before its definition. This is a classic thing, and Tom should move the macro definition to a place before its use, or change his DEFSYSTEM so the file using the macro depends (at both compile- and load-time) on the file defining it. I still don't understand why compilers can't be two-pass, to handle these things. -- Bjorn Victor Bjorn.Victor@DoCS.UU.SE Dept. of Computer Systems tel: +46 18183169; fax: +46 18550225 Uppsala University, Sweden "I'd rather hack a Lisp Machine!"