[racket] language-info in #lang typed/racket files vs. (module _ typed/racket ...) files

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Nov 25 14:34:06 EST 2014

I'll adjust the docs to clarify that "language info" was a failed idea
that has been subsumed by submodules.

At Mon, 24 Nov 2014 17:32:12 -0500, Vincent St-Amour wrote:
> The contract profiler has to solve a similar problem, to distinguish
> typed and untyped modules in its module view.
> 
> ISTR attempting to use `module->language-info`, unsuccessfully. I forget
> what went wrong.
> 
> Instead, it checks for the presence of a `#%type-decl` submodule which,
> by convention, only appears in typed modules.
> 
> Vincent
> 
> 
> 
> 
> At Mon, 24 Nov 2014 15:59:14 -0500 (EST),
> Daniel Feltey wrote:
> > 
> > I'm trying to use `module->language-info` to determine if a module I am 
> requiring is written in typed/racket or racket, since if the module is 
> implemented in racket `module->language-info` will return #f, but a vector if 
> the module was typed. 
> > 
> > The problem I'm running into is that with files of the form:
> > 
> > ;; foo.rkt
> > (module foo typed/racket
> >   ...)
> > 
> > (module->language-info "foo.rkt" #t) returns #f even though I expect a 
> language-info that tells me the file is written in typed/racket.
> > 
> > Changing foo.rkt to the following:
> > 
> > ;; foo.rkt
> > #lang typed/racket
> >  ...
> > 
> > Then gives a non-false language-info vector when calling 
> (module->language-info "foo.rkt" #t).
> > 
> > Is this the expected behavior? I thought that the #lang version of the file 
> should be equivalent to the (module ...) version.
> > 
> > This seems to be addressed somewhat in 
> http://docs.racket-lang.org/guide/module-runtime-config.html but it doesn't 
> explain why (module ...) doesn't get language-info.
> > 
> > 
> > Thanks
> > Dan 
> > ____________________
> >   Racket Users list:
> >   http://lists.racket-lang.org/users
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.