Skip to content

Commit 0c165b0

Browse files
committed
clarify wording; link to C committee logs for vote on provenance TS
1 parent 3448224 commit 0c165b0

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

text/0000-rust-has-provenance.md

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,10 @@ Sanitizers and undefined behavior detectors like [Miri](https://github.com/rust-
163163
[^exists]: This is the same sense in which the distinction between initialized and uninitialized memory "exists" during program execution, even though it cannot be observed on most hardware.
164164
[^erase]: It is of course still possible to erase provenance during compilation, *if* the target that we are compiling to does not actually do the access checks that the abstract machine does. What is not safe is having a language operation that strips provenance, and inserting that in arbitrary places in the program.
165165

166-
*Historical note:* The author assumes that provenance in C started out purely descriptively.
167-
However, the moment compilers started doing optimizations that exploit undefined behavior depending on the provenance of a pointer, provenance became prescriptive.
166+
*Historical note:* The author assumes that provenance in C was originally intended to be purely descriptive.
167+
However, the moment compilers started doing optimizations that exploit undefined behavior depending on the provenance of a pointer, provenance of de-facto-C became prescriptive.
168168
A lot of the confusion around provenance arises from the fact that many people still think it is purely descriptive.
169+
The standard has never been updated to clarify this, but in 2022 the committee has accepted a Technical Specification that does explicitly state that C has prescriptive provenance.
169170
The point of this RFC is that Rust has *prescriptive* provenance.
170171

171172
# Guide-level explanation
@@ -246,9 +247,42 @@ That said, (2) would still be a valid option for surface Rust, so this RFC delib
246247
# Prior art
247248
[prior-art]: #prior-art
248249

249-
* "[A Provenance-aware Memory Object Model for C](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3005.pdf)"
250+
* "[N3057: A Provenance-aware Memory Object Model for C](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3057.pdf)"
250251
describes how the C standard is attempting to fit provenance concepts into C.
251-
This technical specification has been accepted unanimously by the C standards committee, but is not part of the official ISO standard.
252+
This [technical specification](https://www.iso.org/standard/81899.html) has been accepted unanimously by the C standards committee, but is not (yet) part of the official ISO standard.
253+
254+
<details><summary>C committee minutes</summary>
255+
256+
[2022-01-31 Final Meeting Minutes](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2991.pdf):
257+
258+
Straw poll: Does WG14 wish to see TS6010 working draft (N2676 or something similar) in some future version of the standard?<br>
259+
21/0/1. Clear consensus.<br>
260+
Straw poll: Does WG14 wish to see TS6010 working draft (N2676 or something similar) in C23?<br>
261+
10/8/5. Clear indication people think this is important.<br>
262+
Straw poll: (Opinion) Is WG 14 willing to move TS 6010 to DTS ballot as it stands now?<br>
263+
19/1/3. The committee is OK to move forward.<br>
264+
(the numbers are yes/no/abstain)
265+
266+
[2022-05-16 - 2022-05-20 Final Meeting Minutes](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3036.pdf):
267+
268+
Straw poll: (decision) Does WG14 want to move to a DTS ballot for TS 6010?<br>
269+
Result: 18-0-0 (consensus)<br>
270+
Uecker: would like to mention that other languages, especially Rust, are adopting this, so now is a useful time to progress.<br>
271+
272+
[2023-01-23 - 2023-01-28 Final Meeting Minutes](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3153.pdf):
273+
274+
Keaton: any objections to a CD ballot for TS 6010?<br>
275+
(none, unanimous consent)<br>
276+
DECISION: Gustedt’s document will go to SC22 and start the two-month ballot process this week.<br>
277+
One month available if needed for ballot resolution.<br>
278+
Sewell: can we start with ISO working in parallel?<br>
279+
Keaton: yes, ISO has volunteered to start its review early.<br>
280+
ACTION: Keaton to submit TS 6010 to ISO early.<br>
281+
ACTION: Gustedt to make up an N-document for TS 6010.<br>
282+
283+
(That document became [N3057](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3057.pdf).)
284+
285+
</details>
252286

253287
### Prior discussion in Rust
254288

0 commit comments

Comments
 (0)