From: Nigko Yerden <nigko.yerden@gmail.com>
To: "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de>
Cc: Attila Lendvai <attila@lendvai.name>, guix-devel@gnu.org
Subject: Re: Cookbook recipe from "The Repository as a Channel" section does not work for Guix with properly configured GUILE_LOAD_PATH
Date: Sat, 24 Aug 2024 19:47:59 +0500 [thread overview]
Message-ID: <00be7dd1-ca5f-48a2-b89f-acb9f0d9c69f@gmail.com> (raw)
In-Reply-To: <87ed6f5jhr.fsf@pelzflorian.de>
Hello Florian,
pelzflorian (Florian Pelz) wrote:
> While processing guile-package.scm,
>
> (search-path %load-path "guile-package.scm")
>
> returns an absolute path if and only if guile-package.scm is in the
> load-path, like when using it from a channel. Then, your diff makes it
> resolve symlinks.
That's right.
> If the configuration or package file is not in the load-path,
> guile-package.scm is returned, absolute-dirname’s other `if' branch
> calls `canonicalize-path' on all but the basename and directory symlinks
> already got resolved.
No, in this case 'search-path' returns #f. But if 'syntax-source' gives
absolute path, then 'current-source-directory' returns 'dirname' of this
path without calling 'absolute-dirname'.
> Indeed with weird load-paths
>
> GUILE_LOAD_PATH=${GUILE_LOAD_PATH}:/home/florian/src/home-config/configs guix home reconfigure gnu.scm
>
> ;;; ("/gnu/store/nanvziq36krgh330yjhwpphcyfz5dyzm-guix-module-union/share/guile/site/3.0")
>
> because syntax-source says filename is
> "gnu.scm".
>
> But not normally
>
> GUILE_LOAD_PATH=${GUILE_LOAD_PATH} guix home reconfigure gnu.scm
>
> ;;; ("/home/florian/src/home-config/configs")
>
> because syntax-source says filename is
> "/home/florian/src/home-config/configs/gnu.scm".
This observation shows that 'current-source-directory' is really bad because
'syntax-source' is bad. Sometimes 'syntax-source' gives an absolute path, and
sometimes a relative one, and I don't understand under what conditions.
And '(module-filename (current-module))' does not seem to be better.
In my experiments it gives exactly the same filename as 'syntax-source'.
But this bad behavior of 'current-source-directory' is unrelated to symlinks and
'if' condition in 'absolute-dirname'. All Guile load paths I have seen before are
absolute paths, and the second branch of 'if' is not executed for them.
Maybe we should leave 'absolute-dirname' alone, as well as 'current-source-directory',
and consider 'local-file' more closely.
Regards,
Nigko
next prev parent reply other threads:[~2024-08-24 14:48 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 12:45 Cookbook recipe from "The Repository as a Channel" section does not work for Guix with properly configured GUILE_LOAD_PATH Nigko Yerden
2024-08-13 14:38 ` pelzflorian (Florian Pelz)
2024-08-13 15:06 ` Nigko Yerden
2024-08-13 17:25 ` pelzflorian (Florian Pelz)
2024-08-13 17:49 ` Nigko Yerden
2024-08-14 15:35 ` pelzflorian (Florian Pelz)
2024-08-14 16:40 ` pelzflorian (Florian Pelz)
2024-08-14 19:29 ` pelzflorian (Florian Pelz)
2024-08-15 4:11 ` Nigko Yerden
2024-08-18 21:33 ` pelzflorian (Florian Pelz)
2024-08-19 7:43 ` Nigko Yerden
2024-08-19 19:28 ` pelzflorian (Florian Pelz)
2024-08-20 7:18 ` Nigko Yerden
2024-08-20 16:49 ` pelzflorian (Florian Pelz)
2024-08-22 4:45 ` pelzflorian (Florian Pelz)
2024-08-22 9:53 ` Nigko Yerden
2024-08-22 13:22 ` Nigko Yerden
2024-08-22 16:00 ` pelzflorian (Florian Pelz)
2024-08-23 5:07 ` Nigko Yerden
2024-08-23 15:47 ` pelzflorian (Florian Pelz)
2024-08-23 16:25 ` pelzflorian (Florian Pelz)
2024-08-24 14:47 ` Nigko Yerden [this message]
2024-08-26 8:50 ` pelzflorian (Florian Pelz)
2024-08-28 12:36 ` Nigko Yerden
2024-08-28 16:40 ` pelzflorian (Florian Pelz)
2024-08-29 6:17 ` Nigko Yerden
2024-08-19 9:30 ` Nigko Yerden
2024-08-19 16:17 ` Nigko Yerden
2024-08-14 14:00 ` Attila Lendvai
2024-08-15 16:34 ` Nigko Yerden
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00be7dd1-ca5f-48a2-b89f-acb9f0d9c69f@gmail.com \
--to=nigko.yerden@gmail.com \
--cc=attila@lendvai.name \
--cc=guix-devel@gnu.org \
--cc=pelzflorian@pelzflorian.de \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.