[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#55464: (current-filename) is #f when guix pull'ing
From: |
Ludovic Courtès |
Subject: |
bug#55464: (current-filename) is #f when guix pull'ing |
Date: |
Sat, 21 May 2022 18:39:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hi,
Attila Lendvai <attila@lendvai.name> skribis:
> is my analysis is correct, namely that cwd is not (always?) changed at
> macroexpand time, and thus the implementation of INCLUDE is broken for
> relative paths? is this a bug to be fixed in guile? if so, shall i try to add
> a test case for this somewhere?
‘include’ does all its work at macro-expansion time. It’s documented
like so (info "(guile) Local Inclusion"):
-- Scheme Syntax: include file-name
Open FILE-NAME, at expansion-time, and read the Scheme forms that
it contains, splicing them into the location of the ‘include’,
within a ‘begin’.
If FILE-NAME is a relative path, it is searched for relative to the
path that contains the file that the ‘include’ form appears in.
And I believe that’s what it does—see ‘psyntax.scm’ for the actual code.
Now, if source location info were to be missing, it wouldn’t be able to
work for relative file names because it wouldn’t know the name of the
source file that contains the ‘include’ form.
HTH!
Ludo’.