Subject: Re: Implementation limits when accessing circular lists
From: rpw3@rpw3.org (Rob Warnock)
Date: Mon, 30 Jun 2003 21:25:49 -0500
Newsgroups: comp.lang.lisp
Message-ID: <J8mcnYgwmo6wbJ2iXTWc-w@speakeasy.net>
Christophe Rhodes  <csr21@cam.ac.uk> wrote:
+---------------
| rpw3@rpw3.org (Rob Warnock) writes:
| >     cmu> (time (nth (1- most-positive-fixnum) '#1=(t . #1#)))
| >     ;   0.0 seconds of real time
| > Now that's *really* weird! Is CMUCL's *compiler* somehow detecting
| > that the circularity implies a constant result?
| 
| No, the circularity has nothing to do with it.  It's detecting that
| both (1- most-positive-fixnum) and (quote <anything>) are constants,
| and CL:NTH is a known function with defined semantics, so it's
| constant-folding the call at compile-time.
+---------------

*DOH!!*

Thanks, that also explains the long silence (much longer on the
slower machine!) that I saw between the "Compiling LAMBDA NIL:"
and "Compiling Top-Level Form:" messages...  ;-}  ;-}


-Rob

-----
Rob Warnock, PP-ASEL-IA         <rpw3@rpw3.org>
627 26th Avenue                 <URL:http://rpw3.org/>
San Mateo, CA 94403             (650)572-2607