[e-lang] StaticScope's hasMetaStateExpr definition

Kevin Reid kpreid at mac.com
Sat Jul 22 23:03:00 EDT 2006


On Jul 22, 2006, at 22:32, Mark S. Miller wrote:
> Kevin Reid wrote:
>> Also, what exactly is 'Expanded-E'?
>
> Expanded-E is the expansion of E performed by the e`...` quasi- 
> parser. This
> expansion does indeed need to be context-independent, as otherwise  
> one could
> not compose quasi-literal program fragments. Expanded-E gets  
> further expanded
> to Kernel-E prior to evaluation. This latter expansion could depend on
> context, as suggested above. OTOH, if this only remaining case  
> requiring us to
> distinguish Expanded-E from Kernel-E, then it would probably be  
> better to
> collapse the Expanded-E vs Kernel-E distinction, and keep the  
> MetaStateExpr in
> Kernel-E.
>
> Currently, circular defines are expanded by the e`...` quasi- 
> parser, but the
> determination of whether we have a cycle is exactly the sort of  
> context
> dependency that creates quasi-literal composition problems. It is  
> plausible to
> me that this may also move to the Expanded-E to Kernel-E expansion,  
> in order
> to aid quasi-literal composition. What other cases are there?

Um. I seem to remember having discussed this already (not on the  
mailing list) after I asked the above question.

My own proposal was that e`...` should return *unexpanded* (full E)  
node trees, thus allowing composition to happen before any expansion.

If we do this, then only E and Kernel-E need exist.

-- 
Kevin Reid                            <http://homepage.mac.com/kpreid/>




More information about the e-lang mailing list