Commit graph

11336 commits

Author SHA1 Message Date
William Throwe
15d6837a16 Mark main-like functions allow(dead_code) in tests
Fixes #12327.
2015-08-24 20:28:24 -04:00
Guillaume Gomez
528d99c014 Add test for LookupHost iterator Send/Sync traits 2015-08-24 23:14:56 +02:00
bors
4c996499a1 Auto merge of #27239 - apasel422:issue-19102, r=huonw
closes #19102
2015-08-24 18:43:41 +00:00
Eljay
efc98fab26 Update hoedown to latest version (3.0.4). 2015-08-24 19:21:08 +01:00
bors
e617a17369 Auto merge of #27919 - Eljay:doc-varargs, r=alexcrichton
Fixes #27876.
2015-08-23 04:24:35 +00:00
bors
357ae03cc3 Auto merge of #27914 - pnkfelix:fix-fcnr-for-valgrind, r=alexcrichton
Fix (and extend) src/test/run-pass/foreign-call-no-runtime.rs

While going over various problems signaled by valgrind when running `make check` on a build configured with `--enable-valgrind`, I discovered a bug in this test case.

Namely, the test case was previously creating an `i32` (originally an `int` aka `isize` but then we changed the name and the fallback rules), and then reading from a `*const isize`. Valgrind rightly complains about this, since we are reading an 8 byte value on 64-bit systems, but in principle only 4 bytes have been initialized.

(I wish this was the only valgrind unclean test, but unfortunately there are a bunch more. This was just the easiest/first one that I dissected.)
2015-08-22 21:33:35 +00:00
bors
4a1fda807e Auto merge of #27565 - TimNN:dead-visit-type-in-path, r=nrc
Fixes #23808, passes `make check-stage1` `run-pass` and `run-fail` locally.
2015-08-22 17:56:26 +00:00
bors
5e5b99f47f Auto merge of #27892 - nikomatsakis:issue-27583, r=pnkfelix
Issue #27583 was caused by the fact that `LUB('a,'b)` yielded `'static`, even if there existed a region `'tcx:'a+'b`. This PR replaces the old very hacky code for computing how free regions relate to one another with something rather more robust. This solves the issue for #27583, though I think that similar bizarro bugs can no doubt arise in other ways -- the root of the problem is that the region-inference code was written in an era when a LUB always existed, but that hasn't held for some time. To *truly* solve this problem, it needs to be generalized to cope with that reality. But let's leave that battle for another day.

r? @aturon
2015-08-22 11:42:36 +00: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
Niko Matsakis
10b8941bce fix accidental reversal of 'static, and add a test 2015-08-21 11:44:20 -04:00
Lee Jeffery
90ed188c14 Show variadic args in rustdoc output. 2015-08-20 18:27:53 +01:00
Felix S. Klock II
2ac5cc4863 Fix (and extend) src/test/run-pass/foreign-call-no-runtime.rs
While going over various problems signaled by valgrind when running
`make check` on a build configured with `--enable-valgrind`, I
discovered a bug in this test case.

Namely, the test case was previously creating an `i32` (originally an
`int` aka `isize` but then we changed the name and the fallback
rules), and then reading from a `*const isize`. Valgrind rightly
complains about this, since we are reading an 8 byte value on 64-bit
systems, but in principle only 4 bytes have been initialized.

(I wish this was the only valgrind unclean test, but unfortunately
there are a bunch more. This was just the easiest/first one that I
dissected.)
2015-08-20 13:28:11 +02:00
Alexis Beingessner
5bbaa3c9ac fallout of reworking rc and arc APIs 2015-08-19 15:52:12 -07:00
bors
aca2057ed5 Auto merge of #27677 - sylvestre:issue-27628, r=dotdash 2015-08-19 11:36:22 +00:00
Sylvestre Ledru
0fdc4a89f5 Issue #27628 - Also support the LLVM 3.6 IR format in two tests 2015-08-19 12:43:16 +02:00
bors
c8c14f207b Auto merge of #27875 - alexcrichton:msvc-f32-rem, r=nrc
Currently `f32 % f32` will generate a link error on 32-bit MSVC because LLVM
will lower the operation to a call to the nonexistent function `fmodf`. Work
around in this in the backend by lowering to a call to `fmod` instead with
necessary extension/truncation between floats/doubles.

Closes #27859
2015-08-19 07:14:43 +00:00
bors
7e13faee17 Auto merge of #27849 - jonas-schievink:macro-errors, r=nikomatsakis
And some small indentation/code style fixes in the macro parser.
2015-08-19 00:54:38 +00:00
bors
4c1daeb7ad Auto merge of #27850 - alexcrichton:fix-musl, r=brson
Some new allocator tests require dynamic libraries to run the full test, but
dylibs aren't currently working on MUSL.
2015-08-18 23:20:52 +00:00
Niko Matsakis
d5b679b23d add a regression test for #27583. Fixes #27583. 2015-08-18 17:44:01 -04:00
Alex Crichton
8a7b0fad53 trans: Call fmod manually for 32-bit float rem
Currently `f32 % f32` will generate a link error on 32-bit MSVC because LLVM
will lower the operation to a call to the nonexistent function `fmodf`. Work
around in this in the backend by lowering to a call to `fmod` instead with
necessary extension/truncation between floats/doubles.

