Commit Graph

79830 Commits

Author SHA1 Message Date
Simon Sapin
15bb6c431d liballoc docs: Remove “not intended for general usage” 2018-06-29 14:01:33 +02:00
Simon Sapin
c7638edf52 Rename alloc::arc to alloc::sync, to match std::sync 2018-06-29 14:01:33 +02:00
Simon Sapin
3394fb7bb7 Remove the Vec and String reexports at the root of the alloc crate
… since `std` has no corresponding reexports.

Use `alloc::vec::Vec` and `alloc::string::String` instead.
2018-06-29 14:01:33 +02:00
Simon Sapin
b0547cea0a Move core::alloc::CollectionAllocErr to alloc::collections 2018-06-29 14:01:33 +02:00
Simon Sapin
121b57b87a Move some alloc crate top-level items to a new alloc::collections module
This matches std::collections
2018-06-29 14:01:33 +02:00
Simon Sapin
26324d0abe Remove the unstable alloc::allocator module reexport, deprecated since 1.27 2018-06-29 14:01:33 +02:00
Simon Sapin
1acbb0a935 Make raw_vec perma-unstable and hidden 2018-06-29 14:01:33 +02:00
bors
6e5e63a48c Auto merge of #50526 - moxian:just-fix, r=alexcrichton
Add a fallback for stacktrace printing for older Windows versions.

Some time ago we switched stack inspection functions of dbghelp.dll to their newer alternatives that also capture inlined context.
Unfortunately, said new alternatives are not present in older dbghelp.dll versions.
In particular Windows 7 at the time of writing has dbghelp.dll version 6.1.7601 from 2010, that lacks StackWalkEx and friends.

Tested on my Windows 7 - both msvc and gnu versions produce a readable stacktrace.

Fixes #50138
2018-06-29 09:42:40 +00:00
bors
2eb6969c6a Auto merge of #51290 - Pslydhh:master, r=alexcrichton
park/park_timeout: prohibit spurious wakeups in next park

<pre><code>
// The implementation currently uses the trivial strategy of a Mutex+Condvar
// with wakeup flag, which does not actually allow spurious wakeups.
</pre></code>

Because does not actually allow spurious wakeups.
so we have let thread.inner.cvar.wait(m) in the loop to prohibit spurious wakeups.
but if notified after we locked, this notification doesn't be consumed, it return, the next park will consume this notification...this is also 'spurious wakeup' case, 'one unpark() wakeups two  park()'.

We should improve this situation:
`thread.inner.state.store(EMPTY, SeqCst);`
2018-06-29 07:34:13 +00:00
bors
3b50455c61 Auto merge of #50357 - seanmonstar:arc-weak-null, r=KodrAus
Arc: remove unused allocation from Weak::new()

It seems non-obvious that calling `Weak::new()` actually allocates space for the entire size of `T`, even though you can **never** access that data from such a constructed weak pointer. Besides that, if someone were to create many `Weak:new()`s, they could be unknowingly wasting a bunch of memory.

This change makes it so that `Weak::new()` allocates no memory at all. Instead, it is created with a null pointer. The only things done with a `Weak` are trying to upgrade, cloning, and dropping, meaning there are very few places that the code actually needs to check if the pointer is null.
2018-06-29 04:09:02 +00:00
bors
775ce97497 Auto merge of #51592 - GuillaumeGomez:fix-macro-doc-search, r=GuillaumeGomez
Fix macro missing from doc search

Fixes #51095.

r? @QuietMisdreavus
2018-06-29 01:05:02 +00:00
bors
57dd722606 Auto merge of #51884 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 6 pull requests

Successful merges:

 - #51636 (Refactor error reporting of constants)
 - #51765 (Use assert_eq! in copy_from_slice)
 - #51822 (Provide existing ref suggestions for more E0308 errors)
 - #51839 (Detect overflows of non u32 shifts)
 - #51868 (Remove process::id from 'Stabilized APIs' in 1.27.0 release notes)
 - #51875 (Explicitely disable WASM code generation for Emscripten)

Failed merges:

r? @ghost
2018-06-28 22:20:14 +00:00
Mark Rousskov
3332c0c7e1
Rollup merge of #51875 - badboy:emscripten-no-wasm, r=nikomatsakis
Explicitely disable WASM code generation for Emscripten

