chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] Chicken 4.13: New bug in syntax-rules


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 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]