[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: #1832: Exported syntaxes are not fully hygienic
From: |
Chicken Trac |
Subject: |
Re: #1832: Exported syntaxes are not fully hygienic |
Date: |
Wed, 03 Apr 2024 07:53:14 -0000 |
#1832: Exported syntaxes are not fully hygienic
-------------------------------------+-------------------------------------
Reporter: Dominik Joe | Owner: (none)
Pantůček |
Type: defect | Status: new
Priority: major | Milestone: someday
Component: compiler | Version: 5.3.0
Resolution: | Keywords: syntax hygiene modules
Estimated difficulty: hard |
-------------------------------------+-------------------------------------
Comment (by sjamaan):
The problem is clearly strip-syntax - that should not be used. It's used
because we don't want to emit gensymed names, as those won't be resolvable
when loading the import library (that's a different compilation pass,
which doesn't have the same aliases database).
A potential solution might involve something akin to `canonicalize-
expression` on the syntax form, leaving any unresolved symbols as is (so
keeping the gensymed aliases in place). There'd still be a risk of capture
since those names won't be gensymed anymore, but it'd be less likely since
they'd still be obfuscated.
I think if this works, we won't need the eval for the `module-import-
forms` anymore either, as everything will be fully resolved.
Finally, I think we'd do well to simplify this example a bit. The code is
quite hard to follow.
--
Ticket URL: <https://bugs.call-cc.org/ticket/1832#comment:1>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.
- Re: #1832: Exported syntaxes are not fully hygienic,
Chicken Trac <=