Commit graph

8222 commits

Author SHA1 Message Date
bors
c69c29bb53 Auto merge of #27948 - wthrowe:f64-sqrt, r=alexcrichton
This fixes a reappearance of bug #9987 introduced in
1ddee8070d, which caused
f64::tests::test_sqrt_domain to fail (at least on some systems).
2015-08-23 15:41:34 +00:00
bors
054b7b766c Auto merge of #27912 - DiamondLovesYou:backtrace-refactor, r=alexcrichton 2015-08-23 02:41:01 +00:00
William Throwe
5e9008dfb7 Fix undefined behavior in f64::sqrt
This fixes a reappearance of bug #9987 introduced in
1ddee8070d, which caused
f64::tests::test_sqrt_domain to fail (at least on some systems).
2015-08-22 20:08:53 -04:00
Richard Diamond
deff8781f1 Fix the Mac build, again. 2015-08-22 16:50:18 -05:00
bors
8278342a87 Auto merge of #27896 - alexcrichton:into-raw-os-prelude, r=brson
These traits were mistakenly left out of the OS-specific prelude modules when
they were added.
2015-08-22 19:38:25 +00:00
Richard Diamond
6cbef957f6 Add missing imports to dladdr.rs for Mac. 2015-08-22 11:52:31 -05:00
bors
94ee3b5a54 Auto merge of #27871 - alexcrichton:stabilize-libcore, r=aturon
These commits move libcore into a state so that it's ready for stabilization, performing some minor cleanup:

* The primitive modules for integers in the standard library were all removed from the source tree as they were just straight reexports of the libcore variants.
* The `core::atomic` module now lives in `core::sync::atomic`. The `core::sync` module is otherwise empty, but ripe for expansion!
* The `core::prelude::v1` module was stabilized after auditing that it is a subset of the standard library's prelude plus some primitive extension traits (char, str, and slice)
* Some unstable-hacks for float parsing errors were shifted around to not use the same unstable hacks (e.g. the `flt2dec` module is now used for "privacy").


After this commit, the remaining large unstable functionality specific to libcore is:

