-
Notifications
You must be signed in to change notification settings - Fork 292
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
Rust 1.20.0 release post #192
Conversation
_posts/2017-08-31-Rust-1.20.md
Outdated
} | ||
``` | ||
|
||
These are called "associated functions" becuase they are functions that are |
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.
because
_posts/2017-08-31-Rust-1.20.md
Outdated
Back in [Rust 1.14], we announced preliminary support for asm.js and wasm | ||
with the help of Emscripten. Since then, LLVM has added its own support, and | ||
so, we have [added native wasm support to Rust]! It's using the | ||
`wasm32-experimental-emscripten` target. |
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 that's just what we decided to call it, not what the LLVM target is actually called.
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.
Yes, that was my intention. Any idea of how to word it better?
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.
This new target is named wasm32-experimental-emscripten
.
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 mentioning this I think we'd just want to set expectations by saying that it's an experimental target and doesn't even have nightly support right now. Furthermore this isn't even using our LLVM's backend support for WebAssembly but rather we still ship IR to emscripten (AFAIK) and then emscripten uses LLVM's WebAssembly backend.
All in all this may not be worth calling out :(
#### Library stabilizations | ||
|
||
There's nothing *super* exciting in libraries this release, just a number of solid | ||
improvements and continued stabilizing of APIs. |
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 this section should mention unstable sort, which is often faster than stable sort and actually works with just libcore too, unlike slice::sort.
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.
That wasn't in the release notes, can you link me to a PR?
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.
It is in the release notes:
The following APIs were also stabilized:
...
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.
ah sorry, i see now. yeah, sounds good!
We should mention this minor breaking change- rust-lang/rust#43782 (also backported to beta, so it will be in 1.20 stable):
|
_posts/2017-08-31-Rust-1.20.md
Outdated
Cargo has some nice upgrades this release. First of all, your crates.io | ||
authentication token used to be stored in `~/.cargo/config`. As a configuration | ||
file, this would often be stored with `644` permissions, that is, world-readable. | ||
But it has a secret token in it. We've [moved the token] `~/.cargo/credentials`, |
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 this should say "We've [moved the token] to ~/.cargo/credentials
"... it's not quite the pittsburghese dropping of "to be" that i might let you get away with ;)
_posts/2017-08-31-Rust-1.20.md
Outdated
file, this would often be stored with `644` permissions, that is, world-readable. | ||
But it has a secret token in it. We've [moved the token] `~/.cargo/credentials`, | ||
so that it can be permissioned `600`, and hidden from other users on your system. | ||
You'll get a warning if it's still in your `~/.cargo/config`. |
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.
This is not true, I just tried with rustc 1.21.0-beta.1/cargo 0.22.0-beta-- I had a token in both credentials and config and it used the ones in credentials but didn't print any warnings. There was some talk of warnings, but decided to not add them until this was stable, and I don't think that was ever implemented...?
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.
oops; I must have read the wrong summary comment :(
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.
Yeah once we make this stable release we'll start issuing warnings
_posts/2017-08-31-Rust-1.20.md
Outdated
|
||
### What's in 1.20.0 stable | ||
|
||
In Rust, you can define traits, structs, and enums that have "associated functions": |
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.
Maybe "you can already define"? That way it's clear this isn't a new feature.
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.
Oh yeah, that confused me as well.
_posts/2017-08-31-Rust-1.20.md
Outdated
We now [skip the main thread's manual stack guard on | ||
Linux](https://github.com/rust-lang/rust/pull/43072), due to mitigations in | ||
the kernel against [Stack | ||
Clash](https://access.redhat.com/security/vulnerabilities/stackguard). |
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.
Perhaps more importantly than this we may want to mention the support for stack probes here, basically saying that you're guaranteed a segfault on stack overflow on x86/x86_64, rather than having the possibility of jumping over the guard page. (again still motivated by the stack clash stuff)
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 wasn't sure if that was in this release or not since it didn't make the notes
LGTM modulo nits already posted. |
_posts/2017-08-31-Rust-1.20.md
Outdated
} | ||
``` | ||
|
||
much cleaner, and more versitile. |
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.
Typo: versatile
I believe I have addressed all review comments; please check it out before we tomorrow! |
73b5bf4
to
f2d1aba
Compare
r? @rust-lang/core
I modified our slogan slightly to see how it feels; we can change it back if it's not great.