[e-lang] Proposal: deprecate "rcvr" in favor of "ref"

Dean Tribble tribble at e-dean.com
Sat Dec 2 17:49:54 CST 2006


I'm happy to have "rcvr" go away; I always found it non-evocative and
confusing.  With the advent of the Emily work and the useof the "ref"
keyword in C#, I think that "ref" is too overloaded and thus confusing.  You
previously observed that we should not use "far" because it asserts
sojmething that isn't true (e.g., I would expect it to fail for a near
object that I happened to only do sends to).  Based on that, I have a new
suggestion:  "nocall".  It's not as short as I would like, but it's dirct,
to thepoint, and declares the only property you are actually asserting.

Any code that uses so pervasively that its length i a problem can also
afford to put a "def nc := nocall" at t top of the file or some such :-)

I tried to argue myself out of the other reference distinctions, and they
are all pretty compelling when you are actually handling both local and
remote references (i.e., when you are doing interesting distributed
things).  I'd like to use :loc or :local instead of vow because I can never
remember what the difference between a promise and a vow is, but that may be
just practice.


On 12/2/06, Mark S. Miller <markm at cs.jhu.edu> wrote:
>
> I was recently preparing a bit of E code to illustrate a point in a
> presentation. When it came time to declare that a particular parameter was
> a
> possibly remote reference to a PublicFace, I found myself writing
>
>      to sealIntroduction(..., other :rcvr[PublicFace]) :SealedBox
>
> In desperation to make the presentation more immediately understandable, I
> substituted "ref" for "rcvr", and everything read much better. At the time
> I
> did this, it was pretend. I propose we deprecate "rcvr" in favor of "ref".
> Since "ref" had not previously been reserved, this is technically a
> non-upwards compatible change, but all incompatibilities can be easily and
>
> reliably found and fixed. The current E SVN head contains such a trial
> fix.
>
> The term "rcvr[T]" for the guard meaning "possibly remote reference to a
> T"
> comes out of the threads rooted at
> http://www.eros-os.org/pipermail/e-lang/2001-August/005593.html
> http://www.eros-os.org/pipermail/e-lang/2002-March/006303.html
> http://www.eros-os.org/pipermail/e-lang/2002-March/006302.html
>
> These threads contain the following alternatives (though these are
> suggested
> in the context of variable naming convention rather than guard names):
>      pass
>      grip
>      handle, hand
>      remote, rmt
>      queue, Q
>      distributed, dist
>
> For the guard name, I still like "ref" the best. "ref" has been suggested
> before, and I had previously rejected it because of conflict with its
> meaning
> to ML and Algol-68 programmers. Despite this objection, I think I still
> like
> it best.
>
> If there are no objections, in the next E release "rcvr" will continue to
> work
> but be deprecated, and "ref" will be in the same scope as a non-deprecated
> synonym.
>
> --
> Text by me above is hereby placed in the public domain
>
>      Cheers,
>      --MarkM
> _______________________________________________
> e-lang mailing list
> e-lang at mail.eros-os.org
> http://www.eros-os.org/mailman/listinfo/e-lang
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.eros-os.org/pipermail/e-lang/attachments/20061202/2687af81/attachment.html 


More information about the e-lang mailing list