summary refs log tree commit diff
path: root/src/libstd
AgeCommit message (Collapse)AuthorLines
2016-07-12Auto merge of #34757 - sourcefrog:debug-filetype, r=alexcrichtonbors-3/+3
Derive Debug on FileType. Partially fixes #32054
2016-07-12Rollup merge of #34750 - GuillaumeGomez:error_doc, r=steveklabnikGuillaume Gomez-0/+70
Add examples for std::Error module Fixes #29352. r? @steveklabnik
2016-07-12Rollup merge of #34737 - frewsxcv:libstd-process-child, r=GuillaumeGomezGuillaume Gomez-11/+29
Various `std::process` doc improvements. None
2016-07-12Use `ptr::{null, null_mut}` instead of `0 as *{const, mut}`Tobias Bucher-17/+22
2016-07-12doc: Mention that writeln! and println! always use LFMike Hommey-1/+3
Fixes #34697
2016-07-11std: clear errno before readdir, then check it (solaris)Josh Stone-17/+32
A `NULL` from `readdir` could be the end of stream or an error. The only way to know is to check `errno`, so it must be set to a known value first, like a 0 that POSIX will never use. This patch adds `set_errno`, uses it to clear the value before calling `readdir`, then checks it again after to see the reason for a `NULL`.
2016-07-11std: Fix IPV6 imports for solarisJosh Stone-4/+8
Like BSDs, Solaris maps `IPV6_ADD_MEMBERSHIP` and `IPV6_DROP_MEMBERSHIP` from `IPV6_JOIN_GROUP` and `IPV6_LEAVE_GROUP` respectively.
2016-07-11std: Fix `Thread::set_name()` for newlib and solarisJosh Stone-1/+0
The `use ffi::CStr` in `unix/thread.rs` was previously guarded, but now all platforms need it for `Thread::set_name()`. Newlib and Solaris do nothing here, as they have no way to set a thread name, but they still define the same method signature.
2016-07-11Mark Ipv4Addr is_unspecified as stable and provide reference.Ben Stern-0/+4
2016-07-11Auto merge of #34686 - alexcrichton:new-stage, r=luqmanabors-15/+3
rustc: Update stage0 to beta-2016-07-06 Hot off the presses, let's update our stage0 compiler!
2016-07-11`std::process` doc improvements.Corey Farwell-11/+29
* Link to `process::Command` from `process::Child`. * Move out inline Markdown link in doc comment. * Link to `process::Child::wait` from `process::Child`. * Link to `process::Child` from `process::ChildStdin`. * Link to `process::Child` from `process::ChildStdout`. * Link to `process::Child` from `process::ChildStderr`.
2016-07-11Set unwind_safe_lock_refs stability to 1.12.0.Aaron Gallagher-3/+2
This is the first (and presumably only) use of this feature.
2016-07-10Derive Debug on FileType.Martin Pool-3/+3
Partially fixes #32054
2016-07-10Mutex and RwLock need RefUnwindSafe too.Aaron Gallagher-0/+6
2016-07-10Add examples for std::Error moduleGuillaume Gomez-0/+70
2016-07-10Demangle curly bracesSteven Fackler-1/+3
They show up in things like fn(&std..panic..PanicInfo<'_>) $u7b$hook$u7d$::fn_pointer_shim.8352::h01f889b2277c719d
2016-07-10Auto merge of #34731 - GGist:fix_sync_try_recv, r=alexcrichtonbors-1/+10
Check for data in Receiver::try_recv before reporting disconnect Fixes #34711 r? @alexcrichton
2016-07-09Auto merge of #34717 - frewsxcv:sink, r=apasel422bors-2/+2
Remove unnecessarily mutable reference in doc example. None
2016-07-09Auto merge of #34709 - GuillaumeGomez:primitives, r=steveklabnikbors-0/+30
Improve primitive integers documentation Fixes #29335. r? @steveklabnik
2016-07-08Check for data in Receiver::try_recv before reporting disconnectAndrew-1/+10
2016-07-08Auto merge of #34700 - inejge:ai-hints, r=alexcrichtonbors-0/+19
Use hints with getaddrinfo() in std::net::lookup_host() As noted in #24250, `std::net::lookup_host()` repeats each IPv[46] address in the result set. The number of repetitions is OS-dependent; e.g., Linux and FreeBSD give three copies, OpenBSD gives two. Filtering the duplicates can be done by the user if `lookup_host()` is used explicitly, but not with functions like `TcpStream::connect()`. What happens with the latter is that any unsuccessful connection attempt will be repeated as many times as there are duplicates of the address. The program: ```rust use std::net::TcpStream; fn main() { let _stream = TcpStream::connect("localhost:4444").unwrap(); } ``` results in the following capture: [capture-before.txt](https://github.com/rust-lang/rust/files/352004/capture-before.txt) assuming that "localhost" resolves both to ::1 and 127.0.0.1, and that the listening program opens just an IPv4 socket (e.g., `nc -l 127.0.0.1 4444`.) The reason for this behavior is explained in [this comment](https://github.com/rust-lang/rust/issues/24250#issuecomment-92240152): `getaddrinfo()` is not constrained. Various OSS projects (I checked out Postfix, OpenLDAP, Apache HTTPD and BIND) which use `getaddrinfo()` generally constrain the result set by using a non-NULL `hints` parameter and setting at least `ai_socktype` to `SOCK_STREAM`. `SOCK_DGRAM` would also work. Other parameters are unnecessary for pure name resolution. The patch in this PR initializes a `hints` struct and passes it to `getaddrinfo()`, which eliminates the duplicates. The same test program as above with this change produces: [capture-after.txt](https://github.com/rust-lang/rust/files/352042/capture-after.txt) All `libstd` tests pass with this patch.
2016-07-08Improve primitive integers documentationGuillaume Gomez-0/+30
2016-07-09Add the unstable attribute to the new mpsc::Receiver::try_iter APImitchmindtree-0/+3
2016-07-09Add a test for Receiver::try_itermitchmindtree-0/+28
2016-07-08add a non blocking iterator for the mpsc::Receivermitchmindtree-0/+25
Currently, the `mpsc::Receiver` offers methods for receiving values in both blocking (`recv`) and non-blocking (`try_recv`) flavours. However only blocking iteration over values is supported. This commit adds a non-blocking iterator to complement the `try_recv` method, just as the blocking iterator complements the `recv` method.
2016-07-08Add test for std::net::lookup_host() duplicatesIvan Nejgebauer-0/+19
2016-07-08Rollup merge of #34700 - inejge:ai-hints, r=alexcrichtonManish Goregaokar-1/+11
Use hints with getaddrinfo() in std::net::lookup_host() As noted in #24250, `std::net::lookup_host()` repeats each IPv[46] address in the result set. The number of repetitions is OS-dependent; e.g., Linux and FreeBSD give three copies, OpenBSD gives two. Filtering the duplicates can be done by the user if `lookup_host()` is used explicitly, but not with functions like `TcpStream::connect()`. What happens with the latter is that any unsuccessful connection attempt will be repeated as many times as there are duplicates of the address. The program: ```rust use std::net::TcpStream; fn main() { let _stream = TcpStream::connect("localhost:4444").unwrap(); } ``` results in the following capture: [capture-before.txt](https://github.com/rust-lang/rust/files/352004/capture-before.txt) assuming that "localhost" resolves both to ::1 and 127.0.0.1, and that the listening program opens just an IPv4 socket (e.g., `nc -l 127.0.0.1 4444`.) The reason for this behavior is explained in [this comment](https://github.com/rust-lang/rust/issues/24250#issuecomment-92240152): `getaddrinfo()` is not constrained. Various OSS projects (I checked out Postfix, OpenLDAP, Apache HTTPD and BIND) which use `getaddrinfo()` generally constrain the result set by using a non-NULL `hints` parameter and setting at least `ai_socktype` to `SOCK_STREAM`. `SOCK_DGRAM` would also work. Other parameters are unnecessary for pure name resolution. The patch in this PR initializes a `hints` struct and passes it to `getaddrinfo()`, which eliminates the duplicates. The same test program as above with this change produces: [capture-after.txt](https://github.com/rust-lang/rust/files/352042/capture-after.txt) All `libstd` tests pass with this patch.
2016-07-08Rollup merge of #34659 - GuillaumeGomez:path_file_name, r=steveklabnikManish Goregaokar-2/+12
Fix `std::path::Path::file_name()` doc Fixes #34632 r? @steveklabnik
2016-07-08Rollup merge of #34612 - frewsxcv:io-error-from_raw_os_error, r=steveklabnikManish Goregaokar-0/+24
Add doc examples for `io::Error::from_raw_os_error`. None
2016-07-07Remove unnecessarily mutable reference in doc example.Corey Farwell-2/+2
2016-07-07Add links to Ipv*Addr methods in docsMatt Horn-5/+15
per https://github.com/rust-lang/rust/pull/34694#issuecomment-231126489
2016-07-07Use hints with getaddrinfo() in std::net::lokup_host()Ivan Nejgebauer-1/+11
When resolving a hostname, pass a hints struct where ai_socktype is set to SOCK_STREAM in order to eliminate repeated results for each protocol family.
2016-07-06Properly mark new methods as unstableMatt Horn-5/+8
2016-07-06Mark new methods as unstableMatt Horn-0/+5
2016-07-06Add doc examples for `io::Error::from_raw_os_error`.Corey Farwell-0/+24
2016-07-06Rollup merge of #34626 - sylvestre:master, r=ManishearthSteve Klabnik-1/+1
Fix typos
2016-07-06Add IpAddr common methodsMatt Horn-0/+103
2016-07-06rustc: Update stage0 to beta-2016-07-06Alex Crichton-15/+3
Hot off the presses, let's update our stage0 compiler!
2016-07-06Fix `std::path::Path::file_name()` docggomez-2/+12
2016-07-04Auto merge of #34590 - pwlandoll:master, r=apasel422bors-2/+1
Issue #34076: Removing reference to removed path.prefix() function In the documentation for `std::path::Path`, there is a [reference](https://doc.rust-lang.org/std/path/struct.Path.html#method.is_absolute) to the `path.prefix()` function which has since been removed. The offending reference is now also removed. First pull request, feedback welcome! r? @steveklabnik
2016-07-03Auto merge of #34530 - alexcrichton:stabilize-1.11, r=aturonbors-18/+93
std: Stabilize APIs for the 1.11.0 release Although the set of APIs being stabilized this release is relatively small, the trains keep going! Listed below are the APIs in the standard library which have either transitioned from unstable to stable or those from unstable to deprecated. Stable * `BTreeMap::{append, split_off}` * `BTreeSet::{append, split_off}` * `Cell::get_mut` * `RefCell::get_mut` * `BinaryHeap::append` * `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past libstd stabilizations * `Iterator::sum` * `Iterator::product` Deprecated * `{f32, f64}::next_after` * `{f32, f64}::integer_decode` * `{f32, f64}::ldexp` * `{f32, f64}::frexp` * `num::One` * `num::Zero` Added APIs (all unstable) * `iter::Sum` * `iter::Product` * `iter::Step` - a few methods were added to accomodate deprecation of One/Zero Removed APIs * `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is unstable Closes #27739 Closes #27752 Closes #32526 Closes #33444 Closes #34152 cc #34529 (new tracking issue)
2016-07-03std: Stabilize APIs for the 1.11.0 releaseAlex Crichton-18/+93
Although the set of APIs being stabilized this release is relatively small, the trains keep going! Listed below are the APIs in the standard library which have either transitioned from unstable to stable or those from unstable to deprecated. Stable * `BTreeMap::{append, split_off}` * `BTreeSet::{append, split_off}` * `Cell::get_mut` * `RefCell::get_mut` * `BinaryHeap::append` * `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past libstd stabilizations * `Iterator::sum` * `Iterator::product` Deprecated * `{f32, f64}::next_after` * `{f32, f64}::integer_decode` * `{f32, f64}::ldexp` * `{f32, f64}::frexp` * `num::One` * `num::Zero` Added APIs (all unstable) * `iter::Sum` * `iter::Product` * `iter::Step` - a few methods were added to accomodate deprecation of One/Zero Removed APIs * `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is unstable Closes #27739 Closes #27752 Closes #32526 Closes #33444 Closes #34152 cc #34529 (new tracking issue)
2016-07-03Fix a few typos in the codeSylvestre Ledru-1/+1
2016-07-02Rollup merge of #34583 - steveklabnik:remove-unneeded-deprecated, r=alexcrichtonManish Goregaokar-1/+0
remove unneeded allow flag There isn't anything deprecated being used in this function. This built fine for me locally, but just to be sure, should check Travis.
2016-07-01Auto merge of #34067 - tbu-:pr_lookup_host_ignore_other_addresses, ↵bors-17/+26
r=alexcrichton Ignore unknown address types when looking up hosts Previously, any function using a `ToSocketAddrs` input would fail if passed a hostname that resolves to an address type different from the ones recognized by Rust. This also changes the `LookupHost` iterator to only include the known address types, as a result, it doesn't have to return `Result`s any more, which are likely misinterpreted as failed name lookups.
2016-06-30Issue #34076: Removing reference to removed path.prefix() functionPeter Landoll-2/+1
2016-06-30remove unneeded allow flagSteve Klabnik-1/+0
There isn't anything deprecated being used in this function.
2016-06-29std: use siphash-1-3 for HashMapSean McArthur-4/+25
2016-06-29Update documentation to reflect ignoring of unknown addressesTobias Bucher-1/+7
2016-06-29Convert a simple tail call to a loopTobias Bucher-10/+14