Commit Graph

59267 Commits

Author SHA1 Message Date
Guillaume Gomez
7fe17f96d5 Add doc examples for UnixStream 2016-12-08 09:43:33 -08:00
Guillaume Gomez
9976f5f7c5 Add missing doc examples for SocketAddr struct 2016-12-08 09:38:43 -08:00
bors
535b6d397f Auto merge of #38214 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 9 pull requests

- Successful merges: #38085, #38123, #38151, #38153, #38158, #38163, #38186, #38189, #38208
- Failed merges:
2016-12-07 19:46:23 +00:00
Guillaume Gomez
ef45ec0a24 Rollup merge of #38225 - Cobrand:patch-1, r=GuillaumeGomez
Update book/ffi to use catch_unwind

r? @GuillaumeGomez

The doc mentioned to spawn a new thread instead of using catch_unwind, which has been the recommended way to catch panics for foreign function interfaces for a few releases now.

This commit fixes that.
2016-12-07 10:42:52 -08:00
Guillaume Gomez
4fb89b1d9e Rollup merge of #38189 - GuillaumeGomez:rc_links, r=frewsxcv
Add missing links to Rc doc

r? @frewsxcv
2016-12-07 10:42:52 -08:00
Guillaume Gomez
ccbeb6d6ab Rollup merge of #38186 - frewsxcv:default, r=GuillaumeGomez
Add docs for last undocumented `Default` `impl`.

Add doc comment for `Default` `impl` on `DefaultHasher`.

Fixes https://github.com/rust-lang/rust/issues/36265.
2016-12-07 10:42:52 -08:00
Guillaume Gomez
0b0e7ecd40 Rollup merge of #38163 - durka:patch-33, r=bluss
reference: fix definition of :tt

The reference says that $x:tt matches "either side of the `=>` in macro_rules` which is technically true but completely uninformative. This changes that bullet point to what the book says (a single token or sequence of token trees inside brackets).
2016-12-07 10:42:52 -08:00
Guillaume Gomez
073351c3c3 Rollup merge of #38153 - GuillaumeGomez:typo, r=bluss
Fix small typo
2016-12-07 10:42:51 -08:00
Guillaume Gomez
99d9be903c Rollup merge of #38151 - GuillaumeGomez:exit-examples, r=frewsxcv
Add examples for exit function

r? @frewsxcv
2016-12-07 10:42:51 -08:00
Guillaume Gomez
ff8faedf0c Rollup merge of #38123 - GuillaumeGomez:panic_doc, r=frewsxcv
Add missing examples for panicking objects

r? @frewsxcv
2016-12-07 10:42:51 -08:00
Guillaume Gomez
494f686263 Rollup merge of #38085 - estebank:empty-import-list-fix-38012, r=jseyfried
Warn when an import list is empty

For a given file

```rust
use std::*;
use std::{};
```

output the following warnings

```
warning: unused import: `use std::{};`, #[warn(unused_imports)] on by default
 --> file.rs:2:1
  |
2 | use std::{};
  | ^^^^^^^^^^^^

warning: unused import: `std::*;`, #[warn(unused_imports)] on by default
 --> file.rs:1:5
  |
1 | use std::*;
  |     ^^^^^^^
```
2016-12-07 10:42:51 -08:00
Cobrand
614b74c24b Update book/ffi to use catch_unwind
r? @GuillaumeGomez

The doc mentioned to spawn a new thread instead of using catch_unwind, which has been the recommended way to catch panics for foreign function interfaces for a few releases now.
2016-12-07 18:43:07 +01:00
bors
209308439a Auto merge of #38105 - ollie27:rustdoc_deterministic_js, r=GuillaumeGomez
rustdoc: Sort lines in search index and implementors js

This means the files are generated deterministically even with rustdoc running in parallel.

