Commit Graph

48530 Commits

Author SHA1 Message Date
Alex Crichton 464cdff102 std: Stabilize APIs for the 1.6 release
This commit is the standard API stabilization commit for the 1.6 release cycle.
The list of issues and APIs below have all been through their cycle-long FCP and
the libs team decisions are listed below

Stabilized APIs

* `Read::read_exact`
* `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`)
* libcore -- this was a bit of a nuanced stabilization, the crate itself is now
  marked as `#[stable]` and the methods appearing via traits for primitives like
  `char` and `str` are now also marked as stable. Note that the extension traits
  themeselves are marked as unstable as they're imported via the prelude. The
  `try!` macro was also moved from the standard library into libcore to have the
  same interface. Otherwise the functions all have copied stability from the
  standard library now.
* The `#![no_std]` attribute
* `fs::DirBuilder`
* `fs::DirBuilder::new`
* `fs::DirBuilder::recursive`
* `fs::DirBuilder::create`
* `os::unix::fs::DirBuilderExt`
* `os::unix::fs::DirBuilderExt::mode`
* `vec::Drain`
* `vec::Vec::drain`
* `string::Drain`
* `string::String::drain`
* `vec_deque::Drain`
* `vec_deque::VecDeque::drain`
* `collections::hash_map::Drain`
* `collections::hash_map::HashMap::drain`
* `collections::hash_set::Drain`
* `collections::hash_set::HashSet::drain`
* `collections::binary_heap::Drain`
* `collections::binary_heap::BinaryHeap::drain`
* `Vec::extend_from_slice` (renamed from `push_all`)
* `Mutex::get_mut`
* `Mutex::into_inner`
* `RwLock::get_mut`
* `RwLock::into_inner`
* `Iterator::min_by_key` (renamed from `min_by`)
* `Iterator::max_by_key` (renamed from `max_by`)

Deprecated APIs

* `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`)
* `OsString::from_bytes`
* `OsStr::to_cstring`
* `OsStr::to_bytes`
* `fs::walk_dir` and `fs::WalkDir`
* `path::Components::peek`
* `slice::bytes::MutableByteVector`
* `slice::bytes::copy_memory`
* `Vec::push_all` (renamed to `extend_from_slice`)
* `Duration::span`
* `IpAddr`
* `SocketAddr::ip`
* `Read::tee`
* `io::Tee`
* `Write::broadcast`
* `io::Broadcast`
* `Iterator::min_by` (renamed to `min_by_key`)
* `Iterator::max_by` (renamed to `max_by_key`)
* `net::lookup_addr`

New APIs (still unstable)

* `<[T]>::sort_by_key` (added to mirror `min_by_key`)

Closes #27585
Closes #27704
Closes #27707
Closes #27710
Closes #27711
Closes #27727
Closes #27740
Closes #27744
Closes #27799
Closes #27801
cc #27801 (doesn't close as `Chars` is still unstable)
Closes #28968
2015-12-05 15:09:44 -08:00
bors ac0e845224 Auto merge of #30192 - jwworth:pull-request-1449185301, r=alexcrichton
This fixes a double word typo, 'of'.
2015-12-04 11:46:44 +00:00
bors 77ed39cfe3 Auto merge of #29850 - Kimundi:attributes_that_make_a_statement, r=pnkfelix
See https://github.com/rust-lang/rfcs/pull/16 and https://github.com/rust-lang/rust/issues/15701

- Added syntax support for attributes on expressions and all syntax nodes in statement position.
- Extended `#[cfg]` folder to allow removal of statements, and
of expressions in optional positions like expression lists and trailing
block expressions.
- Extended lint checker to recognize lint levels on expressions and
locals.
- As per RFC, attributes are not yet accepted on `if` expressions.

Examples:
  ```rust
let x = y;
{
        ...
}
assert_eq!((1, #[cfg(unset)] 2, 3), (1, 3));

let FOO = 0;
```

