Commit Graph

6950 Commits

Author SHA1 Message Date
bors
6c065fc8cb Auto merge of #21774 - ejjeong:enable-test-for-android, r=alexcrichton
- Now "make check-stage2-T-aarch64-linux-android-H-x86_64-unknown-linux-gnu" works (#21773)
- Fix & enable debuginfo tests for android (#10381)
- Fix & enable more tests for android (both for arm/aarch64)
- Enable many already-pass tests on android (both for arm/aarch64)
2015-02-17 19:35:12 +00:00
bors
f9aeea7cb7 Auto merge of #22311 - lfairy:consistent-fmt, r=alexcrichton
This brings it in line with its namesake in `std::io`.

[breaking-change]

r? @aturon
2015-02-17 15:55:55 +00:00
bors
f1bb6c2f46 Auto merge of #22397 - Manishearth:rollup, r=huonw
None
2015-02-17 05:57:55 +00:00
bors
22224ca449 Auto merge of #21932 - Jormundir:std-os-errno-type, r=alexcrichton
Changes std::os::errno to return i32, the return type used by the function being delegated to.

This is my first contribution, so feel free to give me advice. I'll be happy to correct things.
2015-02-17 03:42:54 +00:00
Manish Goregaokar
23306de287 Rollup merge of #22411 - aturon:fix-os-deprecation, r=alexcrichton
They now point to the correct locations in std::env

r? @alexcrichton
2015-02-17 06:24:51 +05:30
Manish Goregaokar
d264ef2b11 Rollup merge of #22313 - japaric:iter, r=aturon
`IntoIterator` now has an extra associated item:

``` rust
trait IntoIterator {
    type Item;
    type IntoIter: Iterator<Self=Self::Item>;
}
```

This lets you bind the iterator \"`Item`\" directly when writing generic functions:

``` rust
// hypothetical change, not included in this PR
impl Extend<T> for Vec<T> {
    // you can now write
    fn extend<I>(&mut self, it: I) where I: IntoIterator<Item=T> { .. }
    // instead of
    fn extend<I: IntoIterator>(&mut self, it: I) where I::IntoIter: Iterator<Item=T> { .. }
}
```

The downside is that now you have to write an extra associated type in your `IntoIterator` implementations:

``` diff
 impl<T> IntoIterator for Vec<T> {
+    type Item = T;
     type IntoIter = IntoIter<T>;

     fn into_iter(self) -> IntoIter<T> { .. }
 }
```

Because this breaks all downstream implementations of `IntoIterator`, this is a [breaking-change]

---

r? @aturon
2015-02-17 06:23:40 +05:30
Manish Goregaokar
96a4756c21 Rollup merge of #22374 - richo:warn-fixup, r=huonw
This snuck through my refactor.

Would it be worth the effort to have a test pass that attempts to lint the code for all targets, even if it's not feasible to actually build and test it?
2015-02-17 06:23:38 +05:30
Manish Goregaokar
3e7af91851 Rollup merge of #22363 - semarie:openbsd-test_file_desc, r=alexcrichton
`pipe(2)`, under FreeBSD and OpenBSD return a bidirectionnal pipe. So
reading from the writer would block (waiting data) instead of returning
an error.

like for FreeBSD, disable the test for OpenBSD.
2015-02-17 06:23:36 +05:30
Manish Goregaokar
1c8e592bb7 Rollup merge of #22353 - tshepang:improve-fs-create-docs, r=alexcrichton 2015-02-17 06:23:36 +05:30
Aaron Turon
411593130d Update std::os deprecation warnings
They now point to the correct locations in std::env
2015-02-16 10:10:35 -08:00
bors
c5db290bf6 Auto merge of #22367 - Manishearth:rollup, r=steveklabnik
(still testing locally)
2015-02-16 00:46:43 +00:00
Richo Healey
74864b30d8 lint: fixup extraneous #[allow]
This snuck through my refactor
2015-02-15 07:50:15 -08:00
Manish Goregaokar
f0f8be2a2e Fix rollup (remove slicing_syntax) 2015-02-15 19:26:39 +05:30
Manish Goregaokar
ed58399449 Rollup merge of #22297 - nagisa:spring-cleanup, r=alexcrichton
This PR replaces uses of `os::getenv` with newly introduced `env::var{,_os}`.

Mostly did this as a background activity to procrastinate from procrastinating.

Tests appear to build and run fine. This includes benchmarks from test/bench directory.
2015-02-15 18:42:47 +05:30
Manish Goregaokar
f7870b6faa Rollup merge of #22339 - petrochenkov:int, r=huonw
Some function signatures have changed, so this is a [breaking-change].
In particular, radixes and numerical values of digits are represented by `u32` now.

Part of #22240
2015-02-15 18:42:47 +05:30
Manish Goregaokar
8acaaa9e0e Rollup merge of #22351 - blaenk:path-hash, r=huonw
`PathBuf` does implement `Hash`, but `Path` doesn't. This makes it
annoying if you have a `HashMap` with `PathBuf`s as keys, because
it means you have to convert a `Path` into a `PathBuf` and get a
reference to it simply to perform operations on the `HashMap`!
2015-02-15 18:42:46 +05:30
Manish Goregaokar
e5659eaa06 Rollup merge of #22347 - iKevinY:std-lib-panicking, r=brson
Rename `libstd/failure.rs` to `libstd/panicking.rs` and `on_fail` to `on_panic`. Closes #22306.
2015-02-15 18:42:46 +05:30
Manish Goregaokar
c6ced0fb36 Rollup merge of #22328 - shepmaster:os_str_typo, r=steveklabnik 2015-02-15 18:42:46 +05:30
Manish Goregaokar
a2bc3a252c Rollup merge of #22268 - steveklabnik:improve_wait, r=nikomatsakis
Remove incorrect claim, add example, reformat and re-word.

Fixes #22266
2015-02-15 18:26:58 +05:30
Manish Goregaokar
da1a1f515f Rollup merge of #22254 - huonw:float-value--, r=aturon
In `std::f32` and `std::f64`:

- `MIN_VALUE` → `MIN`
- `MAX_VALUE` → `MAX`
- `MIN_POS_VALUE` → `MIN_POSITIVE`

This matches the corresponding integer constants.

[breaking-change]
2015-02-15 18:25:40 +05:30
bors
342ab53bf8 Auto merge of #22242 - Gankro:collect-ints, r=alexcrichton 2015-02-15 12:20:31 +00:00
Sébastien Marie
eb8e1137f5 openbsd: disable test_file_desc test
pipe(2), under FreeBSD and OpenBSD return a bidirectionnal pipe. So
reading from the writer would block (waiting data) instead of returning
an error.
2015-02-15 12:27:37 +01:00
Tshepang Lekhonkhobe
3e9e32573e doc: fix and expand File::create explanation 2015-02-15 03:52:17 +02:00
Vadim Petrochenkov
b1cd76906a Fix the fallout 2015-02-15 00:10:19 +03:00
Vadim Petrochenkov
09f53fd45c Audit integer types in libunicode, libcore/(char, str) and libstd/ascii 2015-02-15 00:09:40 +03:00
Jake Goulding
af7b8910b8 Correct typo 2015-02-14 09:09:07 -05:00
Jorge Israel Peña
10dd8e721e we forgot to make Path implement Hash
`PathBuf` does implement `Hash`, but `Path` doesn't. This makes it
annoying if you have a `HashMap` with `PathBuf`s as keys, because
it means you have to convert a `Path` into a `PathBuf` and get a
reference to it simply to perform operations on the `HashMap`!
2015-02-14 02:43:36 -08:00
Aaron Turon
4175f1ce2f Add std::process
Per [RFC 579](https://github.com/rust-lang/rfcs/pull/579), this commit
adds a new `std::process` module. This module is largely based on the
existing `std::old_io::process` module, but refactors the API to use
`OsStr` and other new standards set out by IO reform.

The existing module is not yet deprecated, to allow for the new API to
get a bit of testing before a mass migration to it.
2015-02-13 23:21:08 -08:00
Kevin Yap
1e01f7f470 Rename std::failure to std::panicking
Closes #22306.
2015-02-13 20:37:33 -08:00
Jorge Aparicio
e7273784c7 add an associated Item type to IntoIterator 2015-02-13 19:02:02 -05:00
Chris Wong
bc9084b9b7 Rename fmt::Writer to fmt::Write
This brings it in line with its namesake in `std::io`.

[breaking-change]
2015-02-14 12:56:32 +13:00
Simonas Kazlauskas
5284c4ea63 Remove a few uses of deprecated getenv 2015-02-13 22:05:12 +02:00
Alexis
1e75a05a0e more int and cloned cleanup in collections 2015-02-13 14:12:51 -05:00
Steve Klabnik
805a31fb76 Improve documentation for Select::new().
Remove incorrect claim, add example, reformat and re-word.

Fixes #22266
2015-02-13 09:11:41 -05:00
Huon Wilson
e4a9eb95ce Remove _VALUE from the float extremes constants.
In `std::f32` and `std::f64`:

- `MIN_VALUE` → `MIN`
- `MAX_VALUE` → `MAX`
- `MIN_POS_VALUE` → `MIN_POSITIVE`

This matches the corresponding integer constants.

[breaking-change]
2015-02-13 14:40:57 +11:00
Jormundir
64d33b1e98 fix windows specific errno type errors. 2015-02-11 19:00:42 -08:00
Alex Crichton
d2f990f2b0 More test fixes and rebase conflicts 2015-02-11 15:45:15 -08:00
Alex Crichton
a1056360ec rollup merge of #22015: alexcrichton/netv2
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-11 15:25:40 -08:00
Alex Crichton
395709ca6d std: Add a net module for TCP/UDP
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-11 15:23:34 -08:00
Alex Crichton
315730fb27 Test fixes and rebase conflicts 2015-02-11 15:05:39 -08:00
Alex Crichton
aa0db172de rollup merge of #22178: pnkfelix/featuregate-unsafe-no-drop-flag
Conflicts:
	src/libsyntax/feature_gate.rs
2015-02-11 14:03:33 -08:00
Alex Crichton
9492275106 rollup merge of #22188: alexcrichton/envv2
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-11 14:02:24 -08:00
Alex Crichton
43a2004416 rollup merge of #22186: GuillaumeGomez/fix-fs
Fixes issue #22174.
2015-02-11 14:02:22 -08:00
Alex Crichton
5bcf2a9212 rollup merge of #22177: semarie/openbsd-notls
OpenBSD doesn't have thread-local-storage support (yet).
Permit to compile (and run) `check-stage1-crates` under OpenBSD.
2015-02-11 14:02:17 -08:00
Alex Crichton
5e2b69c1b2 rollup merge of #22162: ogham/patch-1
It returns `false`, not `None`.
2015-02-11 14:02:11 -08:00
Alex Crichton
84e5c11785 rollup merge of #22127: alexcrichton/stability-holes
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:👿: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-11 14:02:04 -08:00
Alex Crichton
a828e79480 std: Tweak the std::env OsString/String interface
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-11 13:46:35 -08:00
Alex Crichton
bbbb571fee rustc: Fix a number of stability lint holes
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:👿: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-11 12:14:59 -08:00
GuillaumeGomez
d4985accb7 Add read and write rights to group and other when creating file 2015-02-11 19:38:57 +01:00
Felix S. Klock II
f9a1087f27 Feature-gate the #[unsafe_no_drop_flag] attribute.
See RFC 320, "Non-zeroing dynamic drops."

Fix #22173

[breaking-change]
2015-02-11 13:57:40 +01:00