| Age | Commit message (Collapse) | Author | Lines |
|
These'll upload to dev first and we'll promote them to stable later this week
when we actually do the release.
|
|
|
|
[beta] Bump prerelease version
|
|
|
|
|
|
Operand: 72 -> 24 B
Statement: 192 -> 96 B
Terminator: 256 -> 112 B
librustc translation memory usage: 1795 -> 1669 MB
next step would be interning lvalues, I suppose?
|
|
Beta backports
Backports of:
- #41913 (or some of it)
- #41937
- #41716
- #41563
|
|
Fixes #40417
|
|
Fixes #41849. Problem was that evaluating the constant expression
required evaluating a trait, which would equate types, which would
request variance information, which it would then discard. However,
computing the variance information would require determining the type of
a field, which would evaluate the constant expression.
(This problem will potentially arise *later* as we move to more sophisticated
constants, however, where we need to check subtyping. We can tackle that
when we come to it.)
|
|
This seems both to be a safe, conservative choice,
and it sidesteps the cycle in #41936.
Fixes #41936.
|
|
The new messages seem universally better. I think these result because
we recognize that we are in an invariant context more often.
|
|
|
|
|
|
|
|
Closes #38863
Closes #38980
Closes #38903
Closes #36648
|
|
|
|
Hopefully this is the last PR needed.
Fixes #41726.
Fixes #41742.
Fixes #41774.
|
|
Fixes #41604.
|
|
|
|
|
|
Some accesses in OperandPairs were missing. Fixes #41479.
|
|
`try_index_step` does not resolve type variables by itself and would
fail otherwise. Also harden the failure path in `confirm` to cause less
confusing errors.
|
|
I compiled this on PPC to check and it seems to work, but not sure whether I didn't mess up
anything in a major way.
Maybe a good shot at #41443
|
|
Routine update from the dev-static urls to the static urls, updating dates as
well. Should be the same artifacts.
|
|
* Update the cargo submodule
* Update the stage0 bootstrap compiler, temporarily downloading it from
dev-static.rust-lang.org until it's released this Thursday.
* Update release channel being compiled to beta
* Disable the RLS release (will only happen on this one beta release)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
traits::select: quickly filter out predicates from other traits
this improves most pre-trans passes's performance by ~1%.
That missed the spring cleaning PR because I wanted to ship it.
r? @eddyb
|
|
This avoids visiting the fields of all structs multiple times, improving
item-bodies checking time by 10% (!).
|
|
this improves most pre-trans passes's performance by ~1%.
|
|
|
|
|
|
|
|
|
|
Remove items that are unstable and deprecated
This removes unstable items that have been deprecated for more than one cycle.
- Since 1.16.0, `#![feature(enumset)]`
- All of `mod collections::enum_set`
- Since 1.15.0, `#![feature(borrow_state)]`
- `cell::BorrowState`
- `RefCell::borrow_state()`
- Since 1.15.0, `#![feature(is_unique)]`
- `Rc::is_unique()` (made private like `Arc::is_unique()`)
- Since 1.15.0, `#![feature(rc_would_unwrap)]`
- `Rc::would_wrap()`
- Since 1.13.0, `#![feature(binary_heap_extras)]`
- `BinaryHeap::push_pop()`
- `BinaryHeap::replace()`
- Since 1.12.0, `#![feature(as_unsafe_cell)]`
- `Cell::as_unsafe_cell()`
- `RefCell::as_unsafe_cell()`
- Since 1.12.0, `#![feature(map_entry_recover_keys)]`
- `btree_map::OccupiedEntry::remove_pair()`
- `hash_map::OccupiedEntry::remove_pair()`
- Since 1.11.0, `#![feature(float_extras)]`
- `Float::nan()`
- `Float::infinity()`
- `Float::neg_infinity()`
- `Float::neg_zero()`
- `Float::zero()`
- `Float::one()`
- `Float::integer_decode()`
- `f32::integer_decode()`
- `f32::ldexp()`
- `f32::frexp()`
- `f32::next_after()`
- `f64::integer_decode()`
- `f64::ldexp()`
- `f64::frexp()`
- `f64::next_after()`
- Since 1.11.0, `#![feature(zero_one)]`
- `num::Zero`
- `num::One`
|
|
|
|
Performance audit, Spring 2017
Fix up some quite important performance "surprises" I've found running callgrind on rustc.
|
|
In some cases (e.g. <[int-var] as Add<[int-var]>>), selection can turn up
a large number of candidates. Bailing out early avoids O(n^2) performance.
This improves item-type checking time by quite a bit, resulting in ~2% of total
time-to-typeck.
|
|
this is another one of these things that looks *much* worse on valgrind.
|
|
this improves trans performance by *another* 10%.
|
|
improves trans performance by *another* 10%.
|
|
this avoids parsing item attributes on each call to `item_attrs`, which takes
off 33% (!) of translation time and 50% (!) of trans-item collection time.
|
|
That method is *incredibly* hot, so this ends up saving 10% of trans
time.
BTW, we really should be doing dependency tracking there - and possibly be
taking the respective perf hit (got to find a way to make DTMs fast), but
`layout_cache` is a non-dep-tracking map.
|
|
this improves typeck & trans performance by 1%. This looked hotter on
callgrind than it is on a CPU.
|
|
This improves LLVM performance by 10% lost during the shimmir transition.
|
|
Re-enable hoedown by default
r? @rust-lang/docs
cc @aturon
|