[racket] module order (was: Delimited continuations and parameters)
On May 16, 2012, at 9:17 AM, Matthew Flatt wrote:
> At Tue, 15 May 2012 10:49:20 -0400, Matthias Felleisen wrote:
>> ISSUE 1: I am disturbed that submodule b is evaluated before submodule a.
>
> I've long resisted defining the order in which `require'd modules are
> instantiated, but let's try it. I'll push a change so that
> instantiation of a module instantiates its `require'd modules in the
> order in which they are `require'd.
>
> (Surprising to me, the only thing that I saw break with this change was
> a test in the module test suite.)
>
> Keep in mind that relying on the instantiation order is still generally
> a bad idea. Also, `require'd modules are still instantiated before the
> module body expressions are evaluated (and I don't think we should try
> to change that), so running
>
> #lang racket
>
> (module one racket/base 1)
> (module three racket/base 3)
>
> (require 'one)
> 2
> (require 'three)
>
> prints 1, 3, 2, not 1, 2, 3.
I can live with that, very much so. Thanks -- Matthias