This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: performance



> Could you please explain why this is necessary.  Especially why is it 
> necessary for a module to have more than one environment?  A module
> can `use' or `open' one or more modules but why does it need more than
> one environment???

Mostly to support programming tools.

Suppose you're writing a groovy development environment for Scheme.
One facility I'd want is the ability to evaluate expressions in a
module's private, unexported environment.  So that's one environment
you care about.  Then, the module's exported bindings are clearly
another environment.  So modules have at least two environments they
care about.

I also think it's helpful to be able to distinguish local definitions
from imported definitions.  Allowing the tool author access to these
as separate environments seems graceful.

It is complex.  And you could argue that the tools should be hairy,
not the intrinsic data structures themselves.  But I think it will be
okay.