Implementation wise, there are a few rough corners and open questions:
- The parser work ended up a bit ugly.
- The pretty printer change was based mostly on guessing.
- Similar to the `if` case, there are some places in the grammar where a new `Expr` node starts,
  but where it seemed weird to accept attributes and hence the parser doesn't. This includes:
  - const expressions in patterns
  - in the middle of an postfix operator chain (that is, after `.`, before indexing, before calls)
  - on range expressions, since `#[attr] x .. y` parses as  `(#[attr] x) .. y`, which is inconsistent with
    `#[attr] .. y` which would parse as `#[attr] (.. y)`
- Attributes are added as additional `Option<Box<Vec<Attribute>>>` fields in expressions and locals.
- Memory impact has not been measured yet.
- A cfg-away trailing expression in a block does not currently promote the previous `StmtExpr` in a block to a new trailing expr. That is to say, this won't work:
```rust
let x = {
    #[cfg(foo)]
    Foo { data: x }
    #[cfg(not(foo))]
    Foo { data: y }
};
```
- One-element tuples can have their inner expression removed to become Unit, but just Parenthesis can't. Eg, `(#[cfg(unset)] x,) == ()` but `(#[cfg(unset)] x) == error`. This seemed reasonable to me since tuples and unit are type constructors, but could probably be argued either way.
- Attributes on macro nodes are currently unconditionally dropped during macro expansion, which seemed fine since macro disappear at that point?
- Attributes on `ast::ExprParens` will be prepend-ed to the inner expression in the hir folder.
- The work on pretty printer tests for this did trigger, but not fix errors regarding macros:
  - expression `foo![]` prints as `foo!()`
  - expression `foo!{}` prints as `foo!()`
  - statement `foo![];` prints as `foo!();`
  - statement `foo!{};` prints as `foo!();`
  - statement `foo!{}` triggers a `None` unwrap ICE.
2015-12-04 08:46:29 +00:00
bors 5673a7b374 Auto merge of #30189 - crumblingstatue:patch-1, r=alexcrichton
Replace the old link pointing to an out-of-date gist with a
link to the lazy_static crate on crates.io.

We also don't need to state the author, as the crates.io page
shows the authors and owners.
2015-12-04 06:05:08 +00:00
bors 4cedff7be6 Auto merge of #30190 - tshepang:dir_builder-example, r=alexcrichton 2015-12-04 03:26:46 +00:00
Marvin Löbel d06f48054c Ignore rpass-fulldeps test in cross compile tests 2015-12-04 03:47:53 +01:00
bors 5854fed4ae Auto merge of #30183 - retep998:min-align, r=alexcrichton
This fixes it so the Rust allocator on Windows 32-bit doesn't think the system allocator is aligned to 16 when it is really only aligned to 8.
2015-12-04 01:42:10 +00:00
Jake Worth 4632101fc2 Fix typo 2015-12-03 18:29:00 -05:00
bors c7d58321e1 Auto merge of #30149 - mitaa:fqn, r=alexcrichton
Fixes #30109
2015-12-03 23:09:30 +00:00
mitaa af1ad419e1 Use the extern item-path for documentation links
The local item-path includes the local crates path to the extern crate
declaration which breaks cross-crate rustdoc links if the extern crate
is not linked into the crate root or renamed via `extern foo as bar`.
2015-12-03 23:11:19 +01:00
Tshepang Lekhonkhobe 4463070126 doc: add example for std::fs::DirBuilder 2015-12-03 23:40:26 +02:00
mitaa 14f504c5b7 Add a `build-aux-docs` directive to compiletest
This flag causes the documentation for all `aux-build` files to
be built, which happens prior to running/building the parent test.
2015-12-03 22:20:29 +01:00
bors 372e82c9c0 Auto merge of #29999 - SingingTree:libterm_unwrapping, r=alexcrichton
This removes a number of instances of unwrap and replaces them with
pattern matching.

This is in response to rust issue #29992.
2015-12-03 19:32:57 +00:00
Mika Attila 87b865c83c Link to lazy_static crate in Design FAQ
Replace the old link pointing to an out-of-date gist with a
link to the lazy_static crate on crates.io.

