-
Notifications
You must be signed in to change notification settings - Fork 766
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P3471R4 Standard library hardening #7703
Conversation
@jwakely I have had some issues when creating this PR:
|
The old note was semantically connected to the preconditions paragraph but placed in a bad (IMO) place. I guess the intent wasn't attaching the note to the paragraph, but such attaching seems to be an editorial improvement to me.
I think it's safest to mirror changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The paper was applied correctly except for 2 missing edits, but there were other issues - see comments.
A freestanding | ||
implementation is one in which execution may take place without the benefit of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not your doing (from existing text), but wanted to point out that this is where the \defnadj for "freestanding implementation" should be (not above) since this is the definition. Same for "hosted implementation" in the sentence below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we want the defnadj
to be on the first occurrence of the term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I respectfully disagree - suppose the introduction of the term came paragraphs before the actual definition, yet in the same section? I'd say we always want the definition to be at the actual definition.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jwakely what if we fixed it up like this, which seems like it would make both of you happy?
\pnum
A \defnadj{freestanding}{implementation}
is one in which % ...
A \defnadj{hosted}{implementation}
supports % ...
An implementation is either a
hosted implementation or a freestanding implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually I think this change is an absolute must anyway because [library] currently states whether an implementation is hosted or freestanding (it's impldef). This is way too late; core wording like [intro.multithread] already refers to freestanding.
If the \impldef
for hardened implementations is in [intro], then so should the \impldef
for hosted vs. freestanding. This is also about mirroring changes and getting rid of the "there are two kinds of implementations" wording. See a7a861a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These might all be good ideas, but (because changing existing, unchanged text) feel out-of-scope for the pull request that applies an approved paper from the motions. And it most certainly not a "fixup".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I still feel like it should be included here is that the paper intentionally removes "two kinds of implementation" wording. It seems like an obvious oversight that this wasn't also done in [library], and like something that this paper (and therefore this PR) should do. If we merged without the fix, then we'd need to fix up the knowingly incorrect state we've created later anyway.
Would it be fine to split up the commit that just mirrors the changes in [library] and append the remaining stylistic improvements as a non-fixup?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When applying papers, the contents of the primary paper application commit should be what the paper says, plus punctuation and typo fixes.
If there are additional fixes that are editorial and directly triggered by the paper, they should be in a separate commit, with the usual "[label] title" description.
If, beyond that, there is a reason to clean up the wording even further, I'd prefer to have a separate editorial pull request that can be considered on its own merits. Just because the outcome of a paper application is a bit suboptimal doesn't mean we should rewrite the entire surrounding words; presumably, the applied paper was peer-reviewed by LWG and/or CWG.
a7a861a
to
9ec312e
Compare
9ec312e
to
594d960
Compare
594d960
to
96e1c68
Compare
Let's address that separately after the motions.
Fixes #7674.
Fixes cplusplus/papers#2125.