[racket] module order (was: Delimited continuations and parameters)

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed May 16 09:38:44 EDT 2012

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


Posted on the users mailing list.