[cpp-threads] Revised Atomic Paper

Lawrence Crowl Lawrence at Crowl.org
Thu Aug 16 00:34:12 BST 2007


On 8/15/07, Ben Hutchings <ben at decadent.org.uk> wrote:
> In "Prior Approaches", the URL to N2153 is wrong; "n2153.html" should be
> "n2153.pdf".

Fixed.

> In "Current Approach" paragraph 7, "may not depend" should probably be
> "must not depend" ("may not" is ambiguous).  Also "of class of a
> programs" should be "of a class of programs".

Changed to "shall not", which seems to be the correct standardese.

> In "Memory Model Interaction" paragraph 1, "to the thread performing
> subsequent acquire operation" should probably be "to a thread performing
> a subsequent acquire operation".

Fixed.

> In paragraph 8, "per-variables fences" should be "per-variable fences".

Fixed.

> In "Summary of Types and Operations" paragraph 6, "enforce the
> properties parameter type" should probably be "enforce these properties
> on a parameter type" or "require these properties of a parameter type".

I took the latter suggestion.

> Also, should "parameter type" be "type parameter"?

Yes, fixed.

> Finally, "we do not employ have not yet employed" should say one
> or the other!

Hm.  That phrase includes deleted and inserted elements:
  "we <del>do not employ</del> <ins>have not yet</ins> employed"

Does your browser not show them distinctly?  If not, any idea why?

In any event, such edits will disappear in the next version of the
paper.

> In paragraph 10, "The compare-and-swap modify" should be "The
> compare-and-swap functions replace".

Fixed.

> In the CAS loop, the loop condition needs to be inverted.

Fixed.

> In "Implementability" paragraph 1, "implementability" is misspelt. ;-)

My fingers were stuttering.  :-)  Fixed.

>
> In "Remaining Issues" paragraph 1, "This The issue as is" should
> probably be "The issue is".

That paragraph was marked deleted, and will be gone in the next
version of the paper.

> In paragraphs 4 and 5, "desirable" is misspelt.

Fixed.  BTW, my browser thinks "misspelt" is misspelled.  Ah,
the joys of language evolution.

> In "Headers", "also" should be "and also".

Fixed.

> Is it correct that operations are not exported to the global
> namespace?  (Presumably they can be found by ADL?)

That was an omission of "and operations".  Fixed.

> In "Memory Order" paragraph 1, under "memory_order_release" and
> "memory_order_acquire", "operations that load" and "operations that
> store" are the wrong way round.

These were deleted sentences.  I'd like to know why you haven't seen
the deleted text marked.

>  Also, under "memory_order_seq_cst",
> "and addition" should be "and in addition".

Fixed.

> In paragraph 2 point 3, "starts consists of", should be "consists of".

Fixed.

> In "Atomic Operations" paragraph 1, "Implicitly" should perhaps be "By
> default".

Fixed.

> Under "swap", "and returns" should be "and return".  Also, "both the
> evaluation that produced the input value, and the operation itself,
> synchronizes with" should be something like "any such operation and the
> evaluation that produces the new value for that operation both
> synchronize with".

Changed to "both such an operation and the evaluation that
produced the input value synchronize with".

> Under "compare-and-swap", there should be a comma before "if equal".

Fixed.

> Under "fence", "both the evaluation that produced the input value, and
> the operation itself, synchronizes with" does not make sense because
> there is no input value.

Changed to "both any such operation and the evaluation that
produced the value of the atomic synchronize with".  I'm not
entirely happy with the inconsistencies in wording.

> Under "fetch-and-{add,sub,and,or,xor}", "twos-complement" should have an
> apostrophe after "two".  Also, "both the evaluation that produced the
> input value, and the operation itself, synchronizes with" should be
> something like "any such operation and the evaluation that produces the
> augend for that operation both synchronize with".

Fixed.

> In paragraph 3, "volatile qualified" should be hyphenated.

Fixed.

>  Also, "operatoins" should be deleted.

It was marked so.

> In "Lock-Free Property", paragraph 1, "all operations are wait-free or
> none of them are" is wrong and was probably supposed to say that about
> the lock-free property.

Hm.  Maybe you've been reviewing an earlier draft.  Caught that one
as well.

> The following sentences in the paragraph should be deleted.

Which sentences?  I'm no longer confident in what I might guess.

-- 
Lawrence Crowl



More information about the cpp-threads mailing list