Emscripten changed the default behavior recently:
bd050e64bb/ChangeLog.markdown (v1381-05172018)

It now defaults to WebAssembly and requires an explicit flag to generate asm.js.
WASM=0 is also valid for older emcc and thus doesn't break it.
2018-06-28 16:07:16 -06:00
Mark Rousskov
7c0dd79e02
Rollup merge of #51868 - Lireer:master, r=pietroalbini
Remove process::id from 'Stabilized APIs' in 1.27.0 release notes

process::id was already stabilized in 1.26.0 and is marked as such in the docs.
2018-06-28 16:07:15 -06:00
Mark Rousskov
7b8fc87733
Rollup merge of #51839 - oli-obk:const_shift_overflow, r=nikomatsakis
Detect overflows of non u32 shifts
2018-06-28 16:07:14 -06:00
Mark Rousskov
e0179dfdce
Rollup merge of #51822 - estebank:suggest-more, r=nikomatsakis
Provide existing ref suggestions for more E0308 errors
2018-06-28 16:07:13 -06:00
Mark Rousskov
85804f66be
Rollup merge of #51765 - jonas-schievink:patch-1, r=KodrAus
Use assert_eq! in copy_from_slice

This will print both lengths when the assertion fails instead of just saying that they're different.

Output of current stable and nightly (modulo the exact line number):
```
thread 'main' panicked at 'destination and source slices have different lengths', libcore/slice/mod.rs:1645:9
```

Output after this PR:
```
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `123`,
 right: `456`: destination and source slices have different lengths', libcore/slice/mod.rs:1645:9
```

Note that I have not run the tests locally.
2018-06-28 16:07:12 -06:00
Mark Rousskov
57aceeecc0
Rollup merge of #51636 - oli-obk:const_diagnostics, r=eddyb
Refactor error reporting of constants

cc @eddyb

This PR should not change any behaviour. It solely simplifies the internal handling of the errors
2018-06-28 16:07:10 -06:00
moxian
be7f619870 Change traits to bare FnMut where possible. 2018-06-28 21:57:08 +00:00
moxian
9d426ac387 Make msvc symbol extraction/printing functions generic. 2018-06-28 21:57:03 +00:00
moxian
a0b15012a1 Make stackwalking generic instead of matching on enum variants. 2018-06-28 21:56:58 +00:00
moxian
c0b280f5f5 Load backtrace-related functions only once
.. and pass them around in BacktraceContext.
2018-06-28 21:56:53 +00:00
moxian
3245a475ab Split separate stackwalk variants into their own functions
.. rather than having them be one giant match statement.
2018-06-28 21:56:48 +00:00
moxian
d39c66bf4f Add a fallback for stacktrace printing for older Windows versions.
PR #47252 switched stack inspection functions of dbghelp.dll
to their newer alternatives that also capture inlined context.
Unfortunately, said new alternatives are not present in older
dbghelp.dll versions.
In particular Windows 7 at the time of writing has dbghelp.dll
version 6.1.7601 from 2010, that lacks StackWalkEx and friends.

Fixes #50138
2018-06-28 21:56:42 +00:00
Sean McArthur
24ce259782 Arc: remove unused allocation from Weak::new() 2018-06-28 11:49:47 -07:00
Esteban Küber
54a04b3b03 Provide existing ref suggestions for more E0308 errors 2018-06-28 11:37:15 -07:00
bors
e3bf634e06 Auto merge of #51687 - japaric:gh51671, r=alexcrichton
translate / export weak lang items

see #51671 for details

fixes #51671
fixes #51342

r? @michaelwoerister or @alexcrichton
2018-06-28 15:34:17 +00:00
bors
5d95db34a4 Auto merge of #51630 - joshlf:map-split-perf, r=dtolnay
Optimize RefCell refcount tracking

Address the performance concern raised in https://github.com/rust-lang/rust/pull/51466#issuecomment-398255276

cc @dtolnay  @nnethercote @rust-lang/wg-compiler-performance

cc @RalfJung @jhjourdan for soundness concerns

Can somebody kick off a perf run on this? I'm not sure how that's done, but I understand it has to be started manually.

