[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SRFI-64: test exception symbol

From: Taylan Kammer
Subject: Re: SRFI-64: test exception symbol
Date: Sat, 2 May 2020 21:38:47 +0200
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]