[racket-dev] my bf language no longer works; how to fix?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Apr 19 10:15:26 EDT 2012

At Wed, 18 Apr 2012 15:40:09 -0400, Danny Yoo wrote:
> On Wed, Apr 18, 2012 at 3:09 PM, Danny Yoo <dyoo at cs.wpi.edu> wrote:
> > This no longer appears to work in 5.3:
> >
> >    #lang planet dyoo/bf
> >    ,[.,]
> >
> > I'm not sure how to fix this.  Help?  I see the following error message:
> Ok, bug traced.  It looks like module-declared? is being used like
> this in the context of parsing a program in the bf PLaneT language:
>     (module-declared? '(submod (planet dyoo/bf) reader) #t)
> At this point, the standard module name resolver raises an error on
> behalf of the module-declared? function.

I've pushed a fix.

> From reading the documentation on module-declared?, I thought that it
> wasn't supposed to raise exceptions when given non-existant modules.
> But module-declared? raises an error when given other junk module
> names.  Is it supposed to do so? 
> For example:
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> > (module-declared? 'blah #f)
> (module-declared? 'blah #f)
> standard-module-name-resolver: collection not found: "blah" in any of:
> (#<path:/home/dyoo/.racket/5.2.901.1/collects>
> #<path:/home/dyoo/local/racket/collects>)

It's only supposed to refrain from complaining for submodule paths
where the root module doesn't exist. It will still complain for bad
collection names, bad planet packages, or non-submodule paths; I'll
make a note to clarify in the docs.

Posted on the dev mailing list.