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

Mark S. Miller markm at cs.jhu.edu
Sat Dec 2 13:31:52 CST 2006


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


More information about the e-lang mailing list