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.