Skip to content

Update POSIX edition links#158505

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
schneems:schneems/bump-posix-edition
Jul 6, 2026
Merged

Update POSIX edition links#158505
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
schneems:schneems/bump-posix-edition

Conversation

@schneems

Copy link
Copy Markdown
Contributor

Comments that reference https://pubs.opengroup.org point to issue 7 (the 2018 edition of IEEE Std 1003.1-2017), with one link still on the older issue 6. The latest issue is 8 (the 2024 edition, IEEE Std 1003.1-2024). From https://www.opengroup.org/austin/papers/posix_faq.html:

Q3. What is the latest version of POSIX.1?

The 1003.1-2024 standard was published in June 2024. The standard is
formally known as: IEEE Std 1003.1-2024 The Open Group Technical
Standard Base Specifications, Issue 8

Issue 8 lives at https://pubs.opengroup.org/onlinepubs/9799919799/.

This PR points all older-edition links to issue 8.

Most links are a straight edition bump, but links with a section anchor needed their anchor rechecked, because section numbering shifts between editions. Verified against the 2024 edition:

  • Pathname Resolution moved from 4.13 (tag_04_13) to 4.16 (tag_04_16)
  • Field Splitting moved from tag_18_06_05 to tag_19_06_05
  • LC_CTYPE (tag_07_03_01) was unchanged

The Miri changes (src/tools/miri/) are kept in a separate commit since that's a synced subtree. I'm happy to move them to a rust-lang/miri PR if preferred.

@rustbot

rustbot commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

miri is developed in its own repository. If possible, consider making this change to rust-lang/miri instead.

cc @rust-lang/miri

@rustbot rustbot added O-unix Operating system: Unix-like S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jun 27, 2026
@rustbot

rustbot commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

r? @Darksonn

rustbot has assigned @Darksonn.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @ChrisDenton, libs
  • @ChrisDenton, libs expanded to 13 candidates
  • Random selection from Darksonn, JohnTitor, Mark-Simulacrum, clarfonthey, jhpratt

@@ -714,7 +714,7 @@ trait EvalContextPrivExt<'tcx>: MiriInterpCxExt<'tcx> {
// "in the past" fire before any other thread can take an action. This ensures that for
// `pthread_cond_timedwait`, "an error is returned if [...] the absolute time specified by
// abstime has already been passed at the time of the call".
// <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_timedwait.html>
// <https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_timedwait.html>

@RalfJung RalfJung Jun 27, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't this risk causing a dangling reference since whatever quote or behavior the text was referring to might have gotten changed in the latest version?

View changes since the review

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a risk. I manually checked all links with anchors, but not all plain links (without anchors). In this case the comment helpfully gives us a quote

"an error is returned if [...] the absolute time specified by abstime has already been passed at the time of the call"

Before https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_timedwait.html:

The pthread_cond_timedwait() function shall be equivalent to pthread_cond_wait(), except that an error is returned if the absolute time specified by abstime passes (that is, system time equals or exceeds abstime) before the condition cond is signaled or broadcasted, or if the absolute time specified by abstime has already been passed at the time of the call. When such timeouts occur, pthread_cond_timedwait() shall nonetheless release and re-acquire the mutex referenced by mutex, and may consume a condition signal directed concurrently at the condition variable.

After https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_timedwait.html:

The pthread_cond_clockwait() function shall be equivalent to pthread_cond_wait(), except that an error is returned if the absolute time specified by abstime as measured against the clock indicated by clock_id passes (that is, the current time measured by that clock equals or exceeds abstime) before the condition cond is signaled or broadcasted, or if the absolute time specified by abstime has already been passed at the time of the call. Implementations shall support passing CLOCK_REALTIME and CLOCK_MONOTONIC to pthread_cond_clockwait() as the clock_id argument. When such timeouts occur, pthread_cond_clockwait() shall nonetheless release and re-acquire the mutex referenced by mutex, and may consume a condition signal directed concurrently at the condition variable.

The text changed a bit, but I read them to carry equivalent context. I think if there's a problem with updating the links, it would possibly need a code fix/change (as it would mean the spec changed, but the code didn't follow it).

