Hello Everyone,
Michael Scott, Hans Boehm, and Mike Spear called into the meeting. As with the previous call, we did not have enough people for a quorum, and we didn't have an agenda, but we reviewed some details and outlined some steps going forward.
The main task was discussion of TMLite. We have a document (attached), which isn't really in the proper format, but it could be the start of a TMLite document (technically, it is a hasty user manual for the TM system from Lehigh).
We discussed the following two issues, where the attached document may not be what we want for TMLite:
1 - Static checking - In our discussions of TMLite, we seemed to favor statically checking certain properties (no calls to functions outside of the translation unit; no syscalls, atomics, or volatiles, etc.). The alternative would be to serialize in those cases. We discussed how pragmatism favors the latter: a programmer might want to insert some printf debugging, or an assert, in a transaction. Static checking forbids these approaches. Note that the two are equivalent in terms of implementation effort. In any case where one compiler would insert a serialization instruction, the other would output an error. Note: No decision was made, since we did not have a quorum.
2 - Memory model - In the TMTS, synchronized blocks have the same ordering as locks. Atomic blocks do not. The attached document claims lock-based semantics, but it is sloppy, and does not precisely say how its TM proposal interacts with the memory model. Note: No decision was made, since we did not have a quorum.
I think that summarizes the discussion to a satisfactory degree. If any attendee wishes to correct or expand upon anything in this email, please do.
We anticipate that the next call will be on Monday, 12 November.
- Mike