We also don't need to state the author, as the crates.io page
shows the authors and owners.
2015-12-03 20:11:29 +01:00
bors 7540dcd8df Auto merge of #30167 - GuillaumeGomez:patch-3, r=Manishearth
r? @Manishearth
2015-12-03 16:40:14 +00:00
Guillaume Gomez e10fe2ed99 Add E0400 error explanation 2015-12-03 17:33:42 +01:00
bors f016b77dff Auto merge of #30180 - tbu-:pr_isize_to_i32, r=arielb1
s/isize/i32
2015-12-03 12:48:14 +00:00
bors f5150dd9b4 Auto merge of #30171 - nikomatsakis:re-enable-mir, r=arielb1
Don't think there are any known regressions, but then I am still way behind on my GH notifications. cc @rust-lang/compiler thoughts?
2015-12-03 06:44:14 +00:00
Bryce Van Dyk 0ee230a094 libterm: bring across changes from term
This brings across changes made to the term library to libterm. This
includes removing instances or unwrap, fixing format string handling, and
removing a TODO.

This fix does not bring all changes across, as term now relies on cargo
deps that cannot be brought into the rust build at this stage, but has
attempted as best to cross port changes not relying on this. This notably
limits extra functionality since implemented int he Terminal trait in
Term.

This is in partly in response to rust issue #29992.
2015-12-03 19:27:59 +13:00
bors a2f58f3644 Auto merge of #30169 - shepmaster:for-loop-into-iterator, r=steveklabnik 2015-12-03 04:34:43 +00:00
bors e4066f5f4c Auto merge of #30176 - brson:no-more-authors, r=steveklabnik
Keeping this file up to date requires hours of work every release,
even with the script. It is a fool's errand and we shall not do it
any longer.
2015-12-03 02:40:29 +00:00
Peter Atashian 098f4fb9c7 MIN_ALIGN is definitely 8 on 32-bit x86, at least on Windows.
Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-12-02 21:03:21 -05:00
bors abfadfeee6 Auto merge of #30165 - dotdash:no_null_elim, r=alexcrichton
This pass causes mis-optimizations in some cases and is probably no
longer really important for us, so let's disable it for now.

Fixes #30081
2015-12-02 23:18:11 +00:00
Brian Anderson 402749c539 Remove AUTHORS.txt and add-authors.sh
Keeping this file up to date requires hours of work every release,
even with the script. It is a fool's errand and we shall not do it
any longer.
2015-12-02 22:16:08 +00:00
bors 37e337a415 Auto merge of #30146 - steveklabnik:doc_string_intro, r=brson
Part of #29376
2015-12-02 20:40:58 +00:00
Niko Matsakis ad1b998bb6 Now that MIR regressions are fixed, re-enable MIR for all users. 2015-12-02 15:11:01 -05:00
Jake Goulding 06e4b709c3 Clarify that a for loop uses `IntoIterator` 2015-12-02 14:48:10 -05:00
bors d5321f2abe Auto merge of #30133 - jseyfried:fix_regression, r=alexcrichton
r? @nikomatsakis
2015-12-02 17:54:30 +00:00
Björn Steinbrink d7ccea6c1c Disable the null check elimination pass
This pass causes mis-optimizations in some cases and is probably no
longer really important for us, so let's disable it for now.

