$ guile --version

guile (GNU Guile) 2.0.11

 

$ config.guess

x86_64-unknown-linux-gnu

 

$ rpm -qa | grep guile

compat-guile18-1.8.8-7.fc20.x86_64

guile-debuginfo-2.0.11-1.fc20.x86_64

guile-2.0.11-1.fc20.x86_64

guile-devel-2.0.11-1.fc20.x86_64

 

These steps illustrate the issue:

 

1. Download the attached file and save it as $HOME/guile/test.scm

Note: this is just an example file printing one line to indicate is has

successfully been called. Any other scm file will do to illustrate this bug.

 

2. Run these commands:

$ mkdir -p $HOME/guile/ccache

$ cd $HOME/guile/ccache

$ guild compile -o test.go ../test.scm

$ guild compile -o test.scm.go ../test.scm

 

This will generate two compiled versions of the test file, each with a different extension.

 

Now run these commands and observe what happens:

$ cd $HOME/guile

$ GUILE_LOAD_PATH=$HOME/guile \

GUILE_LOAD_COMPILED_PATH=$HOME/guile/ccache \

guile -c '(load-from-path "test")'

 

=> This command will use the file $HOME/guile/ccache/test.go. That is, no auto-compilation is triggered.

 

$ GUILE_LOAD_PATH=$HOME/guile \

GUILE_LOAD_COMPILED_PATH=$HOME/guile/ccache \

guile -c '(load-from-path "test.scm")'

 

=> This command will *not* use either of $HOME/guile/ccache/test.go or $HOME/guile/ccache/test.scm.go. Instead it will autocompile test.scm into <default-cache-dir>/test.scm.go and use that one.

 

So there is no way to have the second command use your self-compiled files.

 

From Andy Wingo's comments on irc, it is expected that the second case would have used the self-compiled $HOME/guile/ccache/test.scm.go. I'm fine with that although using $HOME/guile/ccache/test.go would have made more sense from an outsider's point of view. At least it should be possible to make load-from-path use a self-compiled .go file regardless of whether the argument ends in .scm or not.

 

If more information is needed, feel free to ask.

 

Regards,

 

Geert