[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