Subject: bug#21347: closed (Re: bug#21347: include-from-path and relative paths in load-path)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 24 Jun 2016 08:43:03 +0000

Your bug report

#21347: include-from-path and relative paths in load-path

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
21347: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21347
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#21347: include-from-path and relative paths in load-path
From: Andy Wingo <[email-masked]>
To: [email-masked] (Taylan Ulrich "Bayırlı/Kammer")
Cc: [email-masked]
Date: Fri, 24 Jun 2016 10:42:17 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On Tue 25 Aug 2015 21:42, [email-masked] (Taylan Ulrich "Bayırlı/Kammer") writes:

> When there are relative paths in the load-path, `include-from-path'
> seems to always interpret them relative to the directory of the file in
> which the `include-from-path' is called, instead of relative to the
> current working directory in effect when Guile is started.

Indeed, good catch.  Fixed in master.  I don't know if we can fix in
2.0.

Andy

Subject: include-from-path and relative paths in load-path
From: [email-masked] (Taylan Ulrich Bayırlı/Kammer)
To: [email-masked]
Date: Tue, 25 Aug 2015 21:42:54 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

When there are relative paths in the load-path, `include-from-path'
seems to always interpret them relative to the directory of the file in
which the `include-from-path' is called, instead of relative to the
current working directory in effect when Guile is started.

Transcript:

--- SNIP ---
taylan@T420:~$ unset GUILE_LOAD_COMPILED_PATH
taylan@T420:~$ unset GUILE_LOAD_PATH
taylan@T420:~$ echo '(display "foo\n")' > display.scm
taylan@T420:~$ mkdir test
taylan@T420:~$ echo '(include-from-path "display.scm")' > test/test.scm
taylan@T420:~$ guile -q -L .
GNU Guile 2.0.11
Copyright (C) 1995-2014 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (load "test/test.scm")
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/taylan/test/test.scm
;;; WARNING: compilation of /home/taylan/test/test.scm failed:
;;; ERROR: In procedure open-file: No such file or directory: "/home/taylan/test/./display.scm"
ERROR: In procedure open-file:
ERROR: In procedure open-file: No such file or directory: "/home/taylan/test/./display.scm"

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>
--- SNIP ---

Is this behavior desired?  I would say not, because when passing "-L ."
to guile, one expects the current directory to be added to the load
path, not some symbolic "current directory" whose true value changes
dynamically.  (Well, I could understand if there were an explicit
`chdir' call, though even then I think the "."  would ideally be
evaluated once at startup, if possible.)

Taylan