[e-lang] Thought: DeepFrozen too restrictive for guards?

Mark S. Miller markm at cs.jhu.edu
Thu Apr 27 23:11:54 EDT 2006


Chip Morningstar wrote:
> I think syntax is the least of your problems here.  What you are talking about
> is adding language support for YET ANOTHER subtle distinction that will require
> explanation (frequently to an audience that is not yet prepared to even be
> aware of the questions that motivate this feature, let alone the answers).  And
> E is already overflowing with these.
> 
> It's a death of a thousand cuts kind of thing.  Each of these little details is
> perfectly justifiable, indeed, compelling, on its own.  But the total package
> seems to me to be getting wildly complicated, unwieldy, and difficult to
> absorb; I know I certainly lost track a long time ago.


I think I have to agree. But we have some genuine dilemmas we need to solve.

I believe we have compelling reasons to require normal guards and auditors to 
be DeepFrozen. If the price of being able to express patterns like Kevin's 
deopt example is that we need to introduce a new concept into the language, 
especially one similar but different from an existing one, then I could live 
without this.

The problem is what to do about the various patterns which, in 0.8.35, 
expanded into uses of the such-that ("?") pattern. (See the thread starting at 
<http://www.eros-os.org/pipermail/e-lang/2005-August/010929.html>.) When we 
rewrote these using guards, the results were much cleaner, and we would then 
have been able to remove such-that from E and Kernel-E. Unfortunately, these 
expansions depend on the guard not being DeepFrozen. If guards must be 
DeepFrozen, then we still need something else to which to expand these other 
patterns. Of the two choices we currently know, via and such-that, the 
arguments are:

* The expansion into via is cleaner than the expansion into such-that, so we 
should keep via and kill such-that.

* As Alan Kay says:
"Similar things should be made either the same or very different."
Such-that is clearly different from guards, and so is less confusing. Via is 
similar to guards, and so is more confusing. Therefore we should keep 
such-that and kill via.


-- 
Text by me above is hereby placed in the public domain

     Cheers,
     --MarkM



More information about the e-lang mailing list