[e-lang] Paper Comments

Dan Bornstein danfuzz at milk.com
Thu Jun 30 21:19:56 EDT 2005


Here are my comments based on a single reading of the draft posted as of 
about 4pm today. As Ping(? I think) said, my terseness is meant merely 
as an expedience. Overall, I think the paper is excellent; most of my 
comments are minor nitpicks. Also, apologies if any (all?) of this is 
stale; I wish I had time to keep up with it all!

-dan

##########

PAGE 2

> The Sequential StatusHolder introduces the statusHolder, and examines 
> its
> hazards in a sequential environment.

I wouldn't use a comma there, since the thing after the comma isn't a 
full sentence, nor is it part of a list of 3 or more clauses. You do the 
same thing in the rest of the list of sections as well.

footnote 3
> Hayek’s explanation of how property rights protects humans plans from
> interference

Some syntactic issues there.

PAGE 7

Fig.1: I don't get what the double-headed arrow in the middle of the 
figure is supposed to represent.

PAGE 11

Fig.2: I just want to cast my vote in favor of the line drawing over the 
shaded version.

PAGE 12

If the suggested replacement "A vat runs an event loop..." is taken, 
then the definition of "vat" two paragraphs hence should be moved 
earlier or integrated into that replacement.

PAGE 19

> (**unclear**) AM has given X and F access to the statusGetter.

"statusGetter" isn't in the code font (a second time in the paragraph as 
well).

> Ask Hopwood what he means by “E doesn’t rely on other vats to 
> implement the E
> language”.

I know I'm not Hopwood, but I bet the idea is that an E vat doesn't rely 
on anything it communicates with being a well-behaved E vat. It *could* 
be, but if not, there's nothing that the miscreant alleged-vat could do 
to corrupt the well-behaved vat it is communicating with. It's another 
riff on "Don't let the protocol be capable of expressing lies."


PAGE 22

> Promise chaining provides a way to allow some plans...

How about "Promise chaining allows some plans..." ?

PAGE 24

> There is no one best strategy...

How about "There is no single best strategy..." or "...unique..." to 
avoid a confusing misparse of "no one" (which caused me to reread it a 
couple times before realizing my mistake)?

PAGE 28

> If it does reconnect, it knows it may have missed updates in the 
> meantime, so
> it should first send a new getStatus query to refresh its own state 
> before >resubscribing.

That's fine for a simple system like the statusHolder, but I think it's 
worth at least addressing how a more complicated system would work, 
where effectively-lost update messages between a non-atomic sequence of 
getStatus() and addListener() might lead the client to an incomplete 
view of the object.

FWIW, I regularly run into the equivalent of this problem, and usually 
solve it by having addListener(), in addition to adding the designated 
listener, also send the object's current full state to the listener in a 
series of messages. (I know that's not necessarily the ideal solution.)

PAGE 31

> Thus its semantics are a bit like having thousands and thousands of 
> computer
> all hooked together

Is that a (minor) misquote? "computers"?

PAGE 35

The title of the paper is "Concurrency Among Strangers: Programming in E 
as Plan Coordination" but the Discussions and Conclusions section 
doesn't make an explicit tie-in either to "strangers" or "plan 
coordination."



More information about the e-lang mailing list