Sorry for the need to follow up:
The file attached to my report is not a proper tar.gz: somehow I managed to
run gzip twice on the tar.
Expanding my comments I'd like to point out that the issue is rather
confusing violation of hygiene:
The symbol `current-place` is used (internally) in the macro defined and
exported from the first module (fume.scm) and used in the third (barm.scm).
It does not matter whether or not an unrelated (and unused) binding for
`current-place` is established in the `barm` module.
However if the unused binding is imported into `barm` from the second
module, than things change. The syntax-rules macro from the fist module
will use this foreign binding to shadow the internal binding. Now really
hygienic anymore.
Cheers
/Jörg
On Jan 13 2018, Jörg F. Wittenberger wrote:
Hi all,
I just boiled down an issue with syntax-rules processing new in chicken
4.13.
It is a bit involved. I needed three modules to demonstrate it.
Attached a tarball.
$ make test
should succeed with Chicken 4.12 but fail to compile with Chicken 4.13 due
to $$ unbound.
Now find barm.scm and change two things: Comment out the line "(import
baz)" near the top and remove the comment to make the "(define
current-place ..." effective.
At this point "make test" should succeed with Chicken 4.13 too.
Best
/Jörg
_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers