On Mar 29, 2016, at 6:05 PM, Wette, Matthew R (3441) <matthew.r.wette@jpl.nasa.gov> wrote:


On Mar 29, 2016, at 10:16 AM, rain1@openmailbox.org wrote:

I think this is a bug in guile relating to "include":

a.scm: (define a 1)
b.scm: (include "a.scm") (display a) (newline)

guile -l b.scm # prints 1

now update
a.scm: (define a 2)

guile -l b.scm # still prints 1

I have noticed this behavior and have learned to live with it.  Given the following from the Guile Reference manual (2.0.11), I think it is not considered a bug.

"On the other hand, include does have all the disadvantages of early binding: once the code with the include is compiled, no change to the included file is reflected in the future behavior of the including form.”

And I will add that an implementation that checked all includes would have to carry a tree of source dependencies for each binary .go file.  The alternative seems unattractive to me so I am happy to live with the current implementation. — Matt