Skip to content

Rust 1.15.1 #148

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

Merged
merged 8 commits into from
Feb 9, 2017
Merged

Rust 1.15.1 #148

merged 8 commits into from
Feb 9, 2017

Conversation

brson
Copy link
Contributor

@brson brson commented Feb 8, 2017

r? @steveklabnik

Don't merge.

feature, and the present implementation is spectacularly unsound, we decided to
go ahead and release the fix immediately, hopefully before too many codebases
pick it up - that is, we don't consider this a breaking change that requires a
careful transition, but a necessary bug fix.
Copy link
Member

Choose a reason for hiding this comment

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

I think citing our RFCs here is a good idea

@brson
Copy link
Contributor Author

brson commented Feb 8, 2017

www

@brson brson force-pushed the next branch 3 times, most recently from 8c19d43 to 44cf794 Compare February 8, 2017 15:50
necessary bug fix. For more about Rust's approach to ensuring stability see the
["Stability as a Deliverable"][stab] blog post, [RFC 1122], on language
evolution, and [RFC 1105], on library evolution (curiously, RFC 1105 does not
actually contain any language allowing for library breakage due to soundness,
Copy link
Member

Choose a reason for hiding this comment

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

😓

attestation that the block is correct to bolt-on theorem provers. At the moment
the Rust library team doesn't have plans to make process changes based on this
mistake, but unsafe validation in Rust will be an area of active research
forever, and we'll continue to evaluate our options.
Copy link
Member

Choose a reason for hiding this comment

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

So, this was where you said it felt awkward. I agree. I think maybe cutting out the ideas is better; keep it succinct.

What can we learn from this? Well, it's at least good to be reminded why we endeavored to write a safe language in the first place: writing safe code is not easy. We have some ideas for how to catch this kind of problem earlier in the development process, but we haven't made any decisions yet.

WDYT?

@brson
Copy link
Contributor Author

brson commented Feb 8, 2017

Updated with your language @steveklabnik

@alexcrichton
Copy link
Member

I've updated this with an anticipated 2017-02-09 release date

@brson brson force-pushed the next branch 2 times, most recently from 3788e82 to f9370df Compare February 9, 2017 18:54
more work. For mostly-Rust codebases, the practical impact of losing read-only
text sections is relatively small (since Rust's type system is its first line of
defense), but for Rust linked into other codebases the impact could be
unexpectedly quite significant. The details of the bug are not that interesting
Copy link
Member

Choose a reason for hiding this comment

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

I would say

The impact of not compiling with -fPIC is well-understood, so the rest of this post focuses on the soundness bug.

So we made that change, and we're releasing a fix. In Rust we take pride in not
breaking APIs, but since this is a new, minor feature, and the present
implementation is spectacularly unsound, we decided to go ahead and release the
fix immediately, hopefully before too many codebases pick it up - that is, we
Copy link
Member

Choose a reason for hiding this comment

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

don't consider this a breaking change that requires a careful transition, but a
necessary bug fix. For more about Rust's approach to ensuring stability see the
["Stability as a Deliverable"][stab] blog post, [RFC 1122], on language
evolution, and [RFC 1105], on library evolution (curiously, RFC 1105 does not
Copy link
Member

Choose a reason for hiding this comment

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

i am tempted to remove this parenthetical entirely

Copy link
Contributor Author

Choose a reason for hiding this comment

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

agree

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it's pretty far in the weeds

components of the Rust distribution were [not compiled with `-fPIC`][fpic]. The
latter results in the text section of executables being writable in some
configurations, including common Linux configurations, subverting an important
attack mitigation, and causing longer startup times by causing the linker to do
Copy link
Member

Choose a reason for hiding this comment

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

“causing … by causing …” sounds weird :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

good spot

@brson
Copy link
Contributor Author

brson commented Feb 9, 2017

Addressed.

@steveklabnik
Copy link
Member

:shipit:

@brson brson merged commit 74b1099 into rust-lang:gh-pages Feb 9, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants