[Larceny-users] r6rs and err5rs libraries in custom location (larceny-5896)

William D Clinger will at ccs.neu.edu
Sun Jan 11 17:25:47 EST 2009

I wrote:
> True, but r6rsmode is not an ERR5RS/R6RS library,
> so neither the LARCENY_LIBPATH nor -path option
> are relevant.

That's not true; the paths taken from the -path
option or the LARCENY_LIBPATH environment variable
are used for both R5RS and ERR5RS/R6RS libraries,
and are set up before the call to require with
'r6rsmode as argument.

> Trying:
> /usr/local/libexec/larceny/0.98/larceny \
> -path /usr/local/lib/larceny/0.98 -err5rs
> I get the same error about "r6rsmode"
> missing.  But I can see the library in:
> /usr/local/lib/larceny/0.98/lib/R6RS/r6rsmode.sch
> and the FASL file is there, too.

The actual problem here is that r6rsmode.sch does
not lie within the /usr/local/lib/larceny/0.98
directory that was specified using the -path option;
it lies	within /usr/local/lib/larceny/0.98/lib/R6RS,
which is not part of the require path.

The relative paths specified in startup.sch are
relative to Larceny's root directory, and are
not relative to themselves or to any other paths
specified by the -path or LARCENY_LIBPATH.

What I would recommend is to keep Larceny's
normal directory hierarchy intact, and to put
that directory hierarchy wherever you like.
Then you can copy the larceny shell script to some
other place such as /usr/local/libexec/larceny/0.98/,
and edit that script so LARCENY_ROOT points to
Larceny's root directory.


More information about the Larceny-users mailing list