[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dg%acorn@oak.lcs.mit.edu: Re: &REST]



     
     Date: Sun, 17 May 87 17:56 est
     From: dg%acorn@oak.lcs.mit.edu
     Subject: Re: &REST
     To:   Acuff@SUMEX-AIM.STANFORD.EDU
     Cc:   common-lisp@SAIL.STANFORD.EDU
     
         Date: Fri, 15 May 87 14:01:46 PDT
         From: Richard Acuff <Acuff@SUMEX-AIM.STANFORD.EDU>
         
            For the record, in Release 3, TI has attempted, with apparent
         success, to remove the restrictions on using &REST lists outside of
         the dynamic scope of the parameter.  (While increasing the performance
         of the system, to boot.)
         
         	-- Rich
         -------
     
     Are there exactly 0 restrictions now?
     
     Does this mean that removing the restrictions actually improved the
     performance of the system, or was that just coincidental?
     
     -dg
     

There are 0 restrictions on using &REST lists outside of the dynamic
scope of the parameter. The way we do it is the following:
We have a new datatype for &rest args (A list on the stack). When
somebody tries to store a pointer of type stack-list, the microcode
triggers a copy. The copy process is recursive if the &rest args are
nested. The copy is done is such a way that it preserves EQness. Since
the data type check is hardware assisted, it is done without performance
penalty.

The performance improvement is coincidental.

Patrick.