[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies d
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules) |
Date: |
Tue, 30 Oct 2012 19:30:06 -0000 |
#944: Macro-renamed definitions in begin bodies don't get seen by later forms
(but only in modules)
-----------------------+----------------------------------------------------
Reporter: sjamaan | Owner: sjamaan
Type: defect | Status: new
Priority: major | Milestone: 4.9.0
Component: expander | Version: 4.8.x
Resolution: | Keywords: expander, macros, hygiene, modules
-----------------------+----------------------------------------------------
Comment(by sjamaan):
The problem appears to be that the "define" macro calls {{{##sys#register-
export}}} with the macro-aliased name, so something like "req15" ends up
in the module-exist-list. Later, the evaluator sees {{{##core#set!}}} or
the variable reference and calls {{{##sys#alias-global-hook}}} on it,
which returns the original identifier which was macro-aliased. This can't
be found in the module-exist-list and that causes the module to be
unresolvable.
The bug is in the way the alias-global-hook is invoked; it shouldn't be
resolving the identifier to its bare form; this causes an unhygienic
lookup. I'm not sure how to fix it yet.
BTW: I think {{{##sys#register-export}}} is badly named; it doesn't
register an exported identifier; it merely adds it to the list of
identifiers known to be defined in the module (module-exist-list).
--
Ticket URL: <http://bugs.call-cc.org/ticket/944#comment:4>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
- [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/29
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/30
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/30
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/30
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules),
Chicken Trac <=
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/30
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/30
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/31
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/31
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/31
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/31
- Re: [Chicken-janitors] #944: Macro-renamed definitions in begin bodies don't get seen by later forms (but only in modules), Chicken Trac, 2012/10/31