Andy Wingo <wi...@pobox.com> writes: > Thank you for the bug report, it was quite interesting.
Thank you for your clear explanation, and your solutions are simple to implement. > When compiling tryme, what happens is that `(load "dotimes.scm")' gets > compiled into a load at runtime -- but the dotimes.scm isn't loaded at > compile time. > .... > Now, does this indicate a bug in Guile, or at least an undesirable > behavior? That I do not know. You need to be careful with `load', that > if it provides syntactic definitions, you should probably load it at > compile time as well. This part of R5RS Scheme is somewhat > underspecified. Other schemes provide various load-for-syntax forms, or > loading modules for syntax forms. The problem came up when I was testing some of my old code against the git master branch. With an addition of: (use-syntax (ice-9 syncase)) to the main script the test case works fine with the 1.8 releases, so I was surprised by the change of behavior. I though it had worked with 1.9.1 but I probably didn't try it. It definitely did not work in the last two 1.9 snapshots I made, where guile-lib is also broken. The error message complained about "indx" but not "dotimes", and I jumped to the (wrong) conclusion that it was a problem during macro expansion, due to changes in the syntax expansion code. Thanks again. -- Barry Fishman