[racket] examples of hooking a #lang into DrRacket?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Jul 22 09:55:49 EDT 2014

Okay, I've pushed a change that addresses most of the concerns raised
in this thread.

And just to clarify, there should have been no difference between an
always-default-returning get-info procedure and just not defining one.
The push should hopefully fix that.

There are two issues that remain, I believe:

1) the problem you were seeing where DrRacket didn't show any buttons
is probably an unrelated bug. There is, I believe, a race-condition in
this code; I don't understand what makes it happen and haven't had
luck fixing it (I've fixed a few variations on this bug and thought
I'd found them all, but apparently not!).) DrRacket should always have
the Run and Stop buttons.

2)

On Mon, Jul 21, 2014 at 1:23 PM, Matthew Butterick <mb at mbtype.com> wrote:
> + You say that DrRacket doesn't cache any #lang information at startup. For
> whatever reason, I continue to find that relaunching makes a difference
> (i.e., if the #lang doesn't provide get-info at the beginning of a DrRacket
> session, adding one *during* the session will not fix the error; it will be
> noticed only on relaunch). I can't account for this behavior, but I can
> reliably reproduce it. This issue tripped me up, however, as it made it seem
> that get-info was not making a difference, so I eliminated it as the
> solution too soon.

Oh, of course, the namespace caches the module in the usual way.
DrRacket should probably manage this more explicitly (currently it
just loads these modules in without much ado) and possibly even
implement an explicit policy for evicting this cache to avoid having
to restart DrRacket when developing a new language. I'll leave that
for another day, tho.

Robby

Posted on the users mailing list.