|
From: | Paul F. Dietz |
Subject: | [Gcl-devel] Re: Latest commit... |
Date: | Fri, 17 Sep 2004 07:18:15 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803 |
Camm Maguire wrote:
ANSI is of course the highest priority, but this work has reminded me of a previous discussion we had on passing outer declarations to inner scopes via the environment for use in macroexpansion. I'd like to address this, and would appreciate any advice. I.e. in (let ((i 0) (a (make-array 3 :element-type 'fixnum))) (declare (fixnum i) ((array fixnum) a)) (incf (aref a i))) incf rebinds the variables with gensyms and loses the type information.
Duane Rettig had a proposal for this, since (I think) incorporated in Allegro 7.0. It would be good to avoid gratuitous incompatibility. CMUCL/SBCL avoid the problem by propagating types after macro expansion and deciding how to implement aref and + after that. Paul
[Prev in Thread] | Current Thread | [Next in Thread] |