Commit Graph

46027 Commits

Author SHA1 Message Date
Huon Wilson
787a21fe7c Fix some typos in SSE-AVX intrinsics.
I believe everything that doesn't take a constant integer up to SSE4.2
should now be correct (I don't have any reason to believe that those
that do take constant integers are wrong; they're just more complicated
and I just haven't tested them in detail).
2015-08-31 18:33:55 -07:00
Huon Wilson
bb6be30d6f Remove some SIMD codepaths from trans. 2015-08-31 18:33:55 -07:00
bors
2d3e8379c8 Auto merge of #28079 - huonw:simd, r=alexcrichton
This adds a new Python script (compatible with 2.7 and 3.x) that will consume some JSON files that define a platform's intrinsics. It can output a file that defines the intrinsics in the compiler, or an `extern` block that will import them.

The complexity of the generator is to be DRY: platforms (especially ARM and AArch64) have a lot of repetition with their intrinsics, for different versions with different types, so being able to write it once is nice.
2015-08-31 21:34:08 +00:00
Huon Wilson
14f9c97356 Delete unused macros from rustc_platform_intrinsics. 2015-08-31 13:42:09 -07:00
bors
f9f82f8dc8 Auto merge of #28009 - GuillaumeGomez:patch-1, r=Manishearth
r? @Manishearth
2015-08-31 16:52:46 +00:00
bors
6d6bf81b33 Auto merge of #28123 - Aatch:fix-silly-tuple-constructor, r=eddyb
This was preventing any side-effects from the expressions from
happening.

Fixes #28114

cc @rust-lang/compiler
2015-08-31 15:00:48 +00:00
bors
ce40c48c45 Auto merge of #28116 - nrc:closure-expand, r=alexcrichton 2015-08-31 13:10:23 +00:00
James Miller
4637d42b58 Translate constructor arguments for zero-sized tuple structs
This was preventing any side-effects from the expressions from
happening.

Fixes #28114
2015-08-31 23:57:41 +12:00
bors
6a69bdd9e9 Auto merge of #28107 - mneumann:dragonfly_ar, r=alexcrichton 2015-08-31 11:19:27 +00:00
bors
b0f77ba26a Auto merge of #28101 - ijks:24214-str-bytes, r=alexcrichton
Specifically, `count`, `last`, and `nth` are implemented to use the
methods of the underlying slice iterator.

Partially closes #24214.
2015-08-31 09:15:55 +00:00
bors
05cc464d90 Auto merge of #27980 - tbu-:pr_cloexec_dup, r=alexcrichton
Still needs values of F_DUPFD_CLOEXEC on other OSs.

For Bitrig, NetBSD and OpenBSD the constant was incorrectly in posix01, when
it's actually posix08. In order to maintain backwards-compatiblity, the
constant was only copied, not moved.

cc #24237
2015-08-31 07:24:39 +00:00
Nick Cameron
ef4853041a Closures are not generated code. 2015-08-31 17:06:30 +12:00
bors
811868ec6f Auto merge of #28103 - GuillaumeGomez:fix-intrinsic, r=huonw
Fixes #28062
2015-08-31 03:00:21 +00:00
bors
8f28c9b01e Auto merge of #28007 - Ms2ger:FnKind, r=nrc
There is no longer a need for that pattern, since enums are now qualified.
2015-08-31 01:09:40 +00:00
bors
fe9cef7dae Auto merge of #27983 - barosl:respect-color, r=nrc
Currently, `early_error` and `early_warn` in `librustc::session` always use `ColorConfig::Auto`. Modify them to follow the color configuration set by the `--color` option.

As colored output is also printed during the early stage, parsing the `--color` option should be done as early as possible. However, there are still some cases when the output needs to be colored before knowing the exact color settings. In these cases, it will be defaulted to `ColorConfig::Auto`, which is the same as before.

Fixes #27879.
2015-08-30 23:18:34 +00:00
Michael Neumann
c01eb691d0 fixes #27124 for DragonFly 2015-08-30 22:31:39 +02:00
bors
2aa7f97c7a Auto merge of #28106 - marcusklaas:continue, r=eddyb
Fixes https://github.com/rust-lang/rust/issues/28105.
2015-08-30 20:26:44 +00:00
Marcus Klaas
b69347c00c Assign correct span to continue expression
Fixes https://github.com/rust-lang/rust/issues/28105.
2015-08-30 20:44:36 +02:00
bors
7bb0d0d74c Auto merge of #28102 - arielb1:fix-log-again, r=eddyb
r? @eddyb
2015-08-30 16:52:23 +00:00
Ariel Ben-Yehuda
ec6c3dbae5 fix compilation with RUST_LOG=rustc::middle::traits 2015-08-30 19:07:44 +03:00
Daan Rijks
dacf2725ec Add overrides to iterator methods for str::Bytes
Specifically, `count`, `last`, and `nth` are implemented to use the
methods of the underlying slice iterator.

Partially closes #24214.
2015-08-30 17:32:50 +02:00
bors
9a82594b8e Auto merge of #28097 - tbu-:pr_macro_to_const_fn, r=eddyb 2015-08-30 14:15:42 +00:00
Tobias Bucher
aad7ea66da Make a macro a const fn and remove outdated NB 2015-08-30 14:32:17 +02:00
Guillaume Gomez
bc024d261e Add compile-fail test for E0444 2015-08-30 11:29:34 +02:00
Tobias Bucher
1f81ef4d0f Atomically set CLOEXEC on duplicated sockets
For Bitrig, NetBSD and OpenBSD the constant was incorrectly in posix01, when
it's actually posix08, so we move it. This is a [breaking-change], but we
already had one in #27930.

Fix NetBSD's F_DUPFD_CLOEXEC constant.

For a similar feature detection, see this musl thread:
http://comments.gmane.org/gmane.linux.lib.musl.general/2963

This assumes that an int literal has type `c_int` for varidic functions.
2015-08-30 10:24:05 +02:00
Guillaume Gomez
4ad7cbaa51 Add E0444 error code explanation 2015-08-30 09:53:05 +02:00
Guillaume Gomez
78feb4ddf9 Add checkup on number of arguments 2015-08-30 09:52:34 +02:00
bors
4bb90232da Auto merge of #27588 - cesarb:read_all, r=alexcrichton
This implements the proposed "read_exact" RFC (https://github.com/rust-lang/rfcs/pull/980).

Tracking issue: https://github.com/rust-lang/rust/issues/27585
2015-08-30 05:59:49 +00:00
bors
2f749254ca Auto merge of #28087 - AlisdairO:diagnostics122, r=arielb1
As title :-)
Part of #24407.

r? @Manishearth
2015-08-30 04:09:11 +00:00
Huon Wilson
29dcff3aa2 Support different scalar integer widths in Rust v. LLVM.
Some x86 C intrinsics are declared to take `int ...` (i.e. exposed in
Rust as `i32`), but LLVM implements them by taking `i8` instead.
2015-08-29 20:11:23 -07:00
Huon Wilson
daf8bdca57 Fix typos in some x86 and arm intrinsics. 2015-08-29 20:11:23 -07:00
Huon Wilson
3e9b726576 Style the generator script more PEP8y. 2015-08-29 19:26:48 -07:00
bors
f3f23bf9c5 Auto merge of #28086 - AlisdairO:diagnostics281, r=arielb1
As title :-)
Part of #24407.

