]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoAdd tests
est31 [Mon, 23 Apr 2018 09:18:04 +0000 (11:18 +0200)]
Add tests

6 years ago'label can start expressions
est31 [Sun, 22 Apr 2018 11:34:42 +0000 (13:34 +0200)]
'label can start expressions

let foo = 'label: loop { break 'label 42; };

is valid Rust code.

6 years agoAuto merge of #50080 - klnusbaum:edition_49591, r=Manishearth
bors [Sat, 21 Apr 2018 05:28:21 +0000 (05:28 +0000)]
Auto merge of #50080 - klnusbaum:edition_49591, r=Manishearth

add --edition option

This adds an official `edition` flag to the rust compiler

6 years agofix two compile-fail tests that were still using -Zedition
Kurtis Nusbaum [Sat, 21 Apr 2018 01:51:59 +0000 (18:51 -0700)]
fix two compile-fail tests that were still using -Zedition

6 years agoAuto merge of #50056 - alexcrichton:update-cargo, r=Mark-Simulacrum
bors [Sat, 21 Apr 2018 00:50:12 +0000 (00:50 +0000)]
Auto merge of #50056 - alexcrichton:update-cargo, r=Mark-Simulacrum

Update the Cargo submodule

6 years agofix some small compile errors
Kurtis Nusbaum [Fri, 20 Apr 2018 21:47:23 +0000 (14:47 -0700)]
fix some small compile errors

6 years agoAuto merge of #50088 - alexcrichton:std-tweaks, r=sfackler
bors [Fri, 20 Apr 2018 20:40:59 +0000 (20:40 +0000)]
Auto merge of #50088 - alexcrichton:std-tweaks, r=sfackler

Tweak some stabilizations in libstd

