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

Bradley Lucier lucier at math.purdue.edu
Tue Mar 18 14:10:23 EDT 2008


On Mar 18, 2008, at 1:50 PM, Bradley Lucier wrote:

> I ran into a similar problem recently when hacking on the Meroon  
> object system (which uses define-macro): Macros needed to be  
> written so that (a) expressions passed as arguments are evaluated  
> in the environment where the macro appears, e.g.,
>
> (declare (safe) (not block) (not standard-bindings)(not extended- 
> bindings)),
>
> while (b) the code inserted by the macro is compiled in the  
> environment in place when the Meroon macro is defined, e.g.,
>
> (declare (not safe)(block)(standard-bindings)(extended-bindings) 
> (fixnum)).
>
> So can these module systems extend the idea of "hygiene" to include  
> Gambit's compilation environment?  (Aziz and Andre, are you  
> listening?)

I suppose that, given R6RS semantics, about the only compilation  
"environment" options that need to be considered are code generation  
options:

([not] safe)
([not] inline)
([not] inline-primitives primitive…)
(inlining-limit n)
([not] lambda-lift)
([not] constant-fold)
([not] run-time-bindings var…)
(mostly-number-type primitive…)

I suppose that

(standard-bindings)
(extended-bindings)
(block)

are implied by R6RS semantics, no?

Brad


More information about the Gambit-list mailing list