[r6rs-discuss] [Formal] Replacing the import's "for" syntax with
aghuloum at cs.indiana.edu
Fri Nov 17 15:07:31 EST 2006
On Nov 17, 2006, at 12:18 PM, Sam TH wrote:
> On Fri, 2006-11-17 at 10:01 -0500, Abdulaziz Ghuloum wrote:
>> On Nov 17, 2006, at 8:42 AM, Sam Tobin-Hochstadt wrote:
>>> This is incorrect. Visiting F is necessary to determine what
>>> provides. For example, if F is:
>> No. F is already expanded and compiled. I don't care about its
> This is not what you said.
Let me try to clarify further. The current draft requires some actions
to be taken (e.g. visiting, and invoking) depending on the "for" syntax
of the import forms. It also requires that these bindings are
available their respective levels (e.g. things imported for run are
only available at definitions rhss and inits, things imported for
expand are only available at macro definitions rhss, things imported
for (meta 2) are only available at rhs of macros that appear at rhs of
macros in libraries, etc.).
This is precisely the thing this formal comment is all about.
This is precisely what the example I'm giving is about: the visit and
invoke phases as specified by the current draft of the report does not
capture "when" I want the actions to be performed; and consequently is
doing way more work than needed.
In my proposed implicit phasing, transformers are evaluated exactly
when needed and not more. Required libraries are also invoked when
needed, not more. Therefore, no library is ever visited or invoked
needlessly; a thing that you cannot specify using the "for" syntax of
the current R5.91 libraries.
More information about the r6rs-discuss