Subject: auto compile fails to recompile when included source files change

From: Arun Isaac <[email-masked]>
Date: Sun, 15 Jul 2018 07:49:58 +0530

Guile's auto compile fails to recompile when included source files
change.

For example, I have two source files -- foo.scm and bar.scm. foo.scm
includes bar.scm using `include'. When I run foo.scm for the first time,
it is auto compiled and run correctly. But, if I modify bar.scm and run
foo.scm again, foo.scm is not rebuilt and the old version is run.

Here is a concrete example of what I mean.

$ cat foo.scm
(include "bar.scm")

$ cat bar.scm
(display "old")
(newline)

$ guile -s foo.scm
;;; note: source file /tmp/test/foo.scm
;;;       newer than compiled /home/arun/.cache/guile/ccache/2.2-LE-8-3.A/tmp/test/foo.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/test/foo.scm
;;; compiled /home/arun/.cache/guile/ccache/2.2-LE-8-3.A/tmp/test/foo.scm.go
old

$ sed -i 's/old/new/' bar.scm

$ cat bar.scm
(display "new")
(newline)

$ guile -s foo.scm
old

In the last step, guile still printed "old" without recompiling. It
should have recompiled and printed "new".