- 15 3月, 2016 4 次提交
-
-
由 Aaron Turon 提交于
-
由 Aaron Turon 提交于
-
由 Aaron Turon 提交于
-
由 bors 提交于
typestrong const integers ~~It would be great if someone could run crater on this PR, as this has a high danger of breaking valid code~~ Crater ran. Good to go. ---- So this PR does a few things: 1. ~~const eval array values when const evaluating an array expression~~ 2. ~~const eval repeat value when const evaluating a repeat expression~~ 3. ~~const eval all struct and tuple fields when evaluating a struct/tuple expression~~ 4. remove the `ConstVal::Int` and `ConstVal::Uint` variants and replace them with a single enum (`ConstInt`) which has variants for all integral types * `usize`/`isize` are also enums with variants for 32 and 64 bit. At creation and various usage steps there are assertions in place checking if the target bitwidth matches with the chosen enum variant 5. enum discriminants (`ty::Disr`) are now `ConstInt` 6. trans has its own `Disr` type now (newtype around `u64`) This obviously can't be done without breaking changes (the ones that are noticable in stable) We could probably write lints that find those situations and error on it for a cycle or two. But then again, those situations are rare and really bugs imo anyway: ```rust let v10 = 10 as i8; let v4 = 4 as isize; assert_eq!(v10 << v4 as usize, 160 as i8); ``` stops compiling because 160 is not a valid i8 ```rust struct S<T, S> { a: T, b: u8, c: S } let s = S { a: 0xff_ff_ff_ffu32, b: 1, c: 0xaa_aa_aa_aa as i32 }; ``` stops compiling because `0xaa_aa_aa_aa` is not a valid i32 ---- cc @EddyB @pnkfelix related: https://github.com/rust-lang/rfcs/issues/1071
-
- 14 3月, 2016 11 次提交
-
-
由 bors 提交于
Fix LLVM assert with write_volatile Fixes #29663
-
由 bors 提交于
Give a more accurate error on thin-to-fat ptr cast Fixes #31511
-
由 Oliver Schneider 提交于
-
由 bors 提交于
Define AVX compare and blend intrinsics This defines the following intrinsics: * `_mm256_blendv_pd` * `_mm256_blendv_ps` * `_mm256_cmp_pd` * `_mm256_cmp_ps` I verified these locally.
-
由 bors 提交于
Fix. FreeBSD snapshot Previous snapshot was complied with avx2 instructions by accident. Actual file: http://people.freebsd.org/~davide/rust/rust-stage0-2016-02-17-4d3eebf-freebsd-x86_64-f38991fbb81c1cd8d0bbda396f98f13a55b42804.tar.bz2 /cc @alexcrichton @dcci
-
由 bors 提交于
Reject unspecified IP from global Also fixed the test
-
由 Jonas Schievink 提交于
-
由 bors 提交于
Fix import resolution bug This fixes #32222, which was introduced in #31726.
-
由 Amanieu d'Antras 提交于
-
由 bors 提交于
Fixup stout/stderr on Windows WriteConsoleW can fail if called with a large buffer so we need to slice any stdout/stderr output. However the current slicing has a few problems: 1. It slices by byte but still expects valid UTF-8. 2. The slicing happens even when not outputting to a console. 3. panic! output is not sliced. This fixes these issues by moving the slice to right before WriteConsoleW and slicing on a char boundary.
-
由 Jonas Schievink 提交于
Fixes #31511
-
- 13 3月, 2016 25 次提交
-
-
由 bors 提交于
Rollup of 4 pull requests - Successful merges: #32164, #32179, #32212, #32218 - Failed merges:
-
由 Ruud van Asseldonk 提交于
The exact command used was: $ cd src/etc/platform-intrinsics/x86 $ python2 ../generator.py --format compiler-defs -i info.json \ sse.json sse2.json sse3.json ssse3.json sse41.json sse42.json \ avx.json avx2.json fma.json \ > ../../../librustc_platform_intrinsics/x86.rs
-
由 Ruud van Asseldonk 提交于
This defines the `_mm256_blendv_pd` and `_mm256_blendv_ps` intrinsics. The `_mm256_blend_pd` and `_mm256_blend_ps` intrinsics are not available as LLVM intrinsics. In Clang they are implemented using the shufflevector builtin. Intel reference: https://software.intel.com/en-us/node/524070.
-
由 Ruud van Asseldonk 提交于
This defines `_mm256_cmp_pd` and `_mm256_cmp_ps`. Intel reference: https://software.intel.com/en-us/node/524075.
-
由 Manish Goregaokar 提交于
Fix minor typos in doc.rust-lang.org/book I've made a few typo and grammar fixes as I've been working through the book.
-
由 Manish Goregaokar 提交于
Don't allow values for codegen-units less than 1 r? @EddyB fixes #32191
-
由 Manish Goregaokar 提交于
Removed integer suffixes in libsyntax crate
-
由 Manish Goregaokar 提交于
Do not report errors from regionck if other errors were already reported Do not report errors from regionck if other errors were already reported during the lifetime of this inferencer. Fixes #30580. r? @arielb1
-
由 bors 提交于
Add Pass manager for MIR A new PR, since rebasing the original one (https://github.com/rust-lang/rust/pull/31448) properly was a pain. Since then there has been several changes most notable of which: 1. Removed the pretty-printing with `#[rustc_mir(graphviz/pretty)]`, mostly because we now have `--unpretty=mir`, IMHO that’s the direction we should expand this functionality into; 2. Reverted the infercx change done for typeck, because typeck can make an infercx for itself by being a `MirMapPass` r? @nikomatsakis
-
由 Jeffrey Seyfried 提交于
-
由 Jeffrey Seyfried 提交于
-
由 Jeffrey Seyfried 提交于
`NameResolution::decrement_outstanding_references`.
-
由 bors 提交于
Call str::to_owned in String::from and uninline it Call str::to_owned in String::from and uninline it These methods were already effectively equal, but now one calls the other, and neither is marked inline. String::from does not need to be inlined, it can be without it just like str::to_owned and String::clone are. Fixes #32163
-
由 Ulrik Sverdrup 提交于
String::from does not need to be inlined, it can be without it just like str::to_owned and String::clone are.
-
由 Andrey Cherkashin 提交于
Previous snapshot was complied with avx2 instructions by accident. Actual file: http://people.freebsd.org/~davide/rust/rust-stage0-2016-02-17-4d3eebf-freebsd-x86_64-f38991fbb81c1cd8d0bbda396f98f13a55b42804.tar.bz2
-
由 bors 提交于
Fix name resolution in lexical scopes Currently, `resolve_item_in_lexical_scope` does not check the "ribs" (type parameters and local variables). This can allow items that should be shadowed by type parameters to be named. For example, ```rust struct T { i: i32 } fn f<T>() { let t = T { i: 0 }; // This use of `T` resolves to the struct, not the type parameter } mod Foo { pub fn f() {} } fn g<Foo>() { Foo::f(); // This use of `Foo` resolves to the module, not the type parameter } ``` This PR changes `resolve_item_in_lexical_scope` so that it fails when the item is shadowed by a rib (fixes #32120). This is a [breaking-change], but it looks unlikely to cause breakage in practice. r? @nikomatsakis
-
由 bors 提交于
mk: Fix `make dist` With the movement of the erro-index-generator and rustbook, need to update the rules in `make dist`.
-
由 bors 提交于
Add AVX broadcast and conversion intrinsics This adds the following intrinsics: * `_mm256_broadcast_pd` * `_mm256_broadcast_ps` * `_mm256_cvtepi32_pd` * `_mm256_cvtepi32_ps` * `_mm256_cvtpd_epi32` * `_mm256_cvtpd_ps` * `_mm256_cvtps_epi32` * `_mm256_cvtps_pd` * `_mm256_cvttpd_epi32` * `_mm256_cvttps_epi32` The "avx" codegen feature must be enabled to use these.
-
由 Abhishek Chanda 提交于
-
由 bors 提交于
std: Fix tracking issues and clean deprecated APIs This PR fixes up a number of discrepancies found with tracking issues (some closed, some needed new ones, etc), and also cleans out all pre-1.8 deprecated APIs. The big beast here was dealing with `std::dynamic_lib`, and via many applications of a large hammer it's now out of the standard library.
-
由 Andrew Cantino 提交于
-
由 Alex Crichton 提交于
Removes all unstable and deprecated APIs prior to the 1.8 release. All APIs that are deprecated in the 1.8 release are sticking around for the rest of this cycle. Some notable changes are: * The `dynamic_lib` module was moved into `rustc_back` as the compiler still relies on a few bits and pieces. * The `DebugTuple` formatter now special-cases an empty struct name with only one field to append a trailing comma.
-
由 Alex Crichton 提交于
With the movement of the erro-index-generator and rustbook, need to update the rules in `make dist`.
-
由 bors 提交于
Statically link run-pass/command-before-exec so it passes not just whenever we happen to bootstrap perfectly.
-
由 Simonas Kazlauskas 提交于
Also change output for --unpretty mir to output function names in a prettier way.
-