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

Bradley Lucier lucier at math.purdue.edu
Wed Mar 19 18:32:40 EDT 2008


On Mar 19, 2008, at 5:05 PM, Abdulaziz Ghuloum wrote:


>
>
> On Mar 19, 2008, at 3:10 PM, Bradley Lucier wrote:
>
>
>> (define foo 'wait)
>>
>> (letrec ((bar values))
>>   (set! foo bar))
>>
>
> I want to add that I know nothing about what (block) entails in  
> gambit or what forms gambit recognizes as good code.
>

(block) tells the compiler that any global defined but not set! in  
that file will never be set! in a different file.


> The system is flexible enough though.  You can easily arrange for  
> the generated code to look like:
>
> (define local* expr*) ...
> (define global* local*) ...
> expr* ...
>

(block) would recognize global* as immutable code, yes.


>
> instead of:
>
> (define global* 'wait) ...
> (letrec* ([local* expr*] ...)
>   (set! global* local*) ...
>   expr* ...)
>
> if that yields better results.
>



More information about the Gambit-list mailing list