[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #1083: cannot import procedure from one egg durin
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #1083: cannot import procedure from one egg during macro expansion in another egg. |
Date: |
Sat, 28 Dec 2013 02:54:36 -0000 |
#1083: cannot import procedure from one egg during macro expansion in another
egg.
--------------------------------+-------------------------------------------
Reporter: alanpost | Owner:
Type: defect | Status: new
Priority: not urgent at all | Milestone: someday
Component: compiler | Version: 4.8.x
Resolution: | Keywords:
--------------------------------+-------------------------------------------
Comment(by evhan):
I think the important difference in [http://paste.call-
cc.org/paste?id=cc09e7728cd576870bc967c179a26385d6e4d34c#a3 the working
paste] is actually just having {{{(import scheme)}}} before the {{{begin-
for-syntax}}} form. As long as that's true, any other permutation of the
imports works:
{{{
(import-for-syntax scheme)
(import-for-syntax chicken)
(import scheme)
(begin-for-syntax (use m0))
(import chicken)
;; ... whatever else ...
}}}
This is because the {{{scheme}}} namespace is the one that provides
{{{begin-for-syntax}}}, so without it the {{{begin-for-syntax}}} isn't
expanded and {{{m0}}} isn't loaded in {{{m1}}} at expansion time (making
{{{f0}}} a run-of-the-mill unbound variable). I'd call this a gotcha
rather than a bug, though maybe a warning for forms that are ''probably''
meant to be syntax like this (such as the {{{{import,require,use}[-for-
syntax]}}} family) would be helpful?
--
Ticket URL: <http://bugs.call-cc.org/ticket/1083#comment:3>
CHICKEN Scheme <http://www.call-with-current-continuation.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.