> 2.2 Bindings
> 
> When macro expansion encounters a binding form, it
> 
> * creates a new scope;
> 
> * adds the scope to every identifier in binding position, as well as to
> the region where the bindings apply; and
> 
> * extends a global table that maps a ⟨symbol, scope set⟩ pair to a
> representation of a binding.

Here it seems like the "<symbol, scope set> pair" itself would make a
fine "representation of a binding". Then the global binding table would
just be a global binding set, and the <symbol, scope set> pair itself
would key the compile time environment.

> Each local binding is represented by a unique, opaque value (e.g., a
> gensym).A binding to a module export is represented by the module
> name paired with a serializable identifier for the definition within
> the module.

Are module exports the reason for a global binding table instead of a
global binding set? Is it mainly for flexibility/convenience of adding
other data to the binding's representation rather than storing such
things in aux. tables? Or am I missing something (very likely!)?

-- 
Anthony Carrico

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/55E139AB.3010009%40memebeam.org.
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to