@RalfJung RalfJung Jul 1, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So in other words, reviewing this PR requires carefully checking for each link you changed whether it still provides the right kind of context. That's quite a lot of work. I am not convinced it's worth the effort -- personally I don't have the spare review capacity to review PRs like this that are a lot of effort for little benefit. But I'm not the assigned reviewer, we can wait what @Darksonn says.

But for the Miri side, I am the main reviewer, and I don't think this PR provides enough benefit to justify the risk of semantically dangling references. So please remove the Miri changes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heard. Thanks for the review and for maintaining MIRI. I'll remove the MIRI commit.

I got the idea of doing this from my work on another doc PR #158574. There was an old link in the same source file, but I wasn't otherwise touching those docs. It felt wrong to standardize everything on the old edition. It also seemed somewhat unclear if updating that edition in the same PR was okay or not. I chose to leave it and update all of them at once in this PR.

I see a value in standardization. When there's divergence, programmers are primed to see intent in it. Part of me sending this PR is to answer "are these old on purpose or by accident." With the theory that others just hadn't noticed and updated them. Being intentionally old because they are point-in-time references is a reasonable maintenance trade-off.

I would still like to see them updated in Rust (if not in miri). I'm open to doing more legwork if it can help (like leaving more comments as I did here, walking through the check). I just didn't want to start off with that, as otherwise it could be a bit overwhelming. Also open to breaking up the review burden into more manageable chunks with multiple commits or PRs. I just didn't want y'all to feel like I was trying to game my commit numbers.

@rust-log-analyzer

This comment has been minimized.

@schneems

Copy link
Copy Markdown
Contributor Author

A job failed!

Looks unrelated to my (docs only) change, seems intermittent.

2026-06-27T23:30:10.8047731Z error: failed to get `adler2` as a dependency of package `miniz_oxide v0.8.8`
2026-06-27T23:30:10.8048654Z     ... which satisfies dependency `miniz_oxide = "^0.8.5"` of package `flate2 v1.1.9`
2026-06-27T23:30:10.8049871Z     ... which satisfies dependency `flate2 = "^1.1.9"` of package `citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)`
2026-06-27T23:30:10.8050358Z 
2026-06-27T23:30:10.8050452Z Caused by:
2026-06-27T23:30:10.8050698Z   failed to load source for dependency `adler2`
2026-06-27T23:30:10.8050925Z 
2026-06-27T23:30:10.8051043Z Caused by:
2026-06-27T23:30:10.8051271Z   unable to update registry `crates-io`
2026-06-27T23:30:10.8051463Z 
2026-06-27T23:30:10.8051556Z Caused by:
2026-06-27T23:30:10.8051773Z   download of ad/le/adler2 failed
2026-06-27T23:30:10.8051976Z 
2026-06-27T23:30:10.8052055Z Caused by:
2026-06-27T23:30:10.8052250Z   curl failed
2026-06-27T23:30:10.8052370Z 
2026-06-27T23:30:10.8052452Z Caused by:
2026-06-27T23:30:10.8052672Z   [16] Error in the HTTP2 framing layer
2026-06-27T23:30:10.8106014Z ##[error]Process completed with exit code 101.

@schneems schneems force-pushed the schneems/bump-posix-edition branch 2 times, most recently from 0f08d27 to 68d0219 Compare July 1, 2026 03:17
@rustbot

This comment has been minimized.

Comments and doc links across std, core, and a process test referenced the
older issue 7 (2018 edition) of the POSIX spec, with one link still on
issue 6. Point them all at the current issue 8 (2024 edition, IEEE Std
1003.1-2024) under onlinepubs/9799919799, and normalize the
`9799919799.2024edition` URL variant to the canonical path.

Links that carry a section anchor were verified against the 2024 edition,
since section numbering shifts between editions:

- Pathname Resolution moved from 4.13 (tag_04_13) to 4.16 (tag_04_16)
- Field Splitting moved from tag_18_06_05 to tag_19_06_05
- LC_CTYPE (tag_07_03_01) was unchanged

CI's linkchecker only validates intra-doc links, not external URLs, so each
page and anchor was checked by hand.
@schneems schneems force-pushed the schneems/bump-posix-edition branch from 68d0219 to e919f70 Compare July 1, 2026 20:53
@rustbot

