|
From: | Jörg F . Wittenberger |
Subject: | Re: [Chicken-hackers] Chicken 4.13: New bug in syntax-rules |
Date: | 15 Jan 2018 15:07:40 +0100 |
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 testshould 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
[Prev in Thread] | Current Thread | [Next in Thread] |