[plt-scheme] #lang signature/contract

From: Carl Eastlund (carl.eastlund at gmail.com)
Date: Mon Nov 30 13:00:13 EST 2009

On Mon, Nov 30, 2009 at 12:51 PM, Synx <plt at synx.us.to> wrote:
>
> When I specify "#lang scheme/signature/contract" in my file, according
> to strace PLT goes looking for the language definition in
> "$COLLECTS/scheme/signature/contract/lang.ss". But of course $COLLECTS
> is just the collects directory for my scheme install. I'm not sure if
> just... sticking the language files there is right. How would you
> install a language just per-user? Should I use planet for that? I can't
> imagine one would go #lang (planet synx/something/lang).

You can use #lang with planet, e.g. "#lang planet
synx/something/lang".  But that's *not* going to look for
synx/something/lang.ss.  It's going to look for
synx/something/lang/reader.ss -- that should usually be something
written in the "syntax/module-reader" language.  See:

http://docs.plt-scheme.org/syntax/reader-helpers.html#(mod-path._syntax/module-reader)

If you want to set up a #lang with planet, see also (planet
cce/scheme/planet) and use "this-package-version-symbol" to create the
path to your language's implementation module.  Normal relative module
paths like "../lang.ss" don't work the "obvious" way with
syntax/module-reader.

--Carl


Posted on the users mailing list.