This commit tweaks a few stable APIs in the `beta` branch before they hit
stable. The `str::is_whitespace` and `str::is_alphanumeric` functions were
deleted (added in #49381, issue at #49657). The `and_modify` APIs added
in #44734 were altered to take a `FnOnce` closure rather than a `FnMut` closure.

Closes #49581
Closes #49657

6 years agoAuto merge of #50119 - kennytm:rollup, r=kennytm
bors [Fri, 20 Apr 2018 16:45:19 +0000 (16:45 +0000)]
Auto merge of #50119 - kennytm:rollup, r=kennytm

Rollup of 7 pull requests

Successful merges:

 - #50031 (Clarified E0015 message.)
 - #50058 (Added build disk usage information)
 - #50081 (Update stdsimd submodule)
 - #50083 (wasm: Increase default stack size to 1MB)
 - #50104 (Disable auto-detection of libxml2 when compiling llvm.)
 - #50114 (Fix bad merge in #49991)
 - #50117 (must explicitly request file name when using with_file_name.)

Failed merges:

6 years agoRollup merge of #50117 - pnkfelix:fix-issue-50113, r=oli-obk
kennytm [Fri, 20 Apr 2018 15:45:44 +0000 (23:45 +0800)]
Rollup merge of #50117 - pnkfelix:fix-issue-50113, r=oli-obk

must explicitly request file name when using with_file_name.

Fix #50113

6 years agoRollup merge of #50114 - wesleywiser:patch-3, r=michaelwoerister
kennytm [Fri, 20 Apr 2018 15:45:43 +0000 (23:45 +0800)]
Rollup merge of #50114 - wesleywiser:patch-3, r=michaelwoerister

Fix bad merge in #49991

When I rebased #49991 on `master`, I messed up the merge for this line. I'm reverting this back to the way it was in f15e5c1.

r? @michaelwoerister

6 years agoRollup merge of #50104 - mixi:libxml2-llvm, r=alexcrichton
kennytm [Fri, 20 Apr 2018 15:45:42 +0000 (23:45 +0800)]
Rollup merge of #50104 - mixi:libxml2-llvm, r=alexcrichton

Disable auto-detection of libxml2 when compiling llvm.

This broke cross-compiling rustc with internal llvm (with both the host and target being executable on the machine), because llvm's build system detected libxml2 on the host, therefore auto-enabled libxml2 support, but wouldn't compile as the target didn't have libxml2 installed.

6 years agoRollup merge of #50083 - alexcrichton:increase-wasm-stack, r=michaelwoerister
kennytm [Fri, 20 Apr 2018 15:45:41 +0000 (23:45 +0800)]
Rollup merge of #50083 - alexcrichton:increase-wasm-stack, r=michaelwoerister

wasm: Increase default stack size to 1MB

This commit increases the dfeault stack size allocated to the
wasm32-unknown-unknown target to 1MB by default. Currently the default stack
size is one wasm page, or 64 kilobytes. This default stack is quite small and
has caused a stack overflow or two in the wild by accident.

The current "best practice" for fixing this is to pass `-Clink-args='-z
stack-size=$bigger'` but that's not great nor always easy to do. A default of
1MB matches more closely with other platforms where it's "pretty big" by
default.

Note that it was tested and if the users uses `-C link-args` to pass a custom
stack size that's still resepected as lld seems to take the first argument, and
where rustc is passing it will always be last.

6 years agoRollup merge of #50081 - GuillaumeGomez:stdsimd-update, r=alexcrichton
kennytm [Fri, 20 Apr 2018 15:45:39 +0000 (23:45 +0800)]
Rollup merge of #50081 - GuillaumeGomez:stdsimd-update, r=alexcrichton

Update stdsimd submodule

6 years agoRollup merge of #50058 - krk:patch-1, r=Mark-Simulacrum
kennytm [Fri, 20 Apr 2018 15:45:38 +0000 (23:45 +0800)]
Rollup merge of #50058 - krk:patch-1, r=Mark-Simulacrum

Added build disk usage information

Closes https://github.com/rust-lang/rust/issues/50019

6 years agoRollup merge of #50031 - krk:issue-46336, r=estebank
kennytm [Fri, 20 Apr 2018 15:45:37 +0000 (23:45 +0800)]
Rollup merge of #50031 - krk:issue-46336, r=estebank

Clarified E0015 message.

Closes https://github.com/rust-lang/rust/issues/46336

6 years agoUpdate the Cargo submodule
Alex Crichton [Wed, 18 Apr 2018 15:43:59 +0000 (08:43 -0700)]
Update the Cargo submodule

6 years agoFix #50113: must explicitly request file name when using with_file_name.
Felix S. Klock II [Fri, 20 Apr 2018 14:11:05 +0000 (16:11 +0200)]
Fix #50113: must explicitly request file name when using with_file_name.

6 years agoFix bad merge in #49991
Wesley Wiser [Fri, 20 Apr 2018 13:12:59 +0000 (09:12 -0400)]
Fix bad merge in #49991

When I rebased #49991 on `master`, I messed up the merge for this line. I'm reverting this back to the way it was in f15e5c1.

6 years agoAuto merge of #50062 - varkor:xpy-check-rustdoc, r=Mark-Simulacrum
bors [Fri, 20 Apr 2018 12:52:50 +0000 (12:52 +0000)]
Auto merge of #50062 - varkor:xpy-check-rustdoc, r=Mark-Simulacrum

Add rustdoc to x.py check

Modifying rustc can often cause errors in rustdoc, so it's useful to include it in the steps that are checked.

One thing that I was unsure about was when to call `clear_if_dirty` (both in this step, and in other steps in relation to this one) — we want to be sure rustdoc will always be rechecked after modifying previous steps — but does this belong in rustdoc, or the other steps?

Fixes #49917.

r? @Mark-Simulacrum

6 years agoAuto merge of #50052 - nnethercote:char_lit, r=Mark-Simulacrum
bors [Fri, 20 Apr 2018 10:40:25 +0000 (10:40 +0000)]
Auto merge of #50052 - nnethercote:char_lit, r=Mark-Simulacrum

Avoid allocating when parsing \u{...} literals.

`char_lit` uses an allocation in order to ignore '_' chars in \u{...}
literals. This patch changes it to not do that by processing the chars
more directly.

This improves various rustc-perf benchmark measurements by up to 6%,
particularly regex, futures, clap, coercions, hyper, and encoding.

rustc-perf results, on a stage 2 build with jemalloc disabled:

<details>

```
regex-check
avg: -5.4% min: -6.5% max: -2.7%
futures-check
avg: -3.5% min: -5.3% max: -1.7%
regex-opt
avg: -2.0% min: -5.1% max: -0.2%
regex
avg: -2.3% min: -5.0% max: -0.6%
futures-opt
avg: -3.0% min: -4.8% max: -1.1%
futures
avg: -3.1% min: -4.8% max: -1.3%
clap-rs-check
avg: -1.8% min: -3.5% max: -0.9%
coercions-check
avg: -2.0% min: -3.3% max: -1.0%
hyper-check
avg: -2.2% min: -3.1% max: -1.3%
hyper
avg: -1.3% min: -2.4% max: -0.3%
hyper-opt
avg: -0.9% min: -2.3% max: -0.1%
coercions
avg: -1.1% min: -2.2% max: -0.4%
encoding-check
avg: -1.7% min: -2.2% max: -0.9%
clap-rs-opt
avg: -0.7% min: -2.2% max: 0.0%
coercions-opt
avg: -1.2% min: -2.1% max: -0.3%
clap-rs
avg: -0.8% min: -1.9% max: -0.4%
encoding-opt
avg: -1.0% min: -1.9% max: -0.3%
encoding
avg: -1.1% min: -1.9% max: -0.4%
piston-image-check
avg: -0.7% min: -1.3% max: -0.3%
inflate-opt
avg: -0.3% min: -0.9% max: -0.0%
piston-image
avg: -0.3% min: -0.8% max: -0.1%
piston-image-opt
avg: -0.3% min: -0.7% max: -0.1%
syn-check
avg: -0.3% min: -0.6% max: -0.1%
deep-vector
avg: 0.1% min: -0.1% max: 0.5%
syn-opt
avg: -0.1% min: -0.4% max: 0.0%
html5ever
avg: -0.2% min: -0.4% max: -0.0%
deep-vector-check
avg: 0.0% min: -0.3% max: 0.3%
syn
avg: -0.2% min: -0.3% max: -0.1%
html5ever-check
avg: -0.3% min: -0.3% max: -0.2%
issue-46449-check
avg: -0.1% min: -0.2% max: 0.2%
html5ever-opt
avg: -0.0% min: -0.2% max: 0.1%
deep-vector-opt
avg: -0.0% min: -0.2% max: 0.1%
issue-46449-opt
avg: -0.0% min: -0.2% max: 0.1%
unify-linearly-check
avg: -0.0% min: -0.2% max: 0.1%
helloworld-check
avg: 0.0% min: -0.0% max: 0.2%
parser-check
avg: -0.0% min: -0.2% max: 0.0%
inflate
avg: 0.0% min: -0.0% max: 0.1%
tokio-webpush-simple-check
avg: -0.1% min: -0.1% max: -0.0%
regression-31157-check
avg: 0.0% min: -0.1% max: 0.1%
issue-46449
avg: 0.0% min: -0.1% max: 0.1%
tuple-stress-opt
avg: 0.0% min: -0.0% max: 0.1%
tuple-stress-check
avg: -0.0% min: -0.1% max: 0.1%
tuple-stress
avg: 0.0% min: -0.0% max: 0.1%
deeply-nested-check
avg: 0.0% min: -0.0% max: 0.1%
regression-31157
avg: -0.0% min: -0.1% max: 0.1%
deeply-nested-opt
avg: -0.0% min: -0.1% max: 0.1%
parser-opt
avg: -0.0% min: -0.1% max: 0.0%
parser
avg: 0.1% min: 0.0% max: 0.1%
tokio-webpush-simple
avg: -0.0% min: -0.1% max: 0.1%
regression-31157-opt
avg: -0.0% min: -0.1% max: 0.1%
helloworld-opt
avg: 0.0% min: -0.0% max: 0.1%
unify-linearly-opt
avg: 0.0% min: -0.0% max: 0.1%
unused-warnings-check
avg: 0.0% min: 0.0% max: 0.1%
tokio-webpush-simple-opt
avg: -0.0% min: -0.1% max: 0.0%
helloworld
avg: -0.0% min: -0.0% max: 0.1%
unused-warnings
avg: 0.0% min: -0.0% max: 0.0%
deeply-nested
avg: -0.0% min: -0.0% max: -0.0%
unused-warnings-opt
avg: 0.0% min: -0.0% max: 0.0%
unify-linearly
avg: 0.0% min: -0.0% max: 0.0%
inflate-check
avg: 0.0% min: -0.0% max: 0.0%
```

</details>

6 years agoDisable auto-detection of libxml2 when compiling llvm.
Johannes Nixdorf [Mon, 16 Apr 2018 17:32:19 +0000 (19:32 +0200)]
Disable auto-detection of libxml2 when compiling llvm.

6 years agoAuto merge of #49991 - wesleywiser:remove_hir_inlining, r=michaelwoerister
bors [Fri, 20 Apr 2018 08:22:47 +0000 (08:22 +0000)]
Auto merge of #49991 - wesleywiser:remove_hir_inlining, r=michaelwoerister

Remove HIR inlining

Fixes #49690

r? @michaelwoerister

6 years agoAuto merge of #50069 - alexcrichton:fix-proc-macro, r=nrc
bors [Fri, 20 Apr 2018 05:34:17 +0000 (05:34 +0000)]
Auto merge of #50069 - alexcrichton:fix-proc-macro, r=nrc

proc_macro: Stay on the "use the cache" path more

Discovered in #50061 we're falling off the "happy path" of using a stringified
token stream more often than we should. This was due to the fact that a
user-written token like `0xf` is equality-different from the stringified token
of `15` (despite being semantically equivalent).

This patch updates the call to `eq_unspanned` with an even more awful solution,
`probably_equal_for_proc_macro`, which ignores the value of each token and
basically only compares the structure of the token stream, assuming that the AST
doesn't change just one token at a time.

While this is a step towards fixing #50061 there is still one regression
from #49154 which needs to be fixed.

6 years agoadd EDITIONS_NAME_LIST, make edition tracked, enforce that only stable editions are...
Kurtis Nusbaum [Fri, 20 Apr 2018 04:03:21 +0000 (21:03 -0700)]
add EDITIONS_NAME_LIST, make edition tracked, enforce that only stable editions are allowed to be used on non-nightly builds

6 years agoAuto merge of #50051 - nnethercote:no-env-var, r=Mark-Simulacrum
bors [Fri, 20 Apr 2018 01:41:34 +0000 (01:41 +0000)]
Auto merge of #50051 - nnethercote:no-env-var, r=Mark-Simulacrum

Lazily evaluate EvalErrorKind::*.into() calls.

eval_context.rs calls `ok_or` in multiple places with an eagerly
evaluated `EvalErrorKind::*.into()` argument, which calls
EvalError::from(), which calls env::var("MIRI_BACKTRACE"), which
allocates a String. This code is hot enough for this to have a
measurable effect on some benchmarks.

This patch changes the `ok_or` calls into `ok_or_else`, thus avoiding
the evaluations when they're not needed. As a result, most of the
rustc-perf benchmarks get a measurable speedup, particularly the
shorter-running ones, where the improvement is as high as 6%.

Output from rustc-perf, comparing stage 2 builds with jemalloc disabled:

<details>

```
coercions
avg: -1.8% min: -6.0% max: -0.0%
helloworld-opt
avg: -3.7% min: -4.0% max: -3.4%
helloworld
avg: -3.7% min: -3.9% max: -3.5%
parser
avg: -3.5% min: -3.9% max: -3.1%
unify-linearly-opt
avg: -3.2% min: -3.8% max: -2.8%
unify-linearly
avg: -3.2% min: -3.7% max: -2.8%
parser-opt
avg: -3.2% min: -3.6% max: -2.8%
clap-rs
avg: -0.9% min: -3.6% max: 0.1%
encoding
avg: -1.9% min: -3.0% max: -1.2%
clap-rs-opt
avg: -0.8% min: -2.7% max: -0.1%
helloworld-check
avg: -1.9% min: -2.2% max: -1.7%
deeply-nested-check
avg: -1.4% min: -2.1% max: -0.9%
issue-46449-opt
avg: -0.7% min: -2.0% max: -0.3%
unify-linearly-check
avg: -1.5% min: -1.9% max: -1.2%
issue-46449
avg: -1.0% min: -1.8% max: -0.8%
deeply-nested-opt
avg: -0.7% min: -1.7% max: -0.2%
deeply-nested
avg: -1.0% min: -1.6% max: -0.6%
parser-check
avg: -1.3% min: -1.6% max: -0.8%
encoding-check
avg: -1.5% min: -1.6% max: -1.2%
tuple-stress
avg: -0.9% min: -1.5% max: 0.0%
tuple-stress-opt
avg: -1.0% min: -1.5% max: -0.3%
issue-46449-check
avg: -1.3% min: -1.4% max: -1.0%
encoding-opt
avg: -1.1% min: -1.2% max: -0.9%
regression-31157
avg: -0.7% min: -1.2% max: -0.2%
regression-31157-check
avg: -0.8% min: -1.2% max: -0.5%
futures-check
avg: -0.8% min: -1.2% max: -0.4%
unused-warnings-opt
avg: -1.0% min: -1.2% max: -0.9%
unused-warnings
avg: -1.0% min: -1.1% max: -0.9%
coercions-opt
avg: -0.6% min: -1.0% max: -0.2%
inflate-check
avg: -0.4% min: -0.9% max: -0.1%
regex-check
avg: -0.8% min: -0.9% max: -0.5%
piston-image-check
avg: -0.8% min: -0.9% max: -0.8%
deep-vector
avg: -0.3% min: -0.9% max: 0.1%
futures
avg: -0.5% min: -0.8% max: -0.2%
futures-opt
avg: -0.5% min: -0.7% max: -0.1%
html5ever
avg: -0.6% min: -0.7% max: -0.4%
tokio-webpush-simple-check
avg: -0.2% min: -0.7% max: 0.1%
piston-image-opt
avg: -0.3% min: -0.7% max: -0.1%
regex
avg: -0.4% min: -0.7% max: -0.1%
piston-image
avg: -0.4% min: -0.7% max: -0.2%
regex-opt
avg: -0.3% min: -0.7% max: 0.1%
tokio-webpush-simple-opt
avg: -0.2% min: -0.6% max: 0.0%
coercions-check
avg: -0.3% min: -0.6% max: -0.1%
hyper
avg: -0.4% min: -0.6% max: -0.2%
syn-opt
avg: -0.3% min: -0.6% max: -0.0%
hyper-check
avg: -0.5% min: -0.6% max: -0.3%
syn-check
avg: -0.4% min: -0.5% max: -0.2%
hyper-opt
avg: -0.3% min: -0.5% max: -0.1%
html5ever-opt
avg: -0.3% min: -0.5% max: -0.2%
syn
avg: -0.2% min: -0.4% max: -0.1%
deep-vector-opt
avg: -0.2% min: -0.4% max: 0.1%
tokio-webpush-simple
avg: -0.2% min: -0.4% max: -0.1%
inflate
avg: -0.2% min: -0.4% max: -0.1%
inflate-opt
avg: -0.2% min: -0.4% max: -0.0%
regression-31157-opt
avg: -0.1% min: -0.4% max: 0.0%
html5ever-check
avg: -0.3% min: -0.4% max: -0.2%
unused-warnings-check
avg: -0.2% min: -0.3% max: -0.2%
script-servo-check
avg: -0.1% min: -0.3% max: 0.0%
crates.io-check
avg: -0.2% min: -0.3% max: -0.0%
script-servo
avg: -0.1% min: -0.2% max: 0.0%
clap-rs-check
avg: 0.0% min: -0.1% max: 0.2%
deep-vector-check
avg: -0.0% min: -0.2% max: 0.2%
tuple-stress-check
avg: -0.1% min: -0.2% max: 0.0%
crates.io-opt
avg: -0.1% min: -0.2% max: 0.0%
crates.io
avg: -0.1% min: -0.2% max: -0.0%
script-servo-opt
avg: -0.0% min: -0.1% max: 0.0%
```

</details>

6 years agoRemove HIR inlining
Wesley Wiser [Sun, 15 Apr 2018 23:41:33 +0000 (19:41 -0400)]
Remove HIR inlining

Fixes #49690

6 years agoTweak some stabilizations in libstd
Alex Crichton [Thu, 19 Apr 2018 22:52:14 +0000 (15:52 -0700)]
Tweak some stabilizations in libstd

This commit tweaks a few stable APIs in the `beta` branch before they hit
stable. The `str::is_whitespace` and `str::is_alphanumeric` functions were
deleted (added in #49381, issue at #49657). The `and_modify` APIs added
in #44734 were altered to take a `FnOnce` closure rather than a `FnMut` closure.

Closes #49581
Closes #49657

6 years agoAuto merge of #48553 - seanmonstar:atomic-debug, r=alexcrichton
bors [Thu, 19 Apr 2018 23:08:16 +0000 (23:08 +0000)]
Auto merge of #48553 - seanmonstar:atomic-debug, r=alexcrichton

atomic: remove 'Atomic*' from Debug output

For the same reason that we don't show `Vec { data: [0, 1, 2, 3] }`, but just the array, the `AtomicUsize(1000)` is noisy, and seeing just `1000` is likely better.

6 years agowasm: Increase default stack size to 1MB
Alex Crichton [Thu, 19 Apr 2018 21:51:59 +0000 (14:51 -0700)]
wasm: Increase default stack size to 1MB

This commit increases the dfeault stack size allocated to the
wasm32-unknown-unknown target to 1MB by default. Currently the default stack
size is one wasm page, or 64 kilobytes. This default stack is quite small and
has caused a stack overflow or two in the wild by accident.

The current "best practice" for fixing this is to pass `-Clink-args='-z
stack-size=$bigger'` but that's not great nor always easy to do. A default of
1MB matches more closely with other platforms where it's "pretty big" by
default.

Note that it was tested and if the users uses `-C link-args` to pass a custom
stack size that's still resepected as lld seems to take the first argument, and
where rustc is passing it will always be last.

6 years agoUpdate stdsimd submodule
Guillaume Gomez [Thu, 19 Apr 2018 21:47:28 +0000 (23:47 +0200)]
Update stdsimd submodule

6 years agoadd --edition option
Kurtis Nusbaum [Thu, 19 Apr 2018 20:56:26 +0000 (13:56 -0700)]
add --edition option

6 years agoEnsure CleanTools is run for check rustdoc
varkor [Wed, 18 Apr 2018 23:45:18 +0000 (00:45 +0100)]
Ensure CleanTools is run for check rustdoc

6 years agoAdd rustdoc to x.py check
varkor [Wed, 18 Apr 2018 18:46:58 +0000 (19:46 +0100)]
Add rustdoc to x.py check

This can often encounter errors after modifying rustc, so it's useful to include it in the steps that are checked.

6 years agoAuto merge of #50020 - oli-obk:clippy, r=Manishearth
bors [Thu, 19 Apr 2018 16:39:57 +0000 (16:39 +0000)]
Auto merge of #50020 - oli-obk:clippy, r=Manishearth

Update clippy

r? @Manishearth

6 years agoAuto merge of #49900 - pnkfelix:compare-mode-nll-followup-3, r=nikomatsakis
bors [Thu, 19 Apr 2018 11:13:10 +0000 (11:13 +0000)]
Auto merge of #49900 - pnkfelix:compare-mode-nll-followup-3, r=nikomatsakis

Add src/test/ui regression testing for NLL

This PR changes `x.py test` so that when you are running the `ui` test suite, it will also always run `compiletest` in the new `--compare-mode=nll`, which just double-checks that when running under the experimental NLL mode, the output matches the `<source-name>.nll.stderr` file, if present.

In order to reduce the chance of a developer revolt in response to this change, this PR also includes some changes to make the `--compare-mode=nll` more user-friendly:

 1. It now generates nll-specific .stamp files, and uses them (so that repeated runs can reuse previously cached results).
 2. Each line of terminal output distinguishes whether we are running under `--compare-mode=nll` by printing with the prefix `[ui (nll)]` instead of just the prefix `[ui]`.

Subtask of rust-lang/rust#48879

6 years agoAuto merge of #49949 - oli-obk:const_signed_pat, r=eddyb
bors [Thu, 19 Apr 2018 08:41:35 +0000 (08:41 +0000)]
Auto merge of #49949 - oli-obk:const_signed_pat, r=eddyb

Sign extend constants in range patterns

fixes  #49940

r? @Mark-Simulacrum

6 years agoSign extend constants in range patterns
Oliver Schneider [Fri, 13 Apr 2018 16:31:15 +0000 (18:31 +0200)]
Sign extend constants in range patterns

6 years agoUpdate clippy
Oliver Schneider [Tue, 17 Apr 2018 06:50:56 +0000 (08:50 +0200)]
Update clippy

6 years agoAuto merge of #49890 - varkor:xpy-check-rustc_trans, r=alexcrichton
bors [Thu, 19 Apr 2018 06:19:27 +0000 (06:19 +0000)]
Auto merge of #49890 - varkor:xpy-check-rustc_trans, r=alexcrichton

Add rustc_trans to x.py check

r? @Mark-Simulacrum

I looked at `bootstrap/compile.rs` and `bootstrap/check.rs` to try to work out which steps were appropriate, but I'm sure I've overlooked some details here, so it's worth checking carefully I've got all the steps right (e.g. I wasn't sure whether we want to build LLVM if necessary with `x.py check`, though I thought it was probably better to than to not).

From a quick test, it seems to be working, though.

6 years agoAuto merge of #49630 - npmccallum:shl, r=alexcrichton
bors [Thu, 19 Apr 2018 03:53:32 +0000 (03:53 +0000)]
Auto merge of #49630 - npmccallum:shl, r=alexcrichton

Update Rhs on ShlAssign to default to Self

This matches the behavior on ShrAssign and all other *Assign operations.

6 years agoproc_macro: Stay on the "use the cache" path more
Alex Crichton [Thu, 19 Apr 2018 02:36:48 +0000 (19:36 -0700)]
proc_macro: Stay on the "use the cache" path more

Discovered in #50061 we're falling off the "happy path" of using a stringified
token stream more often than we should. This was due to the fact that a
user-written token like `0xf` is equality-different from the stringified token
of `15` (despite being semantically equivalent).

This patch updates the call to `eq_unspanned` with an even more awful solution,
`probably_equal_for_proc_macro`, which ignores the value of each token and
basically only compares the structure of the token stream, assuming that the AST
doesn't change just one token at a time.

While this is a step towards fixing #50061 there is still one regression
from #49154 which needs to be fixed.

6 years agoAuto merge of #50048 - glandium:issue50041, r=eddyb
bors [Thu, 19 Apr 2018 01:13:29 +0000 (01:13 +0000)]
Auto merge of #50048 - glandium:issue50041, r=eddyb

rustc_trans: also check dominators for SSA values in mir::analyze

Fixes #50041

6 years agoAvoid allocating when parsing \u{...} literals.
Nicholas Nethercote [Wed, 18 Apr 2018 04:09:27 +0000 (14:09 +1000)]
Avoid allocating when parsing \u{...} literals.

`char_lit` uses an allocation in order to ignore '_' chars in \u{...}
literals. This patch changes it to not do that by processing the chars
more directly.

This improves various rustc-perf benchmark measurements by up to 6%,
particularly regex, futures, clap, coercions, hyper, and encoding.

6 years agoAdd rerun-if-env-changed=RUST_CHECK to librustc_llvm
varkor [Wed, 18 Apr 2018 23:09:41 +0000 (00:09 +0100)]
Add rerun-if-env-changed=RUST_CHECK to librustc_llvm

6 years agoLazily evaluate EvalErrorKind::*.into() calls.
Nicholas Nethercote [Wed, 18 Apr 2018 22:56:27 +0000 (08:56 +1000)]
Lazily evaluate EvalErrorKind::*.into() calls.

eval_context.rs calls `ok_or` in multiple places with an eagerly
evaluated `EvalErrorKind::*.into()` argument, which calls
EvalError::from(), which calls env::var("MIRI_BACKTRACE"), which
allocates a String. This code is hot enough for this to have a
measurable effect on some benchmarks.

This patch changes the `ok_or` calls into `ok_or_else`, thus avoiding
the evaluations when they're not needed. As a result, most of the
rustc-perf benchmarks get a measurable speedup, particularly the
shorter-running ones, where the improvement is as high as 6%.

6 years agoAuto merge of #50022 - nrc:doc-analysis, r=mark-simulacrum
bors [Wed, 18 Apr 2018 22:30:00 +0000 (22:30 +0000)]
Auto merge of #50022 - nrc:doc-analysis, r=mark-simulacrum

Only emit save-analysis data for `cargo build` tasks

Previously, we were emittinng analysis data for all tasks, including `doc`. That meant we got two sets of save-analysis data, one from the normal build and one from the docs. That means indexing with the RLS took twice as long and made downloads larger and build times longer.

cc https://github.com/rust-lang-nursery/rls/issues/826

r? @Mark-Simulacrum

6 years agoAuto merge of #50017 - tinaun:stabilize-all-the-things, r=sfackler
bors [Wed, 18 Apr 2018 19:47:56 +0000 (19:47 +0000)]
Auto merge of #50017 - tinaun:stabilize-all-the-things, r=sfackler

stabilize a bunch of minor api additions

besides `ptr::NonNull::cast` (which is 4 days away from end of FCP) all of these have been finished with FCP for a few weeks now with minimal issues raised

* Closes #41020
* Closes #42818
* Closes #44030
* Closes #44400
* Closes #46507
* Closes #47653
* Closes #46344

the following functions will be stabilized in 1.27:
* `[T]::rsplit`
* `[T]::rsplit_mut`
* `[T]::swap_with_slice`
* `ptr::swap_nonoverlapping`
* `NonNull::cast`
* `Duration::from_micros`
* `Duration::from_nanos`
* `Duration::subsec_millis`
* `Duration::subsec_micros`
* `HashMap::remove_entry`

6 years agoAuto merge of #50006 - rcoh:reorder-compiler-builtins, r=oli-obk
bors [Wed, 18 Apr 2018 17:07:21 +0000 (17:07 +0000)]
Auto merge of #50006 - rcoh:reorder-compiler-builtins, r=oli-obk

Reorder injection of std to get better compilation error

Per #49851, reorder injection imports to get a better error message.

r? @oli-obk

6 years agoAdded build disk usage information
Kerem [Wed, 18 Apr 2018 17:06:05 +0000 (20:06 +0300)]
Added build disk usage information

Closes https://github.com/rust-lang/rust/issues/50019

6 years agoAuto merge of #49993 - nnethercote:shrink-Token, r=alexcrichton
bors [Wed, 18 Apr 2018 14:44:54 +0000 (14:44 +0000)]
Auto merge of #49993 - nnethercote:shrink-Token, r=alexcrichton

Change the hashcounts in raw `Lit` variants from usize to u16.

This reduces the size of `Token` from 32 bytes to 24 bytes on 64-bit
platforms.

6 years agoWhen running under compare-mode=nll, generate expected output to `foo.nll.stderr`
Felix S. Klock II [Wed, 18 Apr 2018 12:41:29 +0000 (14:41 +0200)]
When running under compare-mode=nll, generate expected output to `foo.nll.stderr`

This allows easy revision of the update-references.sh script (included
here) so that it can update the expected output for nll rather than
stderr. It also reminds the rustc developer via the filename that they
are looking at output generated under comapre-mode=nll.

One could argue that there is still a problem with the strategy encoded here:
if we reach a scenario where a change to the compiler brings the output
under AST and NLL modes back into sync, this code will continue to still
generate output to distinct `foo.stderr` and `foo.nll.stderr` files, and
will continue to copy those two files back to corresponding distinct
files in the source tree, even if the *content* of the two files is now the
same.

  * Arguably the "right thing" to do in that case is to remove the
    `foo.nll.stderr` file entirely.

  * However, I think the real answer is that we will probably want to
    double-check such cases by hand anyway. We should be regularly
    double-checking the diffs between `foo.stderr` and
    `foo.nll.stderr`, and if we see a zero-diff case, then we should
    evaluate whether that is correct, and if so, remove the file by
    hand.)

  * In any case, I think the default behavior encoded here (or at
    least *intended* to be encoded here) is superior to the
    alternative of *only* generating a `foo.nll.stderr` file if one
    already existed in the source tree at the time that `compiletest`
    was invoked (and otherwise unconditionally generating a
    `foo.stderr` file, as was the behavior prior to this commit),
    because that alternative is more likely to cause rustc developers
    to overwrite a `foo.stderr` file with the stderr output from a
    compare-mode=nll run, which will then break the *normal*
    `compiletest` run and probably be much more confusing for the
    average rustc developer.

6 years agoWorkaround rust-lang/rust#49998 by opting into experimental `-Z nll-subminimal-causes...
Felix S. Klock II [Wed, 18 Apr 2018 12:27:58 +0000 (14:27 +0200)]
Workaround rust-lang/rust#49998 by opting into experimental `-Z nll-subminimal-causes` flag

This commit only applies the flag to the one test case,
ui/span/dropck_vec_cycle_checked.rs, that absolutely needs it. Without
the flag, that test takes an unknown amount of time (greater than 1
minute) to compile. But its possible that other tests would also
benefit from the flag, and we may want to make it the default (after
evaluating its impact on other tests).

In terms of its known impact on other tests, I have only evaluated the
ui tests, and the *only* ui test I have found that the flag impacts
(running under NLL mode, of course), is src/test/ui/nll/issue-31567.rs

In particular:

```
% ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc ../src/test/ui/nll/issue-31567.rs
error[E0597]: `*v.0` does not live long enough
  --> ../src/test/ui/nll/issue-31567.rs:22:26
   |
22 |     let s_inner: &'a S = &*v.0; //~ ERROR `*v.0` does not live long enough
   |                          ^^^^^ borrowed value does not live long enough
23 |     &s_inner.0
24 | }
   | - borrowed value only lives until here
   |
note: borrowed value must be valid for the lifetime 'a as defined on the function body at 21:1...
  --> ../src/test/ui/nll/issue-31567.rs:21:1
   |
21 | fn get_dangling<'a>(v: VecWrapper<'a>) -> &'a u32 {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0597`.
% ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc ../src/test/ui/nll/issue-31567.rs  -Z nll-subminimal-causes
error[E0597]: `*v.0` does not live long enough
  --> ../src/test/ui/nll/issue-31567.rs:22:26
   |
22 |     let s_inner: &'a S = &*v.0; //~ ERROR `*v.0` does not live long enough
   |                          ^^^^^ borrowed value does not live long enough
23 |     &s_inner.0
24 | }
   | -
   | |
   | borrowed value only lives until here
   | borrow later used here, when `v` is dropped

error: aborting due to previous error

For more information about this error, try `rustc --explain E0597`.
%
```

6 years agoWork around rust-lang/rust#49998 with experimental code that does less updating of...
Felix S. Klock II [Wed, 18 Apr 2018 12:22:08 +0000 (14:22 +0200)]
Work around rust-lang/rust#49998 with experimental code that does less updating of cause map.

This seems to avoid poor scaling on src/test/ui/span/dropck_vec_cycle_checked.rs

6 years agoRemoved `.nll.stderr` files that currently match their corresponding `.stderr` files.
Felix S. Klock II [Wed, 18 Apr 2018 13:30:38 +0000 (15:30 +0200)]
Removed `.nll.stderr` files that currently match their corresponding `.stderr` files.

6 years agoTrivial updates to `.nll.stderr` files post-rebase, reflecting s/-Znll/nll/ in messages.
Felix S. Klock II [Wed, 18 Apr 2018 13:34:31 +0000 (15:34 +0200)]
Trivial updates to `.nll.stderr` files post-rebase, reflecting s/-Znll/nll/ in messages.

6 years agoUpdate the previously checkpointed (but unused by bors) tests to reflect current...
Felix S. Klock II [Thu, 12 Apr 2018 10:25:29 +0000 (12:25 +0200)]
Update the previously checkpointed (but unused by bors) tests to reflect current reality.

6 years agoGenerate separate stamp files for `--compare-mode=nll`, and also use them. :)
Felix S. Klock II [Wed, 11 Apr 2018 15:28:14 +0000 (17:28 +0200)]
Generate separate stamp files for `--compare-mode=nll`, and also use them. :)

6 years agoChange output of `compiletest` to include the compare-mode when present.
Felix S. Klock II [Wed, 11 Apr 2018 15:18:22 +0000 (17:18 +0200)]
Change output of `compiletest` to include the compare-mode when present.

E.g. when running with `--compare-mode=nll`, then each test line will
look like e.g.:

```
test [ui (nll)] ui/issue-10969.rs ... ok
```

6 years agoExpand `x.py test` to also run with `--compare-mode=nll` on src/test/ui suite.
Felix S. Klock II [Wed, 11 Apr 2018 15:15:59 +0000 (17:15 +0200)]
Expand `x.py test` to also run with `--compare-mode=nll` on src/test/ui suite.

6 years agoAuto merge of #49981 - nox:fix-signed-niches, r=eddyb
bors [Wed, 18 Apr 2018 12:22:11 +0000 (12:22 +0000)]
Auto merge of #49981 - nox:fix-signed-niches, r=eddyb

Properly handle ranges of signed enums using both extremums (fixes #49973)

Fixes #49973.

6 years agorustc_trans: also check dominators for SSA values in mir::analyze.
Eduard-Mihai Burtescu [Sat, 17 Feb 2018 15:46:15 +0000 (17:46 +0200)]
rustc_trans: also check dominators for SSA values in mir::analyze.

Fixes #50041

6 years agoReplace Build with Builder
varkor [Wed, 18 Apr 2018 09:56:04 +0000 (10:56 +0100)]
Replace Build with Builder

6 years agoDo not rebuild LLVM for x.py check
varkor [Tue, 17 Apr 2018 23:50:41 +0000 (00:50 +0100)]
Do not rebuild LLVM for x.py check

6 years agoAbstract LLVM building from bootstrap
varkor [Thu, 12 Apr 2018 14:51:55 +0000 (15:51 +0100)]
Abstract LLVM building from bootstrap

This deduplicates the LLVM building functionality from compile.rs and check.rs.

6 years agoCorrect the timestamp for CodegenBackend check
varkor [Wed, 11 Apr 2018 23:34:49 +0000 (00:34 +0100)]
Correct the timestamp for CodegenBackend check

6 years agoAdd rustc_trans to x.py check
varkor [Wed, 11 Apr 2018 22:36:42 +0000 (23:36 +0100)]
Add rustc_trans to x.py check

6 years agoAuto merge of #49349 - Zoxc:sync-errors, r=michaelwoerister
bors [Wed, 18 Apr 2018 08:29:14 +0000 (08:29 +0000)]
Auto merge of #49349 - Zoxc:sync-errors, r=michaelwoerister

Make Handler more thread-safe

The use of `code_emitted` to suppress extended explanations is not thread safe. I'm not sure why we keep the documentation for errors outside `diagnostics.rs` anyway. It would be better to add a `teach` method to `DiagnosticsBuilder`, so instead of:
```
if self.tcx.sess.teach(&err.get_code().unwrap()) {
    err.note("...");
}
```
we'd use `err.teach("...")`

cc @estebank

r? @michaelwoerister

6 years agoClarified E0015 message, r=estebank
krk [Tue, 17 Apr 2018 15:59:27 +0000 (18:59 +0300)]
Clarified E0015 message, r=estebank

6 years agoAuto merge of #49972 - Mark-Simulacrum:remove-build, r=alexcrichton
bors [Wed, 18 Apr 2018 05:54:21 +0000 (05:54 +0000)]
Auto merge of #49972 - Mark-Simulacrum:remove-build, r=alexcrichton

Remove uses of Build across Builder steps

This is purely a code cleanup; there should be no functional changes.

r? @alexcrichton

6 years agoAuto merge of #49969 - mark-i-m:allocator_fmt, r=estebank
bors [Wed, 18 Apr 2018 03:35:55 +0000 (03:35 +0000)]
Auto merge of #49969 - mark-i-m:allocator_fmt, r=estebank

Various rustfmt and commenting changes

These are factored out of #49320

There aren't actually any changes in functionality, just rustfmt and doccomments.

6 years agoRemove uses of Build across Builder steps
Mark Simulacrum [Sat, 14 Apr 2018 23:27:57 +0000 (17:27 -0600)]
Remove uses of Build across Builder steps

6 years agoAuto merge of #49950 - Zoxc:default-span, r=estebank
bors [Wed, 18 Apr 2018 01:04:04 +0000 (01:04 +0000)]
Auto merge of #49950 - Zoxc:default-span, r=estebank

Improve query cycle error message

r? @michaelwoerister

6 years agoAuto merge of #50036 - nrc:update, r=alexcrichton
bors [Tue, 17 Apr 2018 21:56:50 +0000 (21:56 +0000)]
Auto merge of #50036 - nrc:update, r=alexcrichton

Update Rustfmt

Fixes RLS and Rustfmt and enables a new nightly

r? @alexcrichton

6 years agoUpdate Rustfmt
Nick Cameron [Tue, 17 Apr 2018 20:21:19 +0000 (08:21 +1200)]
Update Rustfmt

6 years agoAuto merge of #49904 - michaelwoerister:no-debug-attr, r=alexcrichton
bors [Tue, 17 Apr 2018 19:26:25 +0000 (19:26 +0000)]
Auto merge of #49904 - michaelwoerister:no-debug-attr, r=alexcrichton

Work around LLVM debuginfo problem in librustc_driver.

Works around a problem (https://github.com/rust-lang/rust/issues/48910) with global variable debuginfo generation for `rustc_driver::get_trans::LOAD` by applying `#[no_debug]` to it (which just disables debuginfo generation for that variable). This way we can build the compiler with debuginfo again.

Since the problem is also present in beta, this workaround might have to be backported.

r? @alexcrichton

6 years agoAuto merge of #50033 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Tue, 17 Apr 2018 16:51:55 +0000 (16:51 +0000)]
Auto merge of #50033 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 4 pull requests

Successful merges:

 - #49699 (Removed 'proc' from the reserved keywords list)
 - #49966 (Multiple query search)
 - #50013 (Remove no longer necessary comparison to Vec::splice.)
 - #50032 (rustdoc: Don't include private paths in all.html)

Failed merges:

6 years agoRollup merge of #50032 - ollie27:rustdoc_all_private, r=GuillaumeGomez
Guillaume Gomez [Tue, 17 Apr 2018 16:43:17 +0000 (18:43 +0200)]
Rollup merge of #50032 - ollie27:rustdoc_all_private, r=GuillaumeGomez

rustdoc: Don't include private paths in all.html

For example the `std` [`all.html`](https://doc.rust-lang.org/nightly/std/all.html) includes references to the `coresimd` module which is a private implementation detail.

r? @GuillaumeGomez

6 years agoRollup merge of #50013 - frewsxcv:frewsxcv-ssplice, r=GuillaumeGomez
Guillaume Gomez [Tue, 17 Apr 2018 16:43:16 +0000 (18:43 +0200)]
Rollup merge of #50013 - frewsxcv:frewsxcv-ssplice, r=GuillaumeGomez

Remove no longer necessary comparison to Vec::splice.

`String::replace_range` was previously called `String::splice`, so this
note was necessary to differentiate it from the `Vec` method. Now that
it's renamed, this note no longer seems necessary.

6 years agoRollup merge of #49966 - GuillaumeGomez:comma-search, r=QuietMisdreavus
Guillaume Gomez [Tue, 17 Apr 2018 16:43:15 +0000 (18:43 +0200)]
Rollup merge of #49966 - GuillaumeGomez:comma-search, r=QuietMisdreavus

Multiple query search

Part of #49757.

r? @QuietMisdreavus

6 years agoRollup merge of #49699 - zesterer:master, r=joshtriplett
Guillaume Gomez [Tue, 17 Apr 2018 16:43:13 +0000 (18:43 +0200)]
Rollup merge of #49699 - zesterer:master, r=joshtriplett

Removed 'proc' from the reserved keywords list

Remove 'proc' from the reserved keywords list.

'proc' is a very useful identifier name for a lot of things. It's especially useful when dealing with processes, operating system internals, and kernel development.

6 years agoTurn some comments into doccomments
Mark Mansi [Sat, 14 Apr 2018 01:05:01 +0000 (20:05 -0500)]
Turn some comments into doccomments

6 years agorun rustfmt on rustc_driver/driver.rs
Mark Mansi [Sat, 14 Apr 2018 01:04:38 +0000 (20:04 -0500)]
run rustfmt on rustc_driver/driver.rs

6 years agoRun rustfmt
Mark Mansi [Fri, 13 Apr 2018 20:58:16 +0000 (15:58 -0500)]
Run rustfmt

6 years agoMake one_time_diagnostics thread-safe
John Kåre Alsaker [Sun, 1 Apr 2018 06:22:40 +0000 (08:22 +0200)]
Make one_time_diagnostics thread-safe

6 years agoMake Handler more thread-safe
John Kåre Alsaker [Sat, 3 Mar 2018 05:20:26 +0000 (06:20 +0100)]
Make Handler more thread-safe

6 years agoAuto merge of #49836 - nikomatsakis:nll-facts-prep, r=pnkfelix
bors [Tue, 17 Apr 2018 14:23:57 +0000 (14:23 +0000)]
Auto merge of #49836 - nikomatsakis:nll-facts-prep, r=pnkfelix

prep work for using timely dataflow with NLL

Two major changes:

**Two-phase borrows are overhauled.** We no longer have two bits per borrow. Instead, we track -- for each borrow -- an (optional) "activation point". Then, for each point P where the borrow is in scope, we check where P falls relative to the activation point. If P is between the reservation point and the activation point, then this is the "reservation" phase of the borrow, else the borrow is considered active. This is simpler and means that the dataflow doesn't have to care about 2-phase at all, at last not yet.

**We no longer support using the MIR borrow checker without NLL.** It is going to be increasingly untenable to support lexical mode as we go forward, I think, and also of increasingly little value. This also exposed a few bugs in NLL mode due to increased testing.

r? @pnkfelix
cc @bobtwinkles

6 years agoClean up attribute handling in create_function_debug_context().
Michael Woerister [Thu, 12 Apr 2018 12:52:43 +0000 (14:52 +0200)]
Clean up attribute handling in create_function_debug_context().

6 years agoUse #[no_debug] to work around LLVM problem with rustc_driver::get_trans::LOAD.
Michael Woerister [Thu, 12 Apr 2018 12:53:50 +0000 (14:53 +0200)]
Use #[no_debug] to work around LLVM problem with rustc_driver::get_trans::LOAD.

6 years agoSupport #[no_debug] for global variables.
Michael Woerister [Thu, 12 Apr 2018 12:52:09 +0000 (14:52 +0200)]
Support #[no_debug] for global variables.

6 years agoAdd #[no_debug] to trans_fn_attrs() query.
Michael Woerister [Thu, 12 Apr 2018 12:51:10 +0000 (14:51 +0200)]
Add #[no_debug] to trans_fn_attrs() query.

6 years agoAuto merge of #49626 - fanzier:chalk-lowering, r=scalexm
bors [Tue, 17 Apr 2018 11:31:19 +0000 (11:31 +0000)]
Auto merge of #49626 - fanzier:chalk-lowering, r=scalexm

Implement Chalk lowering rule Normalize-From-Impl

This extends the Chalk lowering pass with the "Normalize-From-Impl" rule for generating program clauses from a trait definition as part of #49177.

r? @nikomatsakis

6 years agoOnly emit save-analysis data for `cargo build` tasks
Nick Cameron [Tue, 17 Apr 2018 09:31:33 +0000 (21:31 +1200)]
Only emit save-analysis data for `cargo build` tasks

Previously, we were emittinng analysis data for all tasks, including `doc`. That meant we got two sets of save-analysis data, one from the normal build and one from the docs. That means indexing with the RLS took twice as long and made downloads larger and build times longer.

cc https://github.com/rust-lang-nursery/rls/issues/826

6 years agoAuto merge of #49542 - GuillaumeGomez:intra-link-resolution-error, r=GuillaumeGomez
bors [Tue, 17 Apr 2018 09:02:03 +0000 (09:02 +0000)]
Auto merge of #49542 - GuillaumeGomez:intra-link-resolution-error, r=GuillaumeGomez

Add warning if a resolution failed

r? @QuietMisdreavus

6 years agoAuto merge of #49882 - Zoxc:sync-misc2, r=michaelwoerister
bors [Tue, 17 Apr 2018 06:46:31 +0000 (06:46 +0000)]
Auto merge of #49882 - Zoxc:sync-misc2, r=michaelwoerister

More thread-safety changes

r? @michaelwoerister

6 years agostabilize `hash_map_remove_entry` feature
tinaun [Tue, 17 Apr 2018 05:06:29 +0000 (01:06 -0400)]
stabilize `hash_map_remove_entry` feature

6 years agostabilize `nonnull_cast` feature
tinaun [Tue, 17 Apr 2018 04:59:16 +0000 (00:59 -0400)]
stabilize `nonnull_cast` feature

6 years agostabilize `duration_extras` feature
tinaun [Tue, 17 Apr 2018 04:56:20 +0000 (00:56 -0400)]
stabilize `duration_extras` feature

6 years agostabilize `duration_from_micros` feature
tinaun [Tue, 17 Apr 2018 04:43:48 +0000 (00:43 -0400)]
stabilize `duration_from_micros` feature

6 years agostabilize `swap_with_slice` feature
tinaun [Tue, 17 Apr 2018 04:40:07 +0000 (00:40 -0400)]
stabilize `swap_with_slice` feature

6 years agostabilize `swap_nonoverlapping` feature
tinaun [Tue, 17 Apr 2018 04:36:13 +0000 (00:36 -0400)]
stabilize `swap_nonoverlapping` feature