From: Timothy Sample <samplet@ngyro.com>
To: Daphne Preston-Kendal <dpk@nonceword.org>
Cc: 66046@debbugs.gnu.org
Subject: bug#66046: Relative includes in R7RS define-library seem broken
Date: Mon, 06 Nov 2023 12:31:28 -0600 [thread overview]
Message-ID: <87cywmzqbj.fsf@ngyro.com> (raw)
In-Reply-To: <6C8500AC-6352-4849-A2C9-2DFEB34F21D5@nonceword.org> (Daphne Preston-Kendal's message of "Sun, 17 Sep 2023 10:22:20 +0200")
Hi Daphne,
Daphne Preston-Kendal <dpk@nonceword.org> writes:
> A standard layout for R7RS libraries is to have an .sld file
> containing the library import and export declarations with a parallel
> .scm file with the same name in the same directory, which the .sld
> file (include ...)s.
>
> [...]
>
> Guile supports looking for .sld files before .scm files if started in
> --r7rs mode. However, in this case, it will not find the .scm file if
> it’s included from the .sld file.
This is currently causing me problems, too, so I will look into writing
and submitting a patch.
We are technically following R7RS, which says the lookup strategy is
“implementation-specific”. However, it goes on to say: “implementations
are encouraged to search for files in the directory which contains the
including file [...].” This is perfectly reasonable, and like you say,
part of an established pattern for portable code.
> Changing the path in the include declaration to be absolute fixes the
> problem, but then it no longer works on other people’s machines.
FWIW, I’ve settled on this (annoying) pattern for now:
(cond-expand
(guile
(import (only (guile) include-from-path))
(begin (include-from-path "relative/from/load/path/foo.scm")))
(else
(include "foo.scm")))
I wouldn’t bother with it if I weren’t committed to Guile, though!
-- Tim
next prev parent reply other threads:[~2023-11-06 18:31 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-17 8:22 bug#66046: Relative includes in R7RS define-library seem broken Daphne Preston-Kendal
2023-11-06 18:31 ` Timothy Sample [this message]
2023-11-06 18:48 ` Maxim Cournoyer
2023-11-06 19:57 ` Maxim Cournoyer
2023-11-07 4:42 ` Maxim Cournoyer
2023-11-10 3:36 ` bug#66046: [PATCH 1/2] tests: Add new compile-file tests Maxim Cournoyer
2023-11-10 3:36 ` bug#66046: [PATCH 2/2] ice-9: Fix 'include' when used in compilation contexts Maxim Cournoyer
2023-11-11 11:58 ` bug#66046: Relative includes in R7RS define-library seem broken Amirouche
2023-11-14 13:57 ` Maxim Cournoyer
2023-11-18 22:56 ` Maxim Cournoyer
2023-11-22 16:11 ` bug#66046: [PATCH v2 1/3] libguile/fports.c: Remove extraneous include Maxim Cournoyer
2023-11-22 16:11 ` bug#66046: [PATCH v2 2/3] tests: Add new compile-file tests Maxim Cournoyer
2023-11-22 16:11 ` bug#66046: [PATCH v2 3/3] ice-9: Fix 'include' when used in compilation contexts Maxim Cournoyer
2023-11-22 16:17 ` bug#66046: [PATCH v3 1/3] libguile/fports.c: Remove extraneous include Maxim Cournoyer
2023-11-22 16:17 ` bug#66046: [PATCH v3 2/3] tests: Add new compile-file tests Maxim Cournoyer
2023-11-22 16:17 ` bug#66046: [PATCH v3 3/3] ice-9: Fix 'include' when used in compilation contexts Maxim Cournoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87cywmzqbj.fsf@ngyro.com \
--to=samplet@ngyro.com \
--cc=66046@debbugs.gnu.org \
--cc=dpk@nonceword.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).