[E-Lang] E Authorities was: Pending revision of E in a Walnut

Wesley Felter wesley@felter.org
Thu, 23 Aug 2001 20:28:37 -0500 (CDT)


On Thu, 23 Aug 2001, Mark S. Miller wrote:

> More important for the current discussion, the conventional contents of the
> initial default scope for both contexts is the same, modulo only the
> redirection of the bindings of stdout, print, println, and stderr to suit
> the interests of the REPL spawner.

Since this thread was spawned by the command 'println("Hello World")', I
would like to see an explanation (probably in Walnut) about exactly how
those bindings are different.

Here's my thought process behind this request:

Jacob Levy asked what Hello World in E looked like. I figured that would
be in Walnut, so I looked it up and found it. But then when I looked at
it, I realized that it seems to violate this POLA that I've been hearing
is so important. Where did I get the authority to print stuff? OK, it's a
REPL, so it makes sense for commands to have the authority to print stuff.
But another thing that people keep saying is important is to specify the
authority you are using whenever you use it. In this case, I am using the
stdout cap, but I am not specifying it. Isn't that bad? Shouldn't I say
'stdout println("Hello World")'?

I can understand why it might be useful to have ambient authority in the
REPL to save some typing, but should we be teaching that to newbies? Is
Walnut sending a mixed message in this respect?

Wesley Felter - wesley@felter.org - http://felter.org/wesley/