[gambit-list] As far as the renaming scheme goes, ...

Abdulaziz Ghuloum aghuloum at cs.indiana.edu
Wed Mar 19 16:48:58 EDT 2008


On Mar 19, 2008, at 3:10 PM, Bradley Lucier wrote:

> The core issue might be that even with (declare (block)) in Gambit,  
> when it sees
>
> (define foo 'wait)
>
> (letrec ((bar values))
>   (set! foo bar))
>
> it won't treat foo as immutable (because it's just been mutated ;-).

I understand.

> Maybe gambit needs a define-values form or something like it.

Or something like (init foo bar) which says that I'm defining this  
and swear not to change it ever.  Note that this only affects inter- 
module connections.  The variables within a module are still local,  
allowing copy propagation, constant folding, and inlining within a  
module.  This works nicely for separately-compiled modules.  At some  
point I will target whole-program expansion, which facilitates whole- 
program optimizations---just not today.

Aziz,,,



More information about the Gambit-list mailing list