Fixes the first part of #30220.
2016-12-07 16:32:48 +00:00
bors
7846610470 Auto merge of #37817 - alexcrichton:rustbuild-default, r=brson
mk: Switch rustbuild to the default build system

This commit switches the default build system for Rust from the makefiles to
rustbuild. The rustbuild build system has been in development for almost a year
now and has become quite mature over time. This commit is an implementation of
the proposal on [internals] which slates deletion of the makefiles on
2017-02-02.

[internals]: https://internals.rust-lang.org/t/proposal-for-promoting-rustbuild-to-official-status/4368

This commit also updates various documentation in `README.md`,
`CONTRIBUTING.md`, `src/bootstrap/README.md`, and throughout the source code of
rustbuild itself.
2016-12-07 12:09:11 +00:00
Alex Crichton
0e272de69f mk: Switch rustbuild to the default build system
This commit switches the default build system for Rust from the makefiles to
rustbuild. The rustbuild build system has been in development for almost a year
now and has become quite mature over time. This commit is an implementation of
the proposal on [internals] which slates deletion of the makefiles on
2016-01-02.

[internals]: https://internals.rust-lang.org/t/proposal-for-promoting-rustbuild-to-official-status/4368

This commit also updates various documentation in `README.md`,
`CONTRIBUTING.md`, `src/bootstrap/README.md`, and throughout the source code of
rustbuild itself.

Closes #37858
2016-12-07 00:30:23 -08:00
bors
5938eba4e3 Auto merge of #38149 - bluss:is-empty, r=alexcrichton
Forward more ExactSizeIterator methods and `is_empty` edits

- Forward ExactSizeIterator methods in more places, like `&mut I` and `Box<I>` iterator impls.
- Improve `VecDeque::is_empty` itself (see commit 4)
- All the collections iterators now have `len` or `is_empty` forwarded if doing so is a benefit. In the remaining cases, they already use a simple size hint (using something like a stored `usize` value), which is sufficient for the default implementation of len and is_empty.
2016-12-07 07:15:31 +00:00
bors
02ea82ddb8 Auto merge of #38144 - clarcharr:redundant, r=alexcrichton
Remove redundant assertion near is_char_boundary

Follow-up from #38056. `is_char_boundary` already checks for `idx <= len`, so, an extra assertion is redundant.
2016-12-07 03:54:14 +00:00
Corey Farwell
3cd98685e4 Add doc comment for Default impl on DefaultHasher. 2016-12-06 14:45:04 -10:00
bors
3fef221514 Auto merge of #38134 - bluss:iter-nth, r=aturon
Remove Self: Sized from Iterator::nth

It is an unnecessary restriction; nth neither needs self to be sized
nor needs to be exempted from the trait object.

It increases the utility of the nth method, because type specific
implementations are available through `&mut I` or through an iterator
trait object.

It is a backwards compatible change due to the special cases of the
`where Self: Sized` bound; it was already optional to include this bound
in `Iterator` implementations.
2016-12-07 00:30:25 +00:00
bors
5f128ed10f Auto merge of #38017 - arthurprs:hm-extend, r=bluss
Smarter HashMap/HashSet pre-allocation for extend/from_iter

HashMap/HashSet from_iter and extend are making totally different assumptions.

A more balanced decision may allocate half the lower hint (rounding up). For "well defined" iterators this effectively limits the worst case to two resizes (the initial reserve + one resize).

cc #36579
cc @bluss
2016-12-06 21:05:31 +00:00
bors
b5d0f90929 Auto merge of #38036 - Mark-Simulacrum:polish-2, r=nagisa,eddyb
Simplify calling find_implied_output_region.

@nnethercote added the optimization that find_implied_output_region
takes a closure as an optimization in #37014, but passing an iterator is
simpler, and more ergonomic for callers.
2016-12-06 17:38:26 +00:00
bors
1842efbae4 Auto merge of #37994 - upsuper:msvc-link-opt, r=alexcrichton
Don't apply msvc link opts for non-opt build