* `raw`, `intrinsics`, `nonzero`, `array`, `panicking`, `simd` -- these modules are all unstable or not reexported in the standard library, so they're just remaining in the same status quo as before
* `num::Float` - this extension trait for floats needs to be audited for functionality (much of that is happening in #27823)  and may also want to be renamed to `FloatExt` or `F32Ext`/`F64Ext`.
* Should the extension traits for primitives be stabilized in libcore?

I believe other unstable pieces are not isolated to just libcore but also affect the standard library.

cc #27701
2015-08-22 09:59:07 +00:00
bors
e9b74a9017 Auto merge of #27860 - m4rw3r:rustdoc_unstable_feature_issue, r=alexcrichton
Implemented #27759 

Example:

![screen shot 2015-08-16 at 21 45 17](https://cloud.githubusercontent.com/assets/108100/9295040/1fb24d50-4460-11e5-8ab8-81ac5330974a.png)
2015-08-22 08:16:53 +00:00
bors
983d2b3d1a Auto merge of #27826 - sfackler:wait-timeout-enum, r=alexcrichton
Returning a primitive bool results in a somewhat confusing API - does
`true` indicate success - i.e. no timeout, or that a timeout has
occurred? An explicitly named enum makes it clearer.

[breaking-change]

r? @alexcrichton
2015-08-22 06:30:53 +00:00
Richard Diamond
7925c7972e Refactor unix backtracing. NFC. 2015-08-20 15:20:55 -05:00
Steven Fackler
12216b7209 Add issue numbers 2015-08-19 17:01:19 -07:00
Steven Fackler
b1c7a46c0d Turn TimedOut into a BarrierWaitResult style opaque type 2015-08-19 17:00:15 -07:00
Steven Fackler
46156de5f1 Add TimedOut::timed_out 2015-08-19 17:00:15 -07:00
Steven Fackler
42a386fcf8 Make Condvar::wait_timeout return an enum instead of a bool
Returning a primitive bool results in a somewhat confusing API - does
`true` indicate success - i.e. no timeout, or that a timeout has
occurred? An explicitly named enum makes it clearer.

[breaking-change]
2015-08-19 17:00:15 -07:00
bors
3a407b6c4e Auto merge of #27885 - steveklabnik:gh27637, r=alexcrichton
Hopefully make this distinction a little more clear.

Fixes #27637 
r? @alexcrichton /cc @havvy
2015-08-19 17:29:43 +00:00
Steve Klabnik
7c06c5a900 Improve std::io::ErrorKind
Hopefully make this distinction a little more clear.

Fixes #27637
2015-08-19 10:22:18 -04:00
Alex Crichton
708200c36a std: Add into_raw_os traits to the OS preludes
These traits were mistakenly left out of the OS-specific prelude modules when
they were added.
2015-08-18 17:23:45 -07:00
bors
2fb3fb24a3 Auto merge of #27836 - alexcrichton:rename-cstring-raw, r=bluss
This commit renames the `CString::{into_ptr, from_ptr}` methods to `into_raw`
and `from_raw` to mirror the corresponding methods on `Box` and the naming of
"raw" for `from_raw_parts` on slices and vectors.

cc #27769
2015-08-18 21:47:06 +00:00
Alex Crichton
3cf9e1086e std: Rename cstr_memory feature to use "raw"
This commit renames the `CString::{into_ptr, from_ptr}` methods to `into_raw`
and `from_raw` to mirror the corresponding methods on `Box` and the naming of
"raw" for `from_raw_parts` on slices and vectors.

cc #27769
2015-08-18 09:10:50 -07:00
Remi Rampin
f70faa91eb Remove repetition in Seek::seek() doc 2015-08-18 10:01:41 -04:00
bors
4c0ffc0e38 Auto merge of #27823 - eefriedman:float-dep-core, r=alexcrichton
There wasn't any particular reason the functions needed to be there
anyway, so just get rid of them, and adjust libstd to compensate.

With this change, libcore depends on exactly two floating-point functions:
fmod and fmodf.  They are implicitly referenced because they are used to
implement "%".

Dependencies of libcore on Linux x86-x64 with this patch:
```
0000000000000000         *UND*	0000000000000000 __powidf2
0000000000000000         *UND*	0000000000000000 __powisf2
0000000000000000         *UND*	0000000000000000 fmod
0000000000000000         *UND*	0000000000000000 fmodf
0000000000000000         *UND*	0000000000000000 memcmp
0000000000000000         *UND*	0000000000000000 memcpy
0000000000000000         *UND*	0000000000000000 memset
0000000000000000         *UND*	0000000000000000 rust_begin_unwind
0000000000000000         *UND*	0000000000000000 rust_eh_personality
```
2015-08-18 04:23:25 +00:00
Huon Wilson
c66554cab3 switch core::simd to repr(simd) and deprecate it.
This functionality will be available out of tree in the `simd` crate on
crates.io.

[breaking-change]
2015-08-17 14:41:37 -07:00
Alex Crichton
0c849de1a2 core: Move atomic into a new sync module
This mirrors the same hierarchy in the standard library.
2015-08-17 14:03:32 -07:00
Alex Crichton
8cb4d8671a std: Clean up primitive integer modules
All of the modules in the standard library were just straight reexports of those
in libcore, so remove all the "macro modules" from the standard library and just
reexport what's in core directly.
2015-08-17 14:03:32 -07:00
Eli Friedman
1ddee8070d Remove dependencies on libm functions from libcore.
There wasn't any particular reason the functions needed to be there
anyway, so just get rid of them, and adjust libstd to compensate.

With this change, libcore depends on exactly two floating-point functions:
fmod and fmodf.  They are implicitly referenced because they are
used to implement "%".
2015-08-17 11:30:59 -07:00
Martin Wernstål
7fdbe69996 rustdoc: Added issue_tracker_base_url annotations to crates 2015-08-16 22:15:26 +02:00
Alex Crichton
8ef1e3b77f test: Fix tests for requiring issues 2015-08-15 19:35:52 -07:00
Alex Crichton
5f625620b5 std: Add issues to all unstable features 2015-08-15 18:09:17 -07:00
Alex Crichton
45bf1ed1a1 rustc: Allow changing the default allocator
This commit is an implementation of [RFC 1183][rfc] which allows swapping out
the default allocator on nightly Rust. No new stable surface area should be
added as a part of this commit.

[rfc]: https://github.com/rust-lang/rfcs/pull/1183

Two new attributes have been added to the compiler:

* `#![needs_allocator]` - this is used by liballoc (and likely only liballoc) to
  indicate that it requires an allocator crate to be in scope.
* `#![allocator]` - this is a indicator that the crate is an allocator which can
  satisfy the `needs_allocator` attribute above.

The ABI of the allocator crate is defined to be a set of symbols that implement
the standard Rust allocation/deallocation functions. The symbols are not
currently checked for exhaustiveness or typechecked. There are also a number of
restrictions on these crates:

* An allocator crate cannot transitively depend on a crate that is flagged as
  needing an allocator (e.g. allocator crates can't depend on liballoc).
* There can only be one explicitly linked allocator in a final image.
* If no allocator is explicitly requested one will be injected on behalf of the
  compiler. Binaries and Rust dylibs will use jemalloc by default where
  available and staticlibs/other dylibs will use the system allocator by
  default.

Two allocators are provided by the distribution by default, `alloc_system` and
`alloc_jemalloc` which operate as advertised.

Closes #27389
2015-08-14 15:13:10 -07:00
bors
e7261f3ab6 Auto merge of #27641 - nikomatsakis:soundness-rfc-1214, r=nrc
This PR implements the majority of RFC 1214. In particular, it implements:

- the new outlives relation
- comprehensive WF checking

For the most part, new code receives warnings, not errors, though 3 regressions were found via a crater run. 

There are some deviations from RFC 1214. Most notably:

- we still consider implied bounds from fn ret; this intersects other soundness issues that I intend to address in detail in a follow-up RFC. Fixing this without breaking a lot of code probably requires rewriting compare-method somewhat (which is probably a good thing).
- object types do not check trait bounds for fear of encountering `Self`; this was left as an unresolved question in RFC 1214, but ultimately feels inconsistent.

Both of those two issues are highlighted in the tracking issue, https://github.com/rust-lang/rust/issues/27579. #27579 also includes a testing matrix with new tests that I wrote -- these probably duplicate some existing tests, I tried to check but wasn't quite sure what to look for. I tried to be thorough in testing the WF relation, at least, but would welcome suggestions for missing tests.

r? @nrc (or perhaps someone else?)
2015-08-14 15:26:09 +00:00
bors
0649b16ade Auto merge of #27822 - arielb1:inline-round-take-2, r=Gankro
This speeds up rustc on #25916 from 1.36±0.022s to 1.326±0.025s

Tests pass locally (even on 32-bit :-)

r? @Gankro
2015-08-14 07:11:07 +00:00
bors
82b89645fb Auto merge of #27684 - alexcrichton:remove-deprecated, r=aturon
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.
2015-08-13 23:32:30 +00:00
arielb1
21eae93550 Mark round_up_to_next as inline
This speeds up rustc on #25916 from 1.36±0.022s to 1.326±0.025s

Tests pass locally (even on 32-bit :-)
2015-08-13 22:23:26 +03:00
bors
2da80ef114 Auto merge of #27693 - nagisa:remutex-docs, r=alexcrichton
Initial version of PR had an DerefMut implementation, which was later removed
because it may cause mutable reference aliasing.

Suggest how to implement mutability with reentrant mutex and remove the claim we
implement DerefMut.
2015-08-13 05:30:13 +00:00
Niko Matsakis
91b3e9cac0 Fallout in libs -- misc missing bounds uncovered by WF checks. 2015-08-12 17:58:56 -04:00
Alex Crichton
8d90d3f368 Remove all unstable deprecated functionality
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.
2015-08-12 14:55:17 -07:00
Simonas Kazlauskas
646eace6ec Fix ReentrantMutex documentation wrt DerefMut
Initial version of PR had an DerefMut implementation, which was later removed
because it may cause mutable reference aliasing.

Suggest how to implement mutability with reentrant mutex and remove the claim we
implement DerefMut.
2015-08-12 17:00:58 +03:00
Alex Crichton
db3f06388b rollup merge of #27679: durka/patch-5
I'm not 100% sure lines 63 and 73 are typos.
2015-08-11 22:42:22 -07:00
Alex Crichton
837ae4f3d4 rollup merge of #27678: alexcrichton/snapshots
* Lots of core prelude imports removed
* Makefile support for MSVC env vars and Rust crates removed
* Makefile support for morestack removed
2015-08-11 22:42:22 -07:00
Alex Crichton
bbef8893f7 rollup merge of #27676: alexcrichton/msvc-unwind
This commit leverages the runtime support for DWARF exception info added
in #27210 to enable unwinding by default on 64-bit MSVC. This also additionally
adds a few minor fixes here and there in the test harness and such to get
`make check` entirely passing on 64-bit MSVC:

* The invocation of `maketest.py` now works with spaces/quotes in CC
* debuginfo tests are disabled on MSVC
* A link error for librustc was hacked around (see #27438)
2015-08-11 22:42:21 -07:00
Alex Crichton
00ac2c0550 rollup merge of #27674: zaeleus/ios-imports
See https://github.com/rust-lang/rust/issues/27590#issuecomment-128885975.
2015-08-11 22:42:21 -07:00
Alex Crichton
2abc93606f rollup merge of #27663: tbu-/pr_remove_fixme 2015-08-11 22:42:20 -07:00
Alex Crichton
737397c584 rollup merge of #27622: eefriedman/https-url
Also fixes a few outdated links.
2015-08-11 22:11:25 -07:00
Alex Crichton
a0d51819c3 rollup merge of #27615: GuillaumeGomez/send_sync
Part of #22709.
cc @Veedrac

r? @bluss
2015-08-11 22:11:21 -07:00
bors
542d56ea91 Auto merge of #27615 - GuillaumeGomez:send_sync, r=huonw
Part of #22709.
cc @Veedrac

r? @bluss
2015-08-12 03:11:48 +00:00
Alex Burka
27c44c8106 correct copy/paste typos in stdio.rs comments
I'm not 100% sure lines 63 and 73 are typos.
2015-08-11 20:58:15 -04:00
Alex Crichton
b6b4f5a0e7 trans: Re-enable unwinding on 64-bit MSVC
This commit leverages the runtime support for DWARF exception info added
in #27210 to enable unwinding by default on 64-bit MSVC. This also additionally
adds a few minor fixes here and there in the test harness and such to get
`make check` entirely passing on 64-bit MSVC:

* The invocation of `maketest.py` now works with spaces/quotes in CC
* debuginfo tests are disabled on MSVC
* A link error for librustc was hacked around (see #27438)
2015-08-11 16:45:02 -07:00
Alex Crichton
938099a7eb Register new snapshots
* Lots of core prelude imports removed
* Makefile support for MSVC env vars and Rust crates removed
* Makefile support for morestack removed
2015-08-11 15:11:13 -07:00
Michael Macias
8f4aee8e7f std: Fix imports for ios target 2015-08-11 14:57:14 -05:00
Guillaume Gomez
f2f4a5c862 Add HashSet and HashMap tests 2015-08-11 18:44:39 +02:00