summary refs log tree commit diff
path: root/src/libstd
AgeCommit message (Collapse)AuthorLines
2015-02-11More test fixes and rebase conflictsAlex Crichton-1/+44
2015-02-11rollup merge of #22015: alexcrichton/netv2Alex Crichton-6/+3214
This commit is an implementation of [RFC 807][rfc] which adds a `std::net` module for basic neworking based on top of `std::io`. This module serves as a replacement for the `std::old_io::net` module and networking primitives in `old_io`. [rfc]: fillmein The major focus of this redesign is to cut back on the level of abstraction to the point that each of the networking types is just a bare socket. To this end functionality such as timeouts and cloning has been removed (although cloning can be done through `duplicate`, it may just yield an error). With this `net` module comes a new implementation of `SocketAddr` and `IpAddr`. This work is entirely based on #20785 and the only changes were to alter the in-memory representation to match the `libc`-expected variants and to move from public fields to accessors.
2015-02-11std: Add a `net` module for TCP/UDPAlex Crichton-6/+3214
This commit is an implementation of [RFC 807][rfc] which adds a `std::net` module for basic neworking based on top of `std::io`. This module serves as a replacement for the `std::old_io::net` module and networking primitives in `old_io`. [rfc]: fillmein The major focus of this redesign is to cut back on the level of abstraction to the point that each of the networking types is just a bare socket. To this end functionality such as timeouts and cloning has been removed (although cloning can be done through `duplicate`, it may just yield an error). With this `net` module comes a new implementation of `SocketAddr` and `IpAddr`. This work is entirely based on #20785 and the only changes were to alter the in-memory representation to match the `libc`-expected variants and to move from public fields to accessors.
2015-02-11Test fixes and rebase conflictsAlex Crichton-3/+7
2015-02-11rollup merge of #22178: pnkfelix/featuregate-unsafe-no-drop-flagAlex Crichton-1/+3
Conflicts: src/libsyntax/feature_gate.rs
2015-02-11rollup merge of #22188: alexcrichton/envv2Alex Crichton-51/+136
This commit tweaks the interface of the `std::env` module to make it more ergonomic for common usage: * `env::var` was renamed to `env::var_os` * `env::var_string` was renamed to `env::var` * `env::args` was renamed to `env::args_os` * `env::args` was re-added as a panicking iterator over string values * `env::vars` was renamed to `env::vars_os` * `env::vars` was re-added as a panicking iterator over string values. This should make common usage (e.g. unicode values everywhere) more ergonomic as well as "the default". This is also a breaking change due to the differences of what's yielded from each of these functions, but migration should be fairly easy as the defaults operate over `String` which is a common type to use. [breaking-change]
2015-02-11rollup merge of #22186: GuillaumeGomez/fix-fsAlex Crichton-1/+3
Fixes issue #22174.
2015-02-11rollup merge of #22177: semarie/openbsd-notlsAlex Crichton-4/+22
OpenBSD doesn't have thread-local-storage support (yet). Permit to compile (and run) `check-stage1-crates` under OpenBSD.
2015-02-11rollup merge of #22162: ogham/patch-1Alex Crichton-1/+2
It returns `false`, not `None`.
2015-02-11rollup merge of #22127: alexcrichton/stability-holesAlex Crichton-46/+60
There are a number of holes that the stability lint did not previously cover, including: * Types * Bounds on type parameters on functions and impls * Where clauses * Imports * Patterns (structs and enums) These holes have all been fixed by overriding the `visit_path` function on the AST visitor instead of a few specialized cases. This change also necessitated a few stability changes: * The `collections::fmt` module is now stable (it was already supposed to be). * The `thread_local::imp::Key` type is now stable (it was already supposed to be). * The `std::rt::{begin_unwind, begin_unwind_fmt}` functions are now stable. These are required via the `panic!` macro. * The `std::old_io::stdio::{println, println_args}` functions are now stable. These are required by the `print!` and `println!` macros. * The `ops::{FnOnce, FnMut, Fn}` traits are now `#[stable]`. This is required to make bounds with these traits stable. Note that manual implementations of these traits are still gated by default, this stability only allows bounds such as `F: FnOnce()`. Closes #8962 Closes #16360 Closes #20327
2015-02-11std: Tweak the std::env OsString/String interfaceAlex Crichton-51/+136
This commit tweaks the interface of the `std::env` module to make it more ergonomic for common usage: * `env::var` was renamed to `env::var_os` * `env::var_string` was renamed to `env::var` * `env::args` was renamed to `env::args_os` * `env::args` was re-added as a panicking iterator over string values * `env::vars` was renamed to `env::vars_os` * `env::vars` was re-added as a panicking iterator over string values. This should make common usage (e.g. unicode values everywhere) more ergonomic as well as "the default". This is also a breaking change due to the differences of what's yielded from each of these functions, but migration should be fairly easy as the defaults operate over `String` which is a common type to use. [breaking-change]
2015-02-11rustc: Fix a number of stability lint holesAlex Crichton-46/+60
There are a number of holes that the stability lint did not previously cover, including: * Types * Bounds on type parameters on functions and impls * Where clauses * Imports * Patterns (structs and enums) These holes have all been fixed by overriding the `visit_path` function on the AST visitor instead of a few specialized cases. This change also necessitated a few stability changes: * The `collections::fmt` module is now stable (it was already supposed to be). * The `thread_local::imp::Key` type is now stable (it was already supposed to be). * The `std::rt::{begin_unwind, begin_unwind_fmt}` functions are now stable. These are required via the `panic!` macro. * The `std::old_io::stdio::{println, println_args}` functions are now stable. These are required by the `print!` and `println!` macros. * The `ops::{FnOnce, FnMut, Fn}` traits are now `#[stable]`. This is required to make bounds with these traits stable. Note that manual implementations of these traits are still gated by default, this stability only allows bounds such as `F: FnOnce()`. Additionally, the compiler now has special logic to ignore its own generated `__test` module for the `--test` harness in terms of stability. Closes #8962 Closes #16360 Closes #20327 [breaking-change]
2015-02-11Add read and write rights to group and other when creating fileGuillaumeGomez-1/+3
2015-02-11Feature-gate the `#[unsafe_no_drop_flag]` attribute.Felix S. Klock II-1/+3
See RFC 320, "Non-zeroing dynamic drops." Fix #22173 [breaking-change]
2015-02-11openbsd don't support TLSSébastien Marie-4/+22
2015-02-11shift bindings to accommodate new lifetime/dtor rules.Felix S. Klock II-2/+4
(My fix to for-loops (21984) did not deal with similar problems in if-let expressions, so those binding shifts stay.)
2015-02-11Auto merge of #22076 - carols10cents:exp2-calling-exp, r=huonwbors-2/+56
I was working on adding examples to the documentation in `std::num::Float`. I got to `exp2`, which says "Returns 2 raised to the power of the number, `2^(self)`." So I tried running this code: ``` use std::num::Float; #[test] fn test_exp2() { assert_eq!(32.0, 5.0.exp2()); } ``` and it resulted in a failure of `(left: `32`, right: `148.413159`)`. That 148.413159 is the value for e^5, which is `exp()`, not `exp2()`. Sure enough, `exp2` is calling `exp` and shouldn't be, looks like a copy-paste error. I haven't added any tests for this since it's unlikely to break again, but I will happily do so if people think that would be a good idea. The doc examples are coming :) I scanned through the other functions in these files for similar sorts of errors and didn't notice any.
2015-02-11Documentation fix for PathBuf#popBen S-1/+2
It returns `false`, not `none`.
2015-02-10rollup merge of #22125: alexcrichton/into-iter-stabilityAlex Crichton-5/+5
* Remove type parameters from `IteratorExt::cloned` * Rename `IntoIterator::Iter` to `IntoIterator::IntoIter` * Mark `IntoIterator::into_iter` as stable (but not the trait, only the method).
2015-02-10rollup merge of #22094: alkor/cleanup-show-stringAlex Crichton-2/+2
Rename several remaining `Show`s to Debug, `String`s to Display (mostly in comments and docs). Update reference.md: - derive() no longer supports Zero trait - derive() now supports Copy trait
2015-02-10rollup merge of #22052: octplane/patch-1Alex Crichton-1/+1
- add namespace - add function parens
2015-02-10rollup merge of #21920: vojtechkral/main-thread-nameAlex Crichton-4/+5
Fixes #21911
2015-02-10rollup merge of #21862: iKevinY/libstd-ascii-testsAlex Crichton-19/+7
2015-02-10Move native thread name setting from thread_info to Thread, fixes #21911Vojtech Kral-0/+1
2015-02-10Fix aarch64 test issues (same level to arm32)Eunji Jeong-1/+9
2015-02-10Auto merge of #21937 - alexcrichton:issue-21929, r=aturonbors-1/+1
These were forgotten reexports from #21718 Closes #21929
2015-02-10Auto merge of #21936 - alexcrichton:fsv2, r=aturonbors-13/+2564
This commit is an implementation of [RFC 739][rfc] which adds a new `std::fs` module to the standard library. This module provides much of the same functionality as `std::old_io::fs` but it has many tweaked APIs as well as uses the new `std::path` module. [rfc]: https://github.com/rust-lang/rfcs/pull/739
2015-02-09std: Add a new `fs` moduleAlex Crichton-13/+2564
This commit is an implementation of [RFC 739][rfc] which adds a new `std::fs` module to the standard library. This module provides much of the same functionality as `std::old_io::fs` but it has many tweaked APIs as well as uses the new `std::path` module. [rfc]: https://github.com/rust-lang/rfcs/pull/739
2015-02-09std: Rename IntoIterator::Iter to IntoIterAlex Crichton-5/+5
This is in preparation for stabilization of the `IntoIterator` trait. All implementations and references to `Iter` need to be renamed to `IntoIter`. [breaking-change]
2015-02-09Update deprecation notice.Pierre Baillet-1/+1
- add namespace - add function parens
2015-02-08Rename Show to Debug, String to DisplayAlexander Korolkov-3/+3
Update reference.md: - derive() no longer supports Zero trait - derive() now supports Copy trait
2015-02-08Move native thread name setting from thread_info to Thread, fixes #21911Vojtech Kral-4/+4
2015-02-08Auto merge of #22046 - mneumann:dragonfly-libstd-fixes, r=huonwbors-1/+3
2015-02-08Correct fns exp2 that were calling expCarol Nichols-2/+56
Fixes #22080.
2015-02-08Auto merge of #21565 - kmcallister:poison, r=alexcrichtonbors-12/+40
I needed these to implement efficient poisoning in [seqloq](https://github.com/kmcallister/seqloq/tree/poison).
2015-02-07Make std::fmt a simple re-export from collectionsKeegan McAllister-415/+1
2015-02-07Feature-gate #![no_std]Keegan McAllister-0/+1
Fixes #21833. [breaking-change]
2015-02-07Don't use std:: paths in syntax extensions when compiling a #![no_std] crateKeegan McAllister-29/+10
Fixes #16803. Fixes #14342. Fixes half of #21827 -- slice syntax is still broken.
2015-02-07Fix struct passwd and _SC_GETPW_R_SIZE_MAX for DragonFlyMichael Neumann-1/+3
2015-02-06sync: Expose PoisonError::newKeegan McAllister-12/+14
2015-02-06sync: Add is_poisoned to Mutex and RwLockKeegan McAllister-0/+26
2015-02-06make `IndexMut` a super trait over `Index`Jorge Aparicio-2/+0
closes #21630
2015-02-07fix outdated docsAlexis-28/+28
Conflicts: src/libstd/collections/mod.rs
2015-02-07fix outdated docsAlexis-9/+9
Conflicts: src/libstd/collections/mod.rs
2015-02-06More libcollections fixesManish Goregaokar-3/+3
2015-02-06Rollup merge of #21991 - steveklabnik:gh21915, r=huonwManish Goregaokar-1/+1
Fixes #21915
2015-02-06Rollup merge of #21926 - mzabaluev:raw-lifetime, r=alexcrichtonManish Goregaokar-8/+7
New functions, `slice::from_raw_parts` and `slice::from_raw_parts_mut`, are added to implement the lifetime convention as agreed in rust-lang/rfcs#556. The functions `slice::from_raw_buf` and `slice::from_raw_mut_buf` are left deprecated for the time being. Holding back on changing the signature of `std::ffi::c_str_to_bytes` as consensus in rust-lang/rfcs#592 is building to replace it with a composition of other functions. Contribution to #21923.
2015-02-06Rollup merge of #21969 - Gankro:collections-cleanup, r=alexcrichtonManish Goregaokar-124/+124
This is 99% burning ints to the ground, but I also got rid of useless annotations or made code more \"idiomatic\" as I went along. Mostly changes in tests.
2015-02-06Rollup merge of #21924 - steveklabnik:fix_try_docs, r=huonwManish Goregaokar-2/+2
This is now a Result, not an Option.
2015-02-06Rollup merge of #21925 - sfackler:allow-missing-copy, r=alexcrichtonManish Goregaokar-11/+0
This was particularly helpful in the time just after OIBIT's implementation to make sure things that were supposed to be Copy continued to be, but it's now creates a lot of noise for types that intentionally don't want to be Copy. r? @alexcrichton