The idea of this change is to switch to representing mutable refcount as values below 0 to eliminate some branching that was required with the old algorithm.
2018-06-28 13:23:07 +00:00
Jan-Erik Rediger
8983ff5226 Explicitely disable WASM code generation for Emscripten
Emscripten changed the default behavior recently:
bd050e64bb/ChangeLog.markdown (v1381-05172018)

It now defaults to WebAssembly and requires an explicit flag to generate asm.js.
WASM=0 is also valid for older emcc and thus doesn't break it.

Closes #51856
2018-06-28 15:02:38 +02:00
bors
9f79d2f86a Auto merge of #50997 - michaelwoerister:pre-analyze-filemaps, r=Mark-Simulacrum
Make FileMap::{lines, multibyte_chars, non_narrow_chars} non-mutable.

This PR removes most of the interior mutability from `FileMap`, which should be beneficial, especially in a multithreaded setting. This is achieved by initializing the state in question when the filemap is constructed instead of during lexing. Hopefully this doesn't degrade performance.

cc @wesleywiser
2018-06-28 11:20:41 +00:00
Lireer
fc8f852ebe
Remove process::id from 'Stabilized APIs' in 1.27 2018-06-28 11:30:53 +02:00
Oliver Schneider
2a55d2fc45 Rebase fallout 2018-06-28 11:19:45 +02:00
bors
d84ad59710 Auto merge of #51492 - petrochenkov:hirident, r=eddyb
Use `Ident`s in HIR and remove emulation of hygiene with gensyms

continuation of https://github.com/rust-lang/rust/pull/51072, part of https://github.com/rust-lang/rust/issues/49300

Not all `Name`s in HIR are replaced with `Ident`s, only those needed for hygiene or already having attached spans.
2018-06-28 09:16:10 +00:00
Oliver Schneider
4d473300a2 Turn the use of erroneous constants into errors again 2018-06-28 11:04:26 +02:00
Oliver Schneider
4eea1a4e5e Don't const propagate the body of constants 2018-06-28 11:04:25 +02:00
Oliver Schneider
4bb9648b27 Merge ConstVal and ConstValue 2018-06-28 11:04:25 +02:00
Oliver Schneider
221a499bf1 Fixup 2018-06-28 11:02:31 +02:00
Oliver Schneider
05994779ea Move everything over from middle::const_val to mir::interpret 2018-06-28 11:02:31 +02:00
Oliver Schneider
6005b0ad2f Move the Lrc outside the error type and name the fields 2018-06-28 11:01:35 +02:00
Oliver Schneider
6e5951c734 Remove unused type 2018-06-28 11:01:35 +02:00
Oliver Schneider
57e190c850 Address review comments 2018-06-28 11:01:35 +02:00
Oliver Schneider
6f8fe4eaef Eliminate old CTFE's ErrKind 2018-06-28 11:01:35 +02:00
Oliver Schneider
58fdac638e Simplify const error reporting 2018-06-28 11:01:35 +02:00
Michael Woerister
a1f8a6ce80 Fix FileMap::line_begin_pos().
The method relied on the FileMap still being under construction in
order for it to do what the name promises. It's now independent of
the current state.
2018-06-28 10:46:04 +02:00
Vadim Petrochenkov
d7072b5bb4 Fix rebase 2018-06-28 11:04:51 +03:00
Vadim Petrochenkov
554b4282d8 incremental: Do not hash spans for things that didn't have spans previously 2018-06-28 11:04:51 +03:00
Vadim Petrochenkov
d5e9dffddf Support delegation in stable hashing macros 2018-06-28 11:04:50 +03:00
Vadim Petrochenkov
f0622dfe5d Use Idents for associated item definitions in HIR
Remove emulation of hygiene with gensyms
2018-06-28 11:04:50 +03:00
Vadim Petrochenkov
c6ca1e4abd Use Idents in a number of structures in HIR
Namely: labels, type parameters, bindings in patterns, parameter names in functions without body.
All of these do not need hygiene after lowering to HIR, only span locations.
2018-06-28 11:04:50 +03:00
Vadim Petrochenkov
e8215a4f6f Use Idents for path segments in HIR 2018-06-28 11:04:50 +03:00