[r6rs-discuss] [Formal] Replacing the import's "for" syntax with implicit phasing

Abdulaziz Ghuloum 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 
>>> bindings
>>> F
>>> provides.  For example, if F is:
>>
>> No.  F is already expanded and compiled.  I don't care about its 
>> source.
>
> 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.

Aziz,,,




More information about the r6rs-discuss mailing list