Some thoughts on the 'reveal' operator

Mark S. Miller markm@caplet.com
Mon, 27 Sep 1999 16:56:18 -0700


At 09:16 PM 9/23/99 , Mark S. Miller wrote:
>to be available in the upcoming 0.8.5, unless I'm talked out
>of it

Sorry I've been so unresponsive & uninformative lately.  I just wanted to 
let y'all know that your messages *have* talked me out of this for 
now.  I'm glad we all agree that the problem solved by "^" needs to be 
solved, but it sounds like we're also in agreement that we should find a 
better solution.

Between now and Oct 7 I'm going to try to stay focused mostly on the FC'00 
paper http://www.erights.org/elib/capability/ode/ , so I'm not going to 
worry about "^" until after that.  As a result, 0.8.5 will be more of a 
maintenance release (hopefully improving the setup/install/icons issues on 
Win* platforms).  The paper as submitted to FC'00 will be changed back to 
the current syntax -- a more conventional expression language -- and will 
footnote that the language may evolve by the time the paper is published.

Of course, this should not at all inhibit the rest of you from arguing 
about it until I can pay attention again.  Dean, you said (verbally to me) 
that E should handle this the way Joule did.  Would you care to explain, 
and to say what that would mean for E?

As long as we're talking syntax design, I'll go ahead and revive an old 
question: Ping especially has long advocated that E adopt Python's use of 
indentation rather than curly brackets for block structure.  My 
counter-argument has been we tried that in Joule, but got killed by tab 
ambiguity.  Most everyone agrees that text files should be considered to 
have a tab stop every N positions, but many passionately insist (as I do) 
that N is 8, while others insist with equal passion that N is 4.  (Note 
that I also believe and advocate that one should indent one's code to 
4-space indentation boundaries, and that editors should interpret the tab 
key on the keyboard to position the cursor to the next indentation 
boundaries.  These issues are not coupled.)  Clearly either solution is 
doomed, as it's incompatible with software built to the other solution.

Except that Python works.  What does it do?

Alternatively, how about if tab was simply not considered as valid 
character to be present in E source code?  A conforming lexer would be 
required to reject such input.  Therefore, if one's editor outputs tab 
characters, one would have to convert these programs before submission.  We 
can trivially supply such conversion programs.  I'm sure we examined and 
rejected such a solution in the Joule days, but I can't remember why.

Again, please feel free to argue this even though I won't be joining such 
an argument until after the 7th.


-----------------------------------------------------------
Due to a bug (possibly at my ISP, but probably in Eudora 4.2.0.58), on 9/15
I lost 18 email messages.  If it's possible for you to check whether you
sent me something on that date, resending it would be great.  Otherwise,
please excuse my non-responsiveness to email you may have sent around that
time.  Sorry for the inconvenience, and thanks.

         Cheers,
         --MarkM