Commit Graph

57813 Commits

Author SHA1 Message Date
bors
6d620843f6 Auto merge of #36341 - sagebind:thread_id, r=alexcrichton
Add ThreadId for comparing threads

This adds the capability to store and compare threads with the current calling thread via a new struct, `std:🧵:ThreadId`. Addresses the need outlined in issue #21507.

This avoids the need to add any special checks to the existing thread structs and does not rely on the system to provide an identifier for a thread, since it seems that this approach is unreliable and undesirable. Instead, this simply uses a lazily-created, thread-local `usize` whose value is copied from a global atomic counter. The code should be simple enough that it should be as much reliable as the `#[thread_local]` attribute it uses (however much that is).

`ThreadId`s can be compared directly for equality and have copy semantics.

Also see these other attempts:
- rust-lang/rust#29457
- rust-lang/rust#29448
- rust-lang/rust#29447

And this in the RFC repo: rust-lang/rfcs#1435
2016-10-10 04:04:51 -07:00
Jeffrey Seyfried
53fd3b0acc Avoid quadratic complexity. 2016-10-10 09:35:25 +00:00
Nicholas Nethercote
67a5444183 Merge Printer::token and Printer::size.
Logically, it's a vector of pairs, so might as well represent it that
way.

The commit also changes `scan_stack` so that it is initialized with the
default size, instead of the excessive `55 * linewidth` size, which it
usually doesn't get even close to reaching.
2016-10-10 16:19:53 +11:00
Nick Cameron
4df0f3f6a6 Error monitor should emit error to stderr instead of stdout 2016-10-10 18:14:45 +13:00
Nicholas Nethercote
b043e11de2 Avoid allocations in Decoder::read_str.
`opaque::Decoder::read_str` is very hot within `rustc` due to its use in
the reading of crate metadata, and it currently returns a `String`. This
commit changes it to instead return a `Cow<str>`, which avoids a heap
allocation.

This change reduces the number of calls to `malloc` by almost 10% in
some benchmarks.

This is a [breaking-change] to libserialize.
2016-10-10 10:36:35 +11:00
John Firebaugh
9d364267d6 Update E0303 to new error format 2016-10-09 11:41:59 -07:00
bors
a7bfb1aba9 Auto merge of #37055 - kali:master, r=alexcrichton
use MSG_NOSIGNAL on all relevant platforms

followup #36824
2016-10-09 10:07:39 -07:00
Mathieu Poumeyrol
14f9cbdfd5 use MSG_NOSIGNAL on all relevant platforms 2016-10-09 13:01:29 +02:00
Tobias Bucher
70dcfd634e Use try_into and move some functions 2016-10-09 10:49:05 +02:00
Tobias Bucher
f352f0eec0 Dynamically detect presence of p{read,write}64 on Android 2016-10-09 10:48:07 +02:00
Tobias Bucher
b3f2644b66 Implement reading and writing atomically at certain offsets
These functions allow to read from and write to a file in one atomic
action from multiple threads, avoiding the race between the seek and the
read.

The functions are named `{read,write}_at` on non-Windows (which don't
change the file cursor), and `seek_{read,write}` on Windows (which
change the file cursor).
2016-10-09 10:48:07 +02:00
bors
9d4d0da7af Auto merge of #36982 - GuillaumeGomez:slice_urls, r=frewsxcv
Add missing urls in slice doc module

r? @steveklabnik
2016-10-09 00:35:56 -07:00
Corey Farwell
e4f066fe8b Remove unnecessary pub function classifier. 2016-10-09 00:17:50 -04:00
Corey Farwell
ba20da1db7 Make ExternalHtml::load short-circuited. 2016-10-09 00:17:49 -04:00
Corey Farwell
7be14eea94 Refactor away load_or_return macro. 2016-10-09 00:17:46 -04:00
Srinivas Reddy Thatiparthy
bf5dfacdde
run rustfmt on librustc_lint folder 2016-10-09 09:38:07 +05:30
Corey Farwell
f410da5cbe Add doc comments describing fields on externalfiles::ExternalHtml. 2016-10-08 22:55:51 -04:00
bors
b98cc352cb Auto merge of #36637 - GuillaumeGomez:fix_run_button, r=bluss
Fixes run button appearing when it shouldn't

Fixes #36621.

r? @steveklabnik
2016-10-08 19:42:55 -07:00
Corey Farwell
fd073cf4a3 Don't construct PathBuf ownership if we don't need it. 2016-10-08 21:33:28 -04:00
bors
19ac57926a Auto merge of #37041 - tbu-:pr_less_sizet_casts, r=alexcrichton
Use less `size_t` casts in libstd since it's now defined as `usize`
2016-10-08 15:59:49 -07:00
bors
bff06afbc5 Auto merge of #37027 - alexcrichton:less-deps-in-bootstrap, r=japaric
rustbuild: Optimize build times slightly

As the entry point for building the Rust compiler, a good user experience hinges
on this compiling quickly to get to the meat of the problem. To that end use
`#[cfg]`-specific dependencies to avoid building Windows crates on Unix and drop
the `regex` crate for now which was easily replacable with some string
searching.
2016-10-08 12:36:11 -07:00
Alex Crichton
d17f0b0dd7 rustbuild: Optimize build times slightly
As the entry point for building the Rust compiler, a good user experience hinges
on this compiling quickly to get to the meat of the problem. To that end use
`#[cfg]`-specific dependencies to avoid building Windows crates on Unix and drop
the `regex` crate for now which was easily replacable with some string
searching.
2016-10-08 11:11:00 -07:00
Guillaume Gomez
89870b3305 Add missing urls in slice doc module 2016-10-08 18:08:32 +02:00
Guillaume Gomez
00098bd33b Add missing urls for hash modules 2016-10-08 18:05:18 +02:00
Tobias Bucher
717d2ddca7 Use less size_t casts in libstd since it's now defined as usize 2016-10-08 15:48:28 +02:00
bors
4344f147aa Auto merge of #37039 - Manishearth:rollup, r=Manishearth
Rollup of 6 pull requests

