[plt-dev] Fwd: [plt-scheme] How to add a new language to DrScheme?

From: Eli Barzilay (eli at barzilay.org)
Date: Wed Feb 18 10:08:31 EST 2009

On Feb 18, Carl Eastlund wrote:
> On Feb 18, Robby Findler wrote:
> > We need the "I teach a course. How do I specialize drts to my
> > course?"  chapter in the guide, IMO.
> >
> > Robby
> On Wed, Feb 18, 2009 at 8:34 AM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
> >
> > Sounds like something we need a chapter on this stuff. Carl? Ryan?
> > -- Matthias
> After the ICFP deadline (March 2) I could work on an introduction to
> adding language levels to DrScheme -- presumably we want this to be
> the Guide for which "Plugins: Extending DrScheme" is the Reference.

(I have, BTW, some piece of text I wrote about a year ago on how to
write a language.)

> On Wed, Feb 18, 2009 at 9:46 AM, Eli Barzilay <eli at barzilay.org> wrote:
> > Actually, there's plenty of stuff like that in the handin client,
> > and together with the sudden popularity (very relatively speaking)
> > of the handin server maybe it makes sense to add the whole thing
> > to the standard distribution?
> What "stuff like that" are you referring to?

An easy way to make a collection with hooks like running some code
when it installs, an easy way to make a distributable .plt file (which
in many situations is much more convenient than a planet package), and
even an easy way to make your package check for updates and tell the
student if there is one.

> The description of how to customize and install the server/client
> packages?  And, given that they're of the "customize and install"
> persuasion, how do you plan to add it to the standard distribution?
> Would you have people go in and hack the sources we give them to get
> the server up and running?

Yes, of course -- you need to write some library that is to be
distributed no matter what.  It's easier to provide a template
collection that people customize than providing an explanation of how
to write a collection from scratch; and it's also easier on the
customizer's side.

> I don't think that really illustrates how to make a new language for
> DrScheme, nor a great way to distribute libraries.

Why not?

> When can we get an implementation of the handin stuff as units or
> something else parameterized so people can instantiate it without
> hacking the provided sources?

You can't -- even if it's put into units, you still need to distribute
*something* that will instantiate it.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!

Posted on the dev mailing list.