Closes #27859
2015-08-17 23:32:30 -07:00
Alex Crichton
a2b932c0b6 core: Shuffle around float parsing
Stop using stability to hide the implementation details of ParseFloatError and
instead move the error type into the `dec2flt` module. Also move the
implementation blocks of `FromStr for f{32,64}` into `dec2flt` directly.
2015-08-17 19:35:52 -07:00
bors
e35fd74811 Auto merge of #27169 - huonw:simd, r=alexcrichton
This implements https://github.com/rust-lang/rfcs/pull/1199 (except for doing all the platform intrinsics).

Things remaining for SIMD (not necessarily in this PR):

- [x] I (@huonw) am signed up to ensure the compiler matches the RFC, when it lands
- [x] the platform specific intrinsics aren't properly type checked at the moment (LLVM will throw a "random" assertion)
- [ ] there's a lot of useful intrinsics that are missing, including whole platforms (mips, powerpc)
- [ ] the target-feature `cfg` detection/adding is not so great at the moment
- [x] I think the platform specific intrinsics should go in their own `extern` ABI (i.e. not `"rust-intrinsic"`)

(I'm adjusting the RFC to reflect the latter.)

I think it would be very nice for this to land without requiring the RFC to land first, because of the first point, and because this is the only way for any further work to happen/be experimented with, without requiring people to build/install/multirust a compiler from a custom branch.

r? @alexcrichton
2015-08-17 23:41:36 +00:00
Huon Wilson
502f9acbe9 Revamp SIMD intrinsic trans error handling.
Factor out common pieces, follow `expected ..., found ...` convention
everywhere.
2015-08-17 14:48:44 -07:00
Huon Wilson
d792925b4d Shim some of the old std::simd functionality.
Overload the operators using the traits so that things mostly keep
working during the deprecation period.
2015-08-17 14:48:43 -07:00
Huon Wilson
84de8caa87 Add tests for various intrinsic behaviours. 2015-08-17 14:41:40 -07:00
Huon Wilson
3e500673cc Fix existing tests for new #[repr(simd)]. 2015-08-17 14:41:40 -07:00
Huon Wilson
e364f0eb5a feature gate cfg(target_feature).
This is theoretically a breaking change, but GitHub search turns up no
uses of it, and most non-built-in cfg's are passed via cargo features,
which look like `feature = "..."`, and hence can't overlap.
2015-08-17 14:41:37 -07:00
bors
6d992728c3 Auto merge of #27833 - arielb1:robust-construction, r=eddyb
Fixes #27815

r? @eddyb
2015-08-17 21:02:47 +00:00
Martin Wernstål
6532a08525 rustdoc: Add test for #27759 2015-08-17 22:05:07 +02:00
Huon Wilson
c8b6d5b23c Implement repr(simd) as an alias for #[simd]. 2015-08-17 10:57:18 -07:00
Ariel Ben-Yehuda
44f41063dd use the correct substs when checking struct patterns
also, make sure this is tested.
2015-08-17 18:22:00 +03:00
Corey Farwell
1e79d05ac0 Add regression tests for #23304
Closes #23304
2015-08-17 09:36:03 -04:00
Alex Crichton
8ef1e3b77f test: Fix tests for requiring issues 2015-08-15 19:35:52 -07:00
Alex Crichton
cc65f79e55 test: Fix tests for MUSL
Some new allocator tests require dynamic libraries to run the full test, but
dylibs aren't currently working on MUSL.
2015-08-15 13:29:12 -07:00
Jonas Schievink
5e8d39ebfd Slightly improved macro diagnostics + Indentation fixes 2015-08-15 21:27:52 +02:00
Ariel Ben-Yehuda
91be125899 prevent non-dict-structs from being intialized via FRU
Fixes #27831
2015-08-15 21:03:10 +03:00
Ariel Ben-Yehuda
ba98228b4d clean-up ExprStruct and PatStruct type-checking
This fixes the crazy "transparent aliases" bug, which I hope nobody
relied on.
2015-08-15 20:39:28 +03:00
bors
29455557aa Auto merge of #27827 - w00ns:for-loop-expn-issue-27639, r=alexcrichton
Fixes #27639
2015-08-15 14:50:13 +00:00
w00ns
ae68e90af4 Fix issue with for loop expansion 2015-08-15 10:17:12 +02:00
bors
e859498d1c Auto merge of #27841 - jonas-schievink:still-repeating-span, r=alexcrichton
Current behaviour demo: http://is.gd/l3FEgo
(The span is printed at the start of the source code)

This patch moves the span to the use of `$i` in the macro rhs (as the code comment already claims)
2015-08-15 06:16:41 +00:00
Jonas Schievink
59f8e3238a Fix span of invalid metavariable repetition 2015-08-15 00:45:34 +02: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
Ariel Ben-Yehuda
b87c292627 be more robust to bogus items in struct patterns/constructors
Fixes #27815
2015-08-14 17:03:11 +03: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
Niko Matsakis
e1fa00bced add regression test for #27592. Fixes #27592. 2015-08-12 20:58:47 -04:00
bors
82169afba7 Auto merge of #27698 - arielb1:foreign-type-import, r=alexcrichton
Fixes #22968
Probably fixes #27602 (the issue needs a reproduction)

r? @alexcrichton
2015-08-12 22:42:12 +00:00
Niko Matsakis
157422a0c7 Update test error messages based on changes to wfcheck; also, break
apart the tests that tested many things at once.
2015-08-12 17:58:58 -04:00
Niko Matsakis
9c5cfea43d traits: consider whether origin is RFC1214 when caching, ensuring
that the test rfc1214-warn-and-error.rs reports an error
2015-08-12 17:58:57 -04:00