| Age | Commit message (Collapse) | Author | Lines |
|
Individualize feature gates for const fn invocation
This PR changes the meaning of `#![feature(const_fn)]` so it is only required to declare a const fn but not to call one. Based on discussion at #24111. I was hoping we could have an FCP here in order to move that conversation forward.
This sets the stage for future stabilization of the constness of several functions in the standard library (listed below), so could someone please tag the lang team for review.
- `std::cell`
- `Cell::new`
- `RefCell::new`
- `UnsafeCell::new`
- `std::mem`
- `size_of`
- `align_of`
- `std::ptr`
- `null`
- `null_mut`
- `std::sync`
- `atomic`
- `Atomic{Bool,Ptr,Isize,Usize}::new`
- `once`
- `Once::new`
- primitives
- `{integer}::min_value`
- `{integer}::max_value`
Some other functions are const but they are also unstable or hidden, e.g. `Unique::new` so they don't have to be considered at this time.
After this stabilization, the following `*_INIT` constants in the standard library can be deprecated. I wasn't sure whether to include those deprecations in the current PR.
- `std::sync`
- `atomic`
- `ATOMIC_{BOOL,ISIZE,USIZE}_INIT`
- `once`
- `ONCE_INIT`
|
|
|
|
|
|
Right now we comiple rustdoc in stage 2 and the error index in stage 0, which
ends up compiling rustdoc twice! To avoid compiling rustdoc twice (which takes
awhile) let's just compile it once in stage 2.
|
|
Compile fail stable
Since #30726, we never made the `compile_fail` flag nor the error code check stable. I think it's time to change this fact.
r? @alexcrichton
|
|
Clarify return type of `String::from_utf16_lossy`.
Fixes https://github.com/rust-lang/rust/issues/32874
|
|
"avoid" is a better word here than "disable"
You don't "disable" the warning really, you just avoid it (as a conscious action).
|
|
r=alexcrichton
stabilize tcpstream_connect_timeout (closes #43079)
|
|
Remove unneeded `loop`.
None
|
|
update "since" for discriminant_value
It's [going](https://github.com/rust-lang/rust/pull/44263#issuecomment-329257597) to be backported to beta.
r? @alexcrichton
|
|
Openoptions docs
r? @QuietMisdreavus
|
|
Fix example in transmute; add safety requirement to Vec::from_raw_parts
This fixes the second bullet point on #44281 and also removes some incorrect information.
|
|
Fix drain_filter doctest.
Fixes #44499.
Also change some of the hidden logic in the doctest as a regression test; two bugs in the original would now cause test failure.
|
|
Add an example of std::str::encode_utf16
Closes #44419
|
|
Add doc example to str::from_boxed_utf8_unchecked
Fixes #44463.
|
|
Added an example for `std::str::into_boxed_bytes()`
This solves issue #44423.
|
|
Add doc examples to str::from_utf8_unchecked_mut
Fixes #44461
|
|
Add short doc examples for str::from_utf8_mut
Fixes #44462
|
|
Add doc example to String::as_mut_str
Fixes #44429.
|
|
Add `impl From<Vec<Span>> for MultiSpan`.
A simple `impl`.
r? @nrc
|
|
update mdbook
This eliminates some warnings
r? @alexcrichton
|
|
Clarify the behavior of UDP sockets wrt. multiple addresses in `connect`
CC @frewsxcv #22569 #44209
|
|
rustdoc: extend UdpSocket API doc (#657)
see https://github.com/carllerche/mio/issues/657
|
|
Implement named threads on Windows (v2)
https://msdn.microsoft.com/en-us/library/windows/desktop/mt774976(v=vs.85).aspx
Windows 10 version 1607 finally added a sensible API for naming threads, so we can now implement named threads without having to use MSVC compiler extensions like before. VS2017s debugger and the WPA profiler already use this API where available, but other tools may need some time to catch up.

|
|
rustdoc: Don't counts ids twice when using --enable-commonmark
cc @GuillaumeGomez
r? @QuietMisdreavus
|
|
Fix rendering of const keyword for functions
Fixes #44187.
r? @QuietMisdreavus
|
|
Explicitly run perl for OpenSSL Configure
OpenSSL's Configure script is missing a shebang. On some platforms,
execve falls back to execution with the shell. Some other platforms,
like musl, will fail with an exec format error. Avoid this by calling
perl explicitly (since it's a perl script).
|
|
Fixes https://github.com/rust-lang/rust/issues/32874
|
|
This commit removes the `dep_graph` field from the `Session` type according to
issue #44390. Most of the fallout here was relatively straightforward and the
`prepare_session_directory` function was rejiggered a bit to reuse the results
in the later-called `load_dep_graph` function.
Closes #44390
|
|
|
|
|
|
|
|
Analyse storage liveness and preserve it during generator transformation
This uses a dataflow analysis on `StorageLive` and `StorageDead` statements to infer where the storage of locals are live. The result of this analysis is intersected with the regular liveness analysis such that a local is can only be live when its storage is. This fixes https://github.com/rust-lang/rust/issues/44184. If the storage of a local is live across a suspension point, we'll insert a `StorageLive` statement for it after the suspension point so storage liveness is preserved. This fixes https://github.com/rust-lang/rust/issues/44179.
r? @arielb1
|
|
Remove deprecated lang items
They have been deprecated for years and there is no trace left of them in the compiler. Also removed `require_owned_box` which is dead code and other small refactorings.
|
|
Add the libstd-modifications needed for the L4Re target
This commit adds the needed modifications to compile the std crate for the L4 Runtime environment (L4Re).
A target for the L4Re was introduced in commit: c151220a84e40b65e45308cc0f3bbea4466d3acf
In many aspects implementations for linux also apply for the L4Re microkernel.
Some uncommon characteristics had to be resolved:
* L4Re has no network funktionality
* L4Re has a maximum stacksize of 1Mb for threads
* L4Re has no uid or gid
Co-authored-by: Sebastian Humenda <sebastian.humenda@tu-dresden.de>
|
|
|
|
Parse nested closure with two consecutive parameter lists properly
This is a followup of #44332.
---
Currently, in nightly, this does not compile:
```rust
fn main() {
let f = |_||x, y| x+y;
println!("{}", f(())(1, 2)); // should print 3
}
```
`|_||x, y| x+y` should be parsed as `|_| (|x, y| x+y)`, but the parser didn't accept `||` between `_` and `x`. This patch fixes the problem.
r? @petrochenkov
|
|
It's going to be backported to beta.
|
|
|
|
|
|
|
|
|
|
Extend E0623 for fn items
This fixes #44516
The below example now gives
```
error[E0623]: lifetime mismatch
--> gg.rs:3:10
|
2 | fn foo(x:fn(&u8, &u8), y: Vec<&u8>, z: &u8) {
| --- --- these two types are declared with different lifetimes...
3 | y.push(z);
| ^ ...but data from `z` flows into `y` here
error: aborting due to previous error
```
r? @nikomatsakis
cc @arielb1
|
|
|
|
|
|
Short and sweet
|
|
|
|
Small refactorings
|
|
It's unused and unnecessary
|
|
Fix end region emission order
Fix #43481
|