r? @Manishearth
2015-08-30 00:38:05 +00:00
Huon Wilson
24416a2151 Autogenerate most x86 platform intrinsics. 2015-08-29 15:36:17 -07:00
Huon Wilson
5a167bdb4c Allow unused imports in the generator. 2015-08-29 15:36:17 -07:00
Huon Wilson
bea3f096ee Add support for arbitrary metadata for numbers and widths.
This means that each platform has total control over the formatting info
it needs.
2015-08-29 15:36:16 -07:00
Huon Wilson
083f613044 Autogenerate most ARM platform intrinsics. 2015-08-29 15:36:16 -07:00
Huon Wilson
3ef610b627 Autogenerate most AArch64 platform intrinsics. 2015-08-29 15:36:16 -07:00
Huon Wilson
73811917f4 Add the platform intrinsic generator script.
This python script will consume an appropriately formatted JSON file and
output either a Rust file for use in librustc_platform_intrinsics, or an
extern block for importing the intrinsics in an external library.

The --help flag has details.
2015-08-29 15:36:16 -07:00
Huon Wilson
72382d247a Avoid eagerly stripping the common platform prefix.
This works better with the code generation approach.
2015-08-29 15:36:16 -07:00
Huon Wilson
ee2de27996 Add support for aggregates in platform intrinsics.
This adds support for flattened intrinsics, which are called in Rust
with tuples but in LLVM without them (e.g. `foo((a, b))` becomes `foo(a,
b)`). Unflattened ones could be supported, but are not yet.
2015-08-29 15:36:16 -07:00
Huon Wilson
b03ca7f805 Separate integers into signed and unsigned.
This is necessary to reflect the ARM APIs accurately, since some
functions explicitly take an unsigned parameter and a signed one, of the
same integer shape, so the no-duplicates check will fail unless we
distinguish.
2015-08-29 15:36:16 -07:00
bors
9982314577 Auto merge of #28077 - jonas-schievink:attr-gateage, r=huonw
This allows marking attributes as whitelisted/crate-only independent of
their feature gate status.

Closes #24213
2015-08-29 21:59:24 +00:00
bors
09dd65c2f6 Auto merge of #28090 - mystor:derive-unsafe-trait, r=Manishearth 2015-08-29 19:07:19 +00:00
Michael Layzell
38d450fad2 Allow #[derive()] to generate unsafe trait impls 2015-08-29 14:50:05 -04:00
Alisdair Owens
8ae2b1d7dd add long diagnostics for E0122 2015-08-29 17:20:46 +01:00
Alisdair Owens
9ed30c6214 add diagnostics for E0281 2015-08-29 16:50:35 +01:00
Jonas Schievink
4b571b055d Handle gateage of built-in attributes seperately
This allows marking attributes as whitelisted/crate-only independent of
their feature gate status.

Closes #24213
2015-08-29 11:37:40 +02:00
bors
3f002a4c6e Auto merge of #28080 - huonw:travis++, r=alexcrichton
It is very difficult to find tidy problems in the midst of the output of
the LLVM/jemalloc/etc. build, and travis is great for the former, so
lets remove that problem.
2015-08-29 06:36:51 +00:00
Huon Wilson
91a9260a16 Run tidy by itself on travis.
It is very difficult to find tidy problems in the midst of the output of
the LLVM/jemalloc/etc. build, and travis is great for the former, so
lets remove that problem.
2015-08-28 22:59:00 -07:00