[racket-dev] Top level is hopeless or bug?

From: Asumu Takikawa (asumu at ccs.neu.edu)
Date: Mon Sep 17 23:48:06 EDT 2012

Hi all,

Is the following interaction the expected behavior here or is it a bug?

Welcome to Racket v5.3.0.24.
-> (module foo racket (define x 0) (provide x))
-> (require 'foo)
-> x
0
-> (module foo racket (module* bar #f (define x 1) (provide x)))
-> x
; readline-input:4:0: link: module mismatch;
;  possibly, bytecode file needs re-compile because dependencies changed
;   exporting module: 'foo
;   exporting phase level: 0
;   internal explanation: variable not provided (directly or indirectly)
;   in: x
; [,bt for context]

This is also interesting:

Welcome to Racket v5.3.0.24.
-> (module foo racket (define x 0) (provide x))
-> (require 'foo)
-> x
0
-> (module foo racket (define x 1) (provide x))
; define-values: assignment disallowed;
;  cannot re-define a constant
;   constant: x
;   in module: 'foo
; [,bt for context]
-> x
1

Cheers,
Asumu

Posted on the dev mailing list.