[racket-dev] tool transition leads to fragile middle-ground

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Thu Feb 10 12:28:00 EST 2011

Is it possible you're misparsing the error message? The message (I
think!) says that the unit expects its import to be drscheme:tool^ but
that it is invoked with something else (drracket:tool^ in this case).

(Not that this defends anything about the head-scratching-ness, but
just to clarify what the message is trying to say.)


On Thu, Feb 10, 2011 at 11:14 AM, John Clements
<clements at brinckerhoff.org> wrote:
> Updating tools from drscheme->drrracket involves two steps:
> 1) changing the tool to refer to drracket, and
> 2) changing the info.rkt file to refer to drracket-tools rather than tools.
> Unfortunately, if you do #2 before #1, you get a real head-scratcher of an error message:
> define-unit-binding: unit argument expects an untagged import with signature drscheme:tool^, which this usage context does not supply
> The baffling thing about this is that drscheme:tool^ *is* the signature that this thing supplies.  I took a look at the tool infrastructure, and there's some regexp-rewriting stuff that scared me.  I conjecture that the (correct) error message is one that refers to the drracket:tool^ signature, but that it's getting rewritten into one that refers to drscheme:tool^.
> I'm not sure how many people are going to fall into this hole, but the error message here steers you in the wrong direction.
> John

Posted on the dev mailing list.