[racket-dev] RFC: "provide" via mutation
On Jun 21, 2010, at 4:10 PM, Sam Tobin-Hochstadt wrote:
> On Mon, Jun 21, 2010 at 4:06 PM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
>>
>> Stupid me. REQUIRING is done by DEMAND (as in NEED). So the strange thing is that you gain access to a module local identifier via the store. I still sense something is wrong with the store phases.
>
> No, that's not right. `require' is always executed, it's not driven
> by demand. That's why the `require' of 'm happens, even though
> there's no references to any exports of 'm. Perhaps what you mean is
> that only modules that are `require'd are invoked in any particular
> store.
Yes.
> The trick is that the original expansion of 'm is in a
> different store than 'n, which is why the `require' is needed. But the
> store is still the key.
The example suggests the need for a different kind of syntax stepper, one that shows the expanded modules and the process of requiring.