`/OPT:REF,ICF` sometimes takes lots of time. It makes no sense to apply them when doing debug build. MSVC's linker by default disables these optimizations when `/DEBUG` is specified, unless they are explicitly passed.
2016-12-06 14:16:49 +00:00
Mark-Simulacrum
cc6edb2726 Simplify calling find_implied_output_region.
@nnethercote added the optimization that find_implied_output_region
takes a closure as an optimization in #37014, but passing an iterator is
simpler, and more ergonomic for callers.
2016-12-06 06:59:07 -07:00
bors
1692c0b587 Auto merge of #37973 - vadimcn:dllimport, r=alexcrichton
Implement RFC 1717

Implement the first two points from #37403.

r? @alexcrichton
2016-12-06 10:54:45 +00:00
arthurprs
2c5d2403d7 Smarter HashMap/HashSet extend 2016-12-06 10:14:59 +01:00
bors
ff261d3a6b Auto merge of #38097 - Mark-Simulacrum:fn-sig-slice, r=eddyb
Refactor ty::FnSig to contain a &'tcx Slice<Ty<'tcx>>

We refactor this in order to achieve the following wins:

 - Decrease the size of `FnSig` (`Vec` + `bool`: 32, `&Slice` + `bool`: 24).
 - Potentially decrease total allocated memory due to arena-allocating `FnSig` inputs/output; since they are allocated in the type list arena, other users of type lists can reuse the same allocation for an equivalent type list.
 - Remove the last part of the type system which needs drop glue (#37965 removed the other remaining part). This makes arenas containing `FnSig` faster to drop (since we don't need to drop a Vec for each one), and makes reusing them without clearing/dropping potentially possible.

r? @eddyb
2016-12-06 07:35:21 +00:00
Mark-Simulacrum
296ec5f9b7 Refactor FnSig to contain a Slice for its inputs and outputs. 2016-12-05 22:33:38 -07:00
Mark-Simulacrum
1eab19dba8 Refactor ty::FnSig to privatize all fields 2016-12-05 22:22:49 -07:00
bors
f7c93c07b8 Auto merge of #38128 - cardoe:req-cmake-only-for-llvm, r=alexcrichton
configure: only req CMake if we're building LLVM

CMake is only necessary if LLVM is going to be built and not in any
other case.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-12-06 03:45:49 +00:00
Guillaume Gomez
5caec61a7f Add missing links to Rc doc 2016-12-05 18:33:03 -08:00
Esteban Küber
58e70e7b14 Warn when an import list is empty
For a given file

```rust
use std::*;
use std::{};
```

output the following warnings

```
warning: unused import: `use std::{};`, #[warn(unused_imports)] on by default
 --> file.rs:2:1
  |
2 | use std::{};
  | ^^^^^^^^^^^^

warning: unused import: `std::*;`, #[warn(unused_imports)] on by default
 --> file.rs:1:5
  |
1 | use std::*;
  |     ^^^^^^^
```
2016-12-05 17:20:08 -08:00
Vadim Chugunov
7d05d1e7f0 Consider only libs that aren't excluded by #[link(cfg=...)] 2016-12-05 16:44:27 -08:00
Vadim Chugunov
b700dd35e7 Annotate more tests with kind="static" 2016-12-05 16:40:43 -08:00
bors
09991241fd Auto merge of #38121 - jonathandturner:better_e0061, r=nikomatsakis
Point arg num mismatch errors back to their definition

This PR updates the arg num errors (like E0061) to point back at the function definition where they were defined.

Before:

```
error[E0061]: this function takes 2 parameters but 1 parameter was supplied
  --> E0061.rs:18:7
   |
18 |     f(0);
   |       ^
   |
   = note: the following parameter types were expected:
   = note: u16, &str
```

Now:

```
error[E0061]: this function takes 2 parameters but 1 parameter was supplied
  --> E0061.rs:18:7
   |
11 | fn f(a: u16, b: &str) {}
   | ------------------------ defined here
...
18 |     f(0);
   |       ^ expected 2 parameters
```

This is an incremental improvement.  We probably want to underline only the function name and also have support for functions defined in crates outside of the current crate.

r? @nikomatsakis
2016-12-06 00:17:24 +00:00
bors
daf8c1dfce Auto merge of #38117 - michaelwoerister:hidden-symbols, r=alexcrichton
Improve symbol visibility handling for dynamic libraries.

This will hopefully fix issue https://github.com/rust-lang/rust/issues/37530 and maybe also https://github.com/rust-lang/rust/issues/32887.

I'm relying on @m4b to post some numbers on how awesome the improvement for cdylibs is `:)`

cc @rust-lang/compiler @rust-lang/tools @cuviper @froydnj
r? @alexcrichton
2016-12-05 20:53:04 +00:00
bors
06b8d1d361 Auto merge of #38111 - japaric:jemalloc, r=alexcrichton
don't rebuild alloc_jemalloc if jemalloc's .git directory has changed

the .git directory is modified by `bootstrap` when it updates this git
submodule; this triggered rebuilds every time `bootstrap` was called.

likely fixes #38094

r? @alexcrichton
2016-12-05 17:37:40 +00:00
Michael Woerister
8ecdc4ee3b Make symbol-visibility test case work on all platforms. 2016-12-05 11:05:25 -05:00
Michael Woerister
3548c8f560 Mention cdylibs in LTO error message. 2016-12-05 11:05:25 -05:00
Michael Woerister
93da4f81bf Export the plugin registrar from proc-macro crates (and not much else) 2016-12-05 11:05:25 -05:00
Michael Woerister
ea9f61353a Add test case for symbol visibility in dylibs. 2016-12-05 11:05:25 -05:00
Michael Woerister
bfd4910fa2 Linking: Include export lists in debug output. 2016-12-05 11:05:25 -05:00
Michael Woerister
e48160f6e4 Generate a version script for linkers on Linux. 2016-12-05 11:05:25 -05:00
Michael Woerister
133aeacf2f Refactor symbol export list generation. 2016-12-05 11:05:25 -05:00
Michael Woerister
5fd7c2bfef trans: Rename reachable to exported_symbols where appropriate. 2016-12-05 11:05:25 -05:00
Michael Woerister
d1a6d47f94 Make LLVM symbol visibility FFI types more stable. 2016-12-05 11:05:25 -05:00
bors
d346dbc938 Auto merge of #38107 - keeperofdakeys:proc-macro-test, r=alexcrichton
Allow --test to be used on proc-macro crates

Fixes #37480

This patch allows `--test` to work for proc-macro crates, removing the previous error.
2016-12-05 14:27:06 +00:00
bors
692d7cfb0c Auto merge of #38100 - nox:llvm, r=alexcrichton
Update llvm fork to 3ec14daffb4b8c0604df50b7fb0ab552f456e381
2016-12-05 10:04:25 +00:00
bors
b4f4b65f99 Auto merge of #38098 - luser:windows-commandext, r=alexcrichton
Add std::os::windows::process::CommandExt. Fixes #37827

This adds a CommandExt trait for Windows along with an implementation of it
for std::process::Command with methods to set the process creation flags that
are passed to CreateProcess.
2016-12-05 06:53:56 +00:00
Guillaume Gomez
d9b5ae9924 Add missing examples for panicking objects 2016-12-04 22:20:42 -08:00
bors
6bc551a261 Auto merge of #38093 - mikhail-m1:stack-overflow, r=arielb1
fix stack overflow by enum and cont issue #36163

some paths were skipped while checking for recursion.

I fixed bug reproduces on win64 cargo test. In previous PR #36458 time complexity was exponential in case of linked const values. Now it's linear.

r? @alexcrichton
2016-12-05 02:48:03 +00:00