Re: R6RS and portability Lassi Kortela 25 Apr 2021 16:15 UTC

> What about is the meta data specify file -> library.
>
> (package
>     (author "Marc Nieper-Wißkirchen")
>     (license GPL-v3)
>     ..
>     (defines (sort bubblesort quicksort)
>              (copy deep shallow))
>     (libraries ((sort . ((bubblesort . "/lib/sort/bubblesort.scm")
>                          (quicksort . "/lib/sort/quicksort.scm")))
>                 (copy . ((deep . "/lib/copy/deep.scm")
>                          (shallow . "/lib/copy/shalow.scm")))))
>     (cond-expand
>       ((gambit)
>        (requires "gitlab.com/r7rs/box"))
>       ...))
>     ...)
>
> The mapping can look completely different, but it can just map the library
> definition into package files.

This is a good idea. However, most packages will name their files
according to a clear pattern, e.g.:

(foo) -> "foo.sld"
(bar) -> "bar.sld"
(baz) -> "baz.sld"
...

If we combine this with rewrite rules (* -> "*.sld") then two ideas once
again benefit from each other :)