On 01.05.2020 21:20, Vladimir Zhbanov wrote:
The first question: supposed that I already have guile installed
(together with its own srfi's) and have downloaded your
repository, how can I use your modules in my own code then?
The second one: how to make your code available for our code in
the spread of distributions our project builds on? Probably,
there is a way to uniformly integrate some parts of it
(e.g. srfi-64) to our project? Or should I require distribution
packagers working on packaging of our project to package your code
as a some new package, too? Not sure, how to achieve this and if
this is possible at all.
I believe the latest version of Guile supports R7RS libraries, so
theoretically all you need to do is to add the path to the repository to
the load-path of Guile, and you should be able to import (srfi 64).
I don't know if Guile's embedded SRFI-64 is also available as (srfi 64)
or only as (srfi srfi-64) but even if it's the former, I think adding a
directory to the load-path will override it. You can tell from the
standard output format whether you're running the standard
implementation or mine; my version is much more verbose by default.
Adding to the load path can be done by setting GUILE_LOAD_PATH, by using
the -L command-line switch, or by using the `add-to-load-path' form in code.
As for the second question:
There is sadly no standardized way to distribute R7RS libraries (e.g.
the standard doesn't define something like a "load path" and how to
influence it).
However, most of my project (including the SRFI-64 bit) is under the
permissive (non-copyleft) SRFI license, which I think is equivalent to
BSD-2. (This is because most of my project is R7RS library wrappers for
the existing reference implementations; I use the GPLv3 for new code I
write.) So you could simply copy the relevant files and bundle them in
your project along with other Scheme code.
Happy to help if you have further questions. (If I don't respond, which
would be because I don't check the mailing list often, feel free to
remind me by sending a mail directly to me without the list in CC so the
mail lands in my primary INBOX.)
- Taylan