Re: r6rs implementation? Lassi Kortela 26 Sep 2020 15:41 UTC

> I'm mostly finished refactoring all the r7rs srfi-204 libraries to use
> srfi-206, which just leaves Chez and Loko.
>
> I know I need to convert the define-library keywords to library keywords
> but I'm not sure how to handle the cond-expands.

r6rs doesn't have cond-expand.

I recommend writing a small Scheme script to translate the R7RS library
into a R6RS one. For example, here's one for SRFI 175:
<https://github.com/scheme-requests-for-implementation/srfi-175/blob/master/srfi/r7rs-to-r6rs.scm>.

Note that (library (srfi 123) ...) is not permitted in R6RS; the
conventional workaround is to use (library (srfi :123) ...). Guile needs
yet another library name but I forget how that goes; grep for guile in
the SRFI 175 repo.

> I also just found out in the process of moving test/ out of the srfi/
> directory that loko's include seems to work like guile's load - whether
> it works or not depends on what directory you're in when you import the
> library (as opposed to the others which all work relative to the file
> they are in).

You can add directories to the load path with environment variables. The
envars are implementation-specific for now.
<https://gitlab.com/akkuscm/akku/-/blob/master/.akku/bin/activate> shows
a list of them.