rustbot commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@Darksonn Darksonn left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rust-bors

rust-bors Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

📌 Commit e919f70 has been approved by Darksonn

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 6, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 6, 2026
…on, r=Darksonn

Update POSIX edition links

Comments that reference https://pubs.opengroup.org point to issue 7 (the 2018 edition of IEEE Std 1003.1-2017), with one link still on the older issue 6. The latest issue is 8 (the 2024 edition, IEEE Std 1003.1-2024). From https://www.opengroup.org/austin/papers/posix_faq.html:

> Q3. What is the latest version of POSIX.1?
>
> The 1003.1-2024 standard was published in June 2024. The standard is
> formally known as: IEEE Std 1003.1-2024 The Open Group Technical
> Standard Base Specifications, Issue 8

Issue 8 lives at https://pubs.opengroup.org/onlinepubs/9799919799/.

This PR points all older-edition links to issue 8.

Most links are a straight edition bump, but links with a section anchor needed their anchor rechecked, because section numbering shifts between editions. Verified against the 2024 edition:

- Pathname Resolution moved from 4.13 (`tag_04_13`) to 4.16 (`tag_04_16`)
- Field Splitting moved from `tag_18_06_05` to `tag_19_06_05`
- LC_CTYPE (`tag_07_03_01`) was unchanged

The Miri changes (`src/tools/miri/`) are kept in a separate commit since that's a synced subtree. I'm happy to move them to a `rust-lang/miri` PR if preferred.
rust-bors Bot pushed a commit that referenced this pull request Jul 6, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - #156976 (enable eager `param_env` norm in new solver)
 - #158537 (Add `std::io::cursor::WriteThroughCursor`)
 - #158540 (Move `std::io::Seek` to `core::io`)
 - #157820 (consider subtyping when checking if an infer var is sized)
 - #158505 (Update POSIX edition links)
 - #158853 (Fix typo for link on nto-qnx.md)
 - #157466 (Better error message when bare type in impl parameter list)
 - #157966 (Emit a suggestion to cast the never type into a concrete type when it fails to satisfy an `impl Trait` bound)
 - #158381 (Expose debug scope of statement and terminator in rustc_public)
 - #158405 (rustc_target: Add ARMv8-M related target features)
 - #158770 (Weaken guarantee for `From<legacy::RangeInclusive> for RangeInclusive`)
 - #158820 (Fix rustdoc ICE on deprecated note in inlined re-export chain)
@rust-bors rust-bors Bot merged commit bd2ee38 into rust-lang:main Jul 6, 2026
13 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Jul 6, 2026
rust-timer added a commit that referenced this pull request Jul 6, 2026
Rollup merge of #158505 - schneems:schneems/bump-posix-edition, r=Darksonn

Update POSIX edition links

Comments that reference https://pubs.opengroup.org point to issue 7 (the 2018 edition of IEEE Std 1003.1-2017), with one link still on the older issue 6. The latest issue is 8 (the 2024 edition, IEEE Std 1003.1-2024). From https://www.opengroup.org/austin/papers/posix_faq.html:

> Q3. What is the latest version of POSIX.1?
>
> The 1003.1-2024 standard was published in June 2024. The standard is
> formally known as: IEEE Std 1003.1-2024 The Open Group Technical
> Standard Base Specifications, Issue 8

Issue 8 lives at https://pubs.opengroup.org/onlinepubs/9799919799/.

This PR points all older-edition links to issue 8.

Most links are a straight edition bump, but links with a section anchor needed their anchor rechecked, because section numbering shifts between editions. Verified against the 2024 edition:

- Pathname Resolution moved from 4.13 (`tag_04_13`) to 4.16 (`tag_04_16`)
- Field Splitting moved from `tag_18_06_05` to `tag_19_06_05`
- LC_CTYPE (`tag_07_03_01`) was unchanged

The Miri changes (`src/tools/miri/`) are kept in a separate commit since that's a synced subtree. I'm happy to move them to a `rust-lang/miri` PR if preferred.
@schneems

schneems commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @darkson!

@schneems schneems deleted the schneems/bump-posix-edition branch July 6, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

O-unix Operating system: Unix-like S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants