Subject: bug#10693: guild compile --load-path value is not processed with scm_parse_path, GUILE_LOAD_PATH env variable value is parsed.

From: Ian Hulin <[email-masked]>
Date: Thu, 02 Feb 2012 00:46:34 +0000

Using this small test file load-path-test.scm using
meta/uninstalled-env bash with V2.0.5:

(eval-when (compile load eval)
(format #t "version: ~s\n" (version) )
(format #t "%load-path: ~s\n" %load-path)
(format #t "(access? (%search-load-path \"c++.scm\"): ~s\n"
  (%search-load-path "c++.scm")))

1. Loading the test file (no extra %load-path items)

ian@nanny-ogg ~/src/lilypond (T2026-1)>> guile -l load-path-test.scm
;;; note: source file /home/ian/src/lilypond/load-path-test.scm
;;;       newer than compiled
/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/cache/guile/ccache/2.0-LE-4-2.0/home/ian/src/lilypond/load-path-test.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/ian/src/lilypond/load-path-test.scm
version: "2.0.5"
%load-path:
("/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/module"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/guile-readline"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5")
(access? (%search-load-path "c++.scm"): #f
;;; compiled
/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/cache/guile/ccache/2.0-LE-4-2.0/home/ian/src/lilypond/load-path-test.scm.go
version: "2.0.5"
%load-path:
("/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/module"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/guile-readline"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5")
(access? (%search-load-path "c++.scm"): #f
# ^^^^^^^^^not found, not in %load-path - correct ^^^^^^^^^^^^
GNU Guile 2.0.5
Copyright (C) 1995-2012 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)> ,q
ian@nanny-ogg ~/src/lilypond (T2026-1)>>

2. Loading the test file (extra %load-path items specified with
GUILE_LOAD_PATH environment variable)
ian@nanny-ogg ~/src/lilypond (T2026-1)>> env
GUILE_LOAD_PATH="/home/ian/src/lilypond:/home/ian/src/lilypond/scm"
guile -l load-path-test.scmversion: "2.0.5"
%load-path:
("/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/guile-readline"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/module"
"/home/ian/src/lilypond" "/home/ian/src/lilypond/scm")
#^^^^^^^^ env variable contents parsed with scm_parse_path ^^^^^^^^^^^
(access? (%search-load-path "c++.scm"):
"/home/ian/src/lilypond/scm/c++.scm"
#^^^^^^^^^^^^^^^^ file found - correct ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GNU Guile 2.0.5
Copyright (C) 1995-2012 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)> ,q

3. Using guild-compile

ian@nanny-ogg ~/src/lilypond (T2026-1)>> guild compile
--load-path="/home/ian/src/lilypond:/home/ian/src/lilypond/scm"
--output=scm/out/load-path-test.go load-path-test.scm
version: "2.0.5"
%load-path: ("/home/ian/src/lilypond:/home/ian/src/lilypond/scm" "/home
# ^^^^^^^^^^^^^option string not parsed ^^^^^^^^^^^^^^^^^^^
/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/module"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5/guile-readline"
"/home/ian/Dropbox/Development/Guile-and-Scheme/guile-2.0.5")
(access? (%search-load-path "c++.scm"): #f
#^^^^^^^^^^^^^^ file not found in %load-path^^^^^^^^
wrote `scm/out/load-path-test.go'
ian@nanny-ogg ~/src/lilypond (T2026-1)>>

I get similar results using installed V2.0.5 on my laptop.

Cheers,

Ian Hulin