summary refs log tree commit diff
path: root/src/libstd
AgeCommit message (Collapse)AuthorLines
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
2016-06-29Ignore unknown address types when looking up hostsTobias Bucher-13/+12
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-28Rollup merge of #34524 - frewsxcv:std-io-sink, r=GuillaumeGomezGuillaume Gomez-0/+10
Add doc example for `std::io::sink`. None
2016-06-28Rollup merge of #34518 - frewsxcv:io-repeat, r=GuillaumeGomezGuillaume Gomez-0/+10
Add doc example for `std::io::repeat`. None
2016-06-28Rollup merge of #34517 - frewsxcv:empty, r=GuillaumeGomezGuillaume Gomez-6/+3
Minor rewrite of `std::io::empty` doc example. None
2016-06-28Rollup merge of #34475 - frewsxcv:path-component, r=GuillaumeGomezGuillaume Gomez-0/+20
Expand `std::path::Component` documentation. Indicate how it gets created and add an example.
2016-06-28Rollup merge of #34415 - ollie27:docs_float, r=steveklabnikGuillaume Gomez-24/+20
Use the correct types in float examples r? @steveklabnik
2016-06-28Rollup merge of #34406 - frewsxcv:sleep-ex, r=alexcrichtonGuillaume Gomez-0/+13
Add example for `std::thread::sleep`. None
2016-06-28Add doc example for `std::io::sink`.Corey Farwell-0/+10
2016-06-27Minor rewrite of `std::io::empty` doc example.Corey Farwell-6/+3
Remove unnecessary hidden `foo` function. Demonstrate this emptiness of the resulting string. Combine imports.
2016-06-27Add doc example for `std::io::repeat`.Corey Farwell-0/+10
2016-06-27Add example for `std::thread::sleep`.Corey Farwell-0/+13
2016-06-26Expand `std::path::Component` documentation.Corey Farwell-0/+20
Indicate how it gets created and add an example.
2016-06-25Auto merge of #34469 - frewsxcv:path-components, r=GuillaumeGomezbors-0/+4
Indicate how the `std::path::Components` struct is created. None
2016-06-25Auto merge of #34468 - frewsxcv:doc-links, r=GuillaumeGomezbors-5/+15
Add hyperlinks to `std::fs` functions from `std::path`. None
2016-06-25Auto merge of #34465 - frewsxcv:builder-name-example, r=GuillaumeGomezbors-0/+15
Add doc example for `std::thread::Builder::name`. None
2016-06-25Auto merge of #34410 - frewsxcv:code-like, r=apasel422bors-4/+4
Parameters in doc comment should be formatted code-like. None
2016-06-25Indicate how the `std::path::Components` struct is created.Corey Farwell-0/+4