[e-lang] Dot-based Call

Mark S. Miller e-lang@mail.eros-os.org
Sat, 15 Jun 2002 23:28:47 -0700


--=====================_747083369==_.ALT
Content-Type: text/plain; charset="us-ascii"

e-lang has seen a tremendous set of recent discussions about E.  It will 
take me a while to respond to all the issues raised.

The discussion of syntax has been particularly lively.  Mostly I will resist 
making syntactic changes, but I will make a few.  In all cases, I will 
ensure that the next release (0.8.18) represents a practically upwards 
version of the language, and is a step towards a well managed transition 
from old syntactic features to new ones.

The one issues for which we have unanimous agreement was to use '.' (dot) 
for immediate calls rather than juxtaposition.  On reflection, I'm 
convinced.  I still believe this makes E worse as a command language, but so 
be it.  If it puts people off, as it clearly does, it's not worth it.

With this issue, as with several others, I will present the resolution as a 
draft of the text to go into the Highlights section of the next release notes:


                                         Dot-based Call

As of this release, the conventional dot-based syntax for immediate calls is 
phased in to replace E's earlier, Smalltalk-like, juxtaposition-based syntax 
(or no-dot-call syntax). 

    2 + 3        expands to 2.add(3)
    2.add(3)     proper Kernel-E
    2 add(3)     Deprecated, but expands to 
                    2.add(3)
                 for now.

Both syntaxes are still supported as of this release, but the no-dot-call 
syntax is now deprecated. We expect to stop supporting no-dot-call in a 
later release. To check that your code no longer uses this feature, turn off 
the property e.enable.no-dot-call in eprops.txt, or say 
"-De.enable.no-dot-call=false" on the command line. To turn it off on a 
per-module basis, say

    pragma disable("no-dot-call")

at the top of the module.

We expect to shortly release a tool, based on the E-language parser, that 
will accurately convert E and Updoc code from the no-dot-call style to the 
dot-call style. Until such a tool is made available, we will continue to 
support both syntaxes.



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

        Cheers,
        --MarkM

--=====================_747083369==_.ALT
Content-Type: text/html; charset="us-ascii"

<html>
e-lang has seen a tremendous set of recent discussions about E.&nbsp; It
will <br>
take me a while to respond to all the issues raised.<br><br>
The discussion of syntax has been particularly lively.&nbsp; Mostly I
will resist <br>
making syntactic changes, but I will make a few.&nbsp; In all cases, I
will <br>
ensure that the next release (0.8.18) represents a practically upwards
<br>
version of the language, and is a step towards a well managed transition
<br>
from old syntactic features to new ones.<br><br>
The one issues for which we have unanimous agreement was to use '.' (dot)
<br>
for immediate calls rather than juxtaposition.&nbsp; On reflection, I'm
<br>
convinced.&nbsp; I still believe this makes E worse as a command
language, but so <br>
be it.&nbsp; If it puts people off, as it clearly does, it's not worth
it.<br><br>
With this issue, as with several others, I will present the resolution as
a <br>
draft of the text to go into the Highlights section of the next release
notes:<br><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Dot-based Call<br><br>
As of this release, the conventional dot-based syntax for immediate calls
is <br>
phased in to replace E's earlier, Smalltalk-like, juxtaposition-based
syntax <br>
(or no-dot-call syntax). <br><br>
<tt>&nbsp;&nbsp;&nbsp; 2 + 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
expands to 2.add(3)<br>
&nbsp;&nbsp;&nbsp; 2.add(3)&nbsp;&nbsp;&nbsp;&nbsp; proper Kernel-E<br>
&nbsp;&nbsp;&nbsp; 2 add(3)&nbsp;&nbsp;&nbsp;&nbsp; Deprecated, but
expands to <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2.add(3)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for now.<br><br>
</tt>Both syntaxes are still supported as of this release, but the
no-dot-call <br>
syntax is now deprecated. We expect to stop supporting no-dot-call in a
<br>
later release. To check that your code no longer uses this feature, turn
off <br>
the property e.enable.no-dot-call in eprops.txt, or say <br>
&quot;-De.enable.no-dot-call=false&quot; on the command line. To turn it
off on a <br>
per-module basis, say<br><br>
&nbsp;&nbsp;&nbsp; pragma disable(&quot;no-dot-call&quot;)<br><br>
at the top of the module.<br><br>
We expect to shortly release a tool, based on the E-language parser, that
<br>
will accurately convert E and Updoc code from the no-dot-call style to
the <br>
dot-call style. Until such a tool is made available, we will continue to
<br>
support both syntaxes.<br><br>
<br>
<x-sigsep><p></x-sigsep>
----------------------------------------<br>
Text by me above is hereby placed in the public domain<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cheers,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --MarkM<br>
</html>

--=====================_747083369==_.ALT--