Minutes, 26 Nov. '18 conference call

16 views
Skip to first unread message

mlscott

unread,
Nov 26, 2018, 7:38:14 PM11/26/18
to SG5 - Transactional Memory
Minutes, SG5
26 November 2018

Participants: Hans Boehm, Mike Spear, Michael Scott, Victor Luchangco,
Michael Wong

Michael Scott taking minutes.

Secretary rota: Maged Michael, Jens Maurer, Mike Spear, Michael Wong,
Hans Boehm, Victor Luchangco

Hans is now chairing the group, with thanks to Michael Wong for his past
service.

How often to meet?
Every 4 weeks, starting Jan. 7.
(Four weeks from now would be Christmas Eve.)
For what it's worth, that schedule will avoid PPoPP, NVMW, and ASPLOS.

Where are we?
No one has yet written anything up for "TM Lite".
Mike Spear "under water" until Dec. 7.

Remembering/clarifying where we are:
Tentative agreement to use atomic{...} syntax rather than executors
(pass-a-lambda).
What restrictions to put on the code in atomic blocks?
    Victor: Herb would prefer something where "whether it's ok" is
    self-evident -- prefer error messages to performance anomalies.
Michael Scott: can always extend later.
Mike Spear: forbid bad things, or make behavior undefined?
    Victor: forbidding is better, if we can.
    Hans: undefined is more typical C++.
    Mike Spear: want life to be simpler for the implementor.
    General agreement: undefined (compiler can of course do more).

Michael Scott: what _is_ allowed in an atomic block?
Victor:
    ordinary reads & writes
    ordinary control flow
    no volatiles or atomics
    no exceptions
    calls to known-to-be-safe functions -- definitely including those of
        the current compilation unit (as in constexpr)
Library functions?
    Victor: not yet?
    General agreement: whatever constexpr allows
    Michael Scott: that is, if constexpr says you can use foo() if you
        pass constant arguments, we would say you can use foo() (w/out
        necessarily passing constants)
    Hans: that probably rules out vectors.

Hans: note that constexpr is a moving target.  People are looking at
vectors and even exceptions.

Semantics should be (a slightly less flexible version of) what we have
for atomic_noexcept in the current tech. spec.
Hans: except nonconforming blocks will have undefined behavior, so the
compiler is not required to check conformance.
Want to admit stupid global lock implementation.

Looks like we're in enough agreement that somebody should be writing.
Michael Wong created a Google Doc for this.  We should edit it as time
is available.

Mike Spear's older lambda-based proposal (for reference):

Skeleton for a new atomic block proposal (edit this one):

Next meeting: 7 Jan., noon PST.

Reply all
Reply to author
Forward
0 new messages