Fixes #30081
2015-12-02 18:19:10 +01:00
Steve Klabnik 492f6fc9e9 Write better module-level and type-level docs for String
Part of #29376
2015-12-02 11:34:02 -05:00
bors 01bd93d310 Auto merge of #30161 - JIghtuse:master, r=steveklabnik 2015-12-02 15:06:37 +00:00
Tobias Bucher 57dad535f5 s/isize/i32 2015-12-02 09:06:28 +00:00
bors 88397e092e Auto merge of #30160 - adambadawy:fix_wait_with_output_typo, r=bluss
r? @steveklabnik
2015-12-02 07:36:40 +00:00
bors 4f6fe3ee8e Auto merge of #30157 - brson:mk, r=sfackler
This dates from the stone-ages. We always configure LLVM with all
supported targets.
2015-12-02 05:31:44 +00:00
Boris Egorov 63bb3e66ee book: Provide link to tuple structs in type aliases chapter 2015-12-02 10:47:53 +06:00
Adam Badawy 3bbc632344 Fix typo in src/libstd/process.rs 2015-12-01 23:12:01 -05:00
bors cede907e91 Auto merge of #30155 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #30129, #30134, #30136, #30144, #30150, #30153, #30154
- Failed merges:
2015-12-02 02:43:04 +00:00
Brian Anderson f65f438b08 mk: Remove obsolete comment
This dates from the stone-ages. We always configure LLVM with all
supported targets.
2015-12-02 02:13:32 +00:00
Steve Klabnik 9823511b2a Rollup merge of #30154 - salty-horse:guessing_panic, r=steveklabnik
The text mentions ```return```, but what's actually happening is a ```panic!```.
2015-12-01 19:01:42 -05:00
Steve Klabnik 63015e8dc0 Rollup merge of #30153 - durka:patch-11, r=steveklabnik
I think this fixes #30137. I basically just repeated some details that were scattered around other places in this document, and emphasized that you probably don't want an `extern crate` or `mod` statement to end up inside a function.
2015-12-01 19:01:42 -05:00
Steve Klabnik 9d05f56aab Rollup merge of #30150 - steveklabnik:fix_exe_suffix, r=alexcrichton 2015-12-01 19:01:42 -05:00
Steve Klabnik da095eecc7 Rollup merge of #30144 - pjungwir:clarify-semver-rules, r=steveklabnik
The documentation shows this:

    [dependencies]

    rand="0.3.0"

and says it allows any version compatible with 0.3.0, but then it says, "If we wanted to use only 0.3.0 exactly, we could use `=0.3.0`." That is very easy to misunderstand, so hopefully this PR will help others not to be as confused as me. :-)
2015-12-01 19:01:41 -05:00
Steve Klabnik 8fd7f1e614 Rollup merge of #30136 - fhahn:remove-int-from-doc-examples, r=steveklabnik
This PR replaces uses of int/uint in some doc examples in various crates.
2015-12-01 19:01:41 -05:00
Steve Klabnik 5e4adf96cf Rollup merge of #30134 - salty-horse:patch-1, r=steveklabnik
random/secret guess -> secret number.
2015-12-01 19:01:41 -05:00
Steve Klabnik f798f25073 Rollup merge of #30129 - tbu-:pr_doc_arrays_coerce, r=steveklabnik
Fixes #29993.
2015-12-01 19:01:41 -05:00
bors 2f95de3b3b Auto merge of #30129 - tbu-:pr_doc_arrays_coerce, r=steveklabnik
Fixes #29993.
2015-12-01 23:35:54 +00:00
Ori Avtalion fa0009136d book: Change mention of unused `return` to `panic!` 2015-12-02 01:34:08 +02:00
Alex Burka ca07c2ec21 trpl: explain how to inhibit rustdoc's auto-main
I think this fixes #30137. I basically just repeated some details that were scattered around other places in this document, and emphasized that you probably don't want an `extern crate` or `mod` statement to end up inside a function.
2015-12-01 18:18:19 -05:00
Steve Klabnik 4fb296e077 Small fix to EXE_SUFFIX and DLL_EXTENSION docs 2015-12-01 16:53:48 -05:00
bors 69b2fce7bb Auto merge of #29858 - fhahn:abort-if-path-has-spaces, r=brson
The Rust build scripts do work if the source directory contains spaces. I tried to make it work with spaces. I managed to get the Rust's and LLVM's configure scripts to work with spaces in the path, but I could not figure out how to get the Rust makefiles working.

So for now, this PR updates Rust's `configure` to abort if the source path contains spaces. I also added a note about spaces in the source path to the README.

I think this should close #18477 for now.
2015-12-01 21:38:20 +00:00