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 :)

Reply via email to