- Successful merges: #36937, #37016, #37028, #37029, #37031, #37034
- Failed merges: #37027
2016-10-08 05:55:27 -07:00
Florian Diebold
eb07a6cfd0 Add ICH test case for consts
Fixes #37000.
2016-10-08 14:44:51 +02:00
Florian Diebold
5a30f0c728 Add ICH test case for statics
Fixes #37001.
2016-10-08 14:43:50 +02:00
Manish Goregaokar
69f4126da5 Rollup merge of #37034 - nox:empty-trait-list, r=alexcrichton
Do not add an empty #[derive()] list in expand_derive (fixes #37033)
2016-10-08 16:52:44 +05:30
Manish Goregaokar
c1a19b8481 Rollup merge of #37031 - fitzgen:typo-in-gcc-rs-comment, r=alexcrichton
Fix a typo in a comment describing gcc.rs's eh_frame_registry module

s/reigster/register/

r? @alexcrichton
2016-10-08 16:52:43 +05:30
Manish Goregaokar
73a9b8accd Rollup merge of #37029 - japaric:no-panics-in-checked-ops, r=alexcrichton
rewrite checked_{div,rem} to no contain any reference to panics

even without optimizations

r? @alexcrichton
2016-10-08 16:52:43 +05:30
Manish Goregaokar
3e6cc822d3 Rollup merge of #37028 - alexcrichton:fix-deps, r=japaric
rustbuild: Fix dependencies of check-docs step

Some of the doc tests depend on `extern crate test`, so depend on libtest
instead of libstd here.
2016-10-08 16:52:43 +05:30
Manish Goregaokar
06c5bd5135 Rollup merge of #37016 - alexcrichton:workspaces, r=japaric
Leverage Cargo workspaces in rustbuild

This is a continuation of https://github.com/rust-lang/rust/pull/36032 which implements the change to use `cargo metadata` to learn about the crate graph.
2016-10-08 16:52:43 +05:30
Manish Goregaokar
1d204685a4 Rollup merge of #36937 - wesleywiser:patch-3, r=frewsxcv
Fix documentation for `write!` on `std::fmt` page

Fixes #36906
2016-10-08 16:52:43 +05:30
bors
b5fcca5cd7 Auto merge of #37015 - ahmedcharles:sudo, r=alexcrichton
Prevent accidentally running 'make install' as sudo.

r? @alexcrichton

I missed this in the previous PR, but this seems to work. It should probably go in a rollup, but I don't know how to do those. :/
2016-10-08 02:23:47 -07:00
bors
195dbfa098 Auto merge of #37014 - nnethercote:avoid-pat_to_string, r=arielb1
Avoid some `pat_to_string` calls.

`ty_of_method_or_bare_fn` currently calls `pat_to_string` even when it
doesn't need to. Fixing this avoids hundreds of large allocations (e.g.
171,600 bytes, in `mk_printer`) in several of rustc-benchmarks.
2016-10-07 22:51:04 -07:00
Jeffrey Seyfried
fbc96e18ad Persistent macro scopes. 2016-10-08 03:41:55 +00:00
bors
49be16e766 Auto merge of #37006 - brson:jsbackend, r=alexcrichton
Turn on JSBackend in the makefiles

This should make the nightlies work with emscripten. r? @alexcrichton

Closes #37004
2016-10-07 18:17:54 -07:00
Alex Crichton
147e2da13a rustbuild: Use cargo metadata to learn about DAG
This updates the commit to use workspaces to use `cargo metadata` instead of
hardcoded lists about what to test. This should help us be resilient to updates
in the future on behalf of the crate DAG and minimize the amount of files that
need to be touched.
2016-10-07 17:17:07 -07:00
Anthony Ramine
0d1ab4e9e4 Do not add an empty #[derive()] list in expand_derive (fixes #37033) 2016-10-08 01:49:11 +02:00
Stephen M. Coakley
032bffa5b8
Unlock guard before overflow panic 2016-10-07 17:45:04 -05:00
Nick Fitzgerald
75c0d3f657 Fix a typo in a comment describing gcc.rs's eh_frame_registry module
s/reigster/register/
2016-10-07 15:00:48 -07:00
Jeffrey Seyfried
a23bdd2769 Rename resolve::macros::{ExpansionData -> InvocationData}. 2016-10-07 21:54:37 +00:00
Jeffrey Seyfried
2cf964967c Immutable ExpansionData. 2016-10-07 21:54:05 +00:00
Jeffrey Seyfried
f3c7333f51 Cleanup depths. 2016-10-07 21:54:04 +00:00
Jeffrey Seyfried
21b4369322 Refactor away ext::expand::{expand_crate, expand_crate_with_expander}. 2016-10-07 21:54:04 +00:00
Jeffrey Seyfried
09e41b6784 Add macros from plugins in libsyntax_ext::register_builtins. 2016-10-07 21:54:03 +00:00
Jeffrey Seyfried
2df25adbed Combine std_inject::{no_core, no_std} into std_inject::injected_crate_name. 2016-10-07 21:54:01 +00:00
Michael Woerister
7fcc1246c6 llvm: Update LLVM to include fix for pathologic case in its LiveDebugValues pass. 2016-10-07 17:14:30 -04:00
Jorge Aparicio
c66ae29883 rewrite checked_{div,rem} to no contain any reference to panics
even without optimizations
2016-10-07 15:14:28 -05:00