Commit Graph

34147 Commits

Author SHA1 Message Date
bors
eca8f11315 auto merge of #18592 : alexcrichton/rust/dylib-harder, r=pcwalton
If a dylib is being produced, the compiler will now first check to see if it can
be created entirely statically before falling back to dynamic dependencies. This
behavior can be overridden with `-C prefer-dynamic`.

Due to the alteration in behavior, this is a breaking change. Any previous users
relying on dylibs implicitly maximizing dynamic dependencies should start
passing `-C prefer-dynamic` to compilations.

Closes #18499
[breaking-change]
2014-11-05 07:01:38 +00:00
Nick Cameron
9af15e3a6b Test 2014-11-05 16:53:10 +13:00
Nick Cameron
04dd61d1ec Make trans::adt know that some structs are unsized 2014-11-05 16:53:09 +13:00
Luqman Aden
20c1945c51 librustc: Call return_type only for functions. 2014-11-04 22:44:02 -05:00
bors
4375b32dab auto merge of #18504 : pcwalton/rust/small-escapes, r=pcwalton
Use `\u0080`-`\u00ff` instead. ASCII/byte literals are unaffected.

This PR introduces a new function, `escape_default`, into the ASCII
module. This was necessary for the pretty printer to continue to
function.

RFC #326.

Closes #18062.

[breaking-change]

r? @aturon
2014-11-05 03:31:33 +00:00
Luqman Aden
2c09da7d1e librustc_back: Fix triple for linux armhf. 2014-11-04 18:13:37 -05:00
Patrick Walton
e8d6031c71 libsyntax: Forbid escapes in the inclusive range \x80-\xff in
Unicode characters and strings.

Use `\u0080`-`\u00ff` instead. ASCII/byte literals are unaffected.

This PR introduces a new function, `escape_default`, into the ASCII
module. This was necessary for the pretty printer to continue to
function.

RFC #326.

Closes #18062.

[breaking-change]
2014-11-04 14:58:11 -08:00
Huon Wilson
769fa48a1c test: correct spelling error & inverted match. 2014-11-05 09:27:37 +11:00
bors
ceeac26de8 auto merge of #18338 : chastell/rust/guide_pointer_fixes, r=alexcrichton
This removes some leftover line-numbering cruft from elided error examples and brings some minor clarifications.

I’m not super happy about the ‘we cannot have two mutable pointers that point to the same memory’ wording (to the best of my understanding we can’t even have one mutable and one immutable), but other attempts to word this were derailing the flow a bit too much.
2014-11-04 21:26:23 +00:00
Aaron Turon
0514e54b97 std::error: fix stray doc comment 2014-11-04 12:43:35 -08:00
bors
bb70ee56db auto merge of #18528 : seanjensengrey/rust/doc-18498, r=brson
This addresses https://github.com/rust-lang/rust/issues/18498 by adding a prepopulated search box to do site search on `doc.rust-lang.org` using duckduckgo AND generating a search url against the rust documentation using the internal search facilities.

* https://duckduckgo.com/?q=type+Option+unwrap_or_else+site%3Adoc.rust-lang.org
* http://doc.rust-lang.org/core/?search=unwrap_or_else
2014-11-04 18:46:19 +00:00
Piotr Szotkowski
9be04d574a Guide: drop line-number cruft from elided error examples 2014-11-04 19:39:12 +01:00
Piotr Szotkowski
c7182ba997 Guide: minor clarifications for the Pointers part 2014-11-04 19:39:12 +01:00
bors
1b2ad7831f auto merge of #18497 : gamazeps/rust/enumsmatch, r=steveklabnik
Closes #18169
2014-11-04 16:16:28 +00:00
Alex Crichton
68ac44cb97 rustc: Support stability attributes on crates
This commit adds support for linting `extern crate` statements for stability
attributes attached to the crate itself. This is likely to be the mechanism used
to deny access to experimental crates that are part of the standard
distribution.

cc #18585
2014-11-04 08:13:09 -08:00
Huon Wilson
071c411045 Translate SIMD construction as insertelements and a single store.
This almost completely avoids GEPi's and pointer manipulation,
postponing it until the end with one big write of the whole vector. This
leads to a small speed-up in compilation, and makes it easier for LLVM
to work with the values, e.g. with `--opt-level=0`,

    pub fn foo() -> f32x4 {
        f32x4(0.,0.,0.,0.)
    }

was previously compiled to

    define <4 x float> @_ZN3foo20h74913e8b13d89666eaaE() unnamed_addr #0 {
    entry-block:
      %sret_slot = alloca <4 x float>
      %0 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 0
      store float 0.000000e+00, float* %0
      %1 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 1
      store float 0.000000e+00, float* %1
      %2 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 2
      store float 0.000000e+00, float* %2
      %3 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 3
      store float 0.000000e+00, float* %3
      %4 = load <4 x float>* %sret_slot
      ret <4 x float> %4
    }

but now becomes

    define <4 x float> @_ZN3foo20h74913e8b13d89666eaaE() unnamed_addr #0 {
    entry-block:
      ret <4 x float> zeroinitializer
    }
2014-11-05 00:02:43 +11:00
gamazeps
dc7c8da74b Guide: explains the enum/match relationship
Closes #18169
2014-11-04 13:47:53 +01:00
bors
3a8f4ec32a auto merge of #16156 : cmr/rust/target-spec, r=alexcrichton
See commit message.
2014-11-04 11:11:20 +00:00
Corey Richardson
61aeab4c9e Update for collections reform 2014-11-04 05:35:53 -05:00
Corey Richardson
87a753e5ce Update some new use of the old targ_cfg 2014-11-04 05:09:08 -05:00
Corey Richardson
70dedbb1a2 Don't use pie on Android 2014-11-04 05:07:47 -05:00
Corey Richardson
244bb14fd5 Same fix for dragonfly 2014-11-04 05:07:47 -05:00
Corey Richardson
4a6f4c9606 Same fix for mac32 2014-11-04 05:07:47 -05:00
Corey Richardson
0e03503f53 Use -m32 on 32bit Linux 2014-11-04 05:07:47 -05:00
Corey Richardson
6b130e3dd9 Implement flexible target specification
Removes all target-specific knowledge from rustc. Some targets have changed
during this, but none of these should be very visible outside of
cross-compilation. The changes make our targets more consistent.

iX86-unknown-linux-gnu is now only available as i686-unknown-linux-gnu. We
used to accept any value of X greater than 1. i686 was released in 1995, and
should encompass the bare minimum of what Rust supports on x86 CPUs.

The only two windows targets are now i686-pc-windows-gnu and
x86_64-pc-windows-gnu.

The iOS target has been renamed from arm-apple-ios to arm-apple-darwin.

A complete list of the targets we accept now:

arm-apple-darwin
arm-linux-androideabi
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf

i686-apple-darwin
i686-pc-windows-gnu
i686-unknown-freebsd
i686-unknown-linux-gnu

mips-unknown-linux-gnu
mipsel-unknown-linux-gnu

x86_64-apple-darwin
x86_64-unknown-freebsd
x86_64-unknown-linux-gnu
x86_64-pc-windows-gnu

Closes #16093

[breaking-change]
2014-11-04 05:07:47 -05:00
bors
82fb413d37 auto merge of #18596 : alexcrichton/rust/rollup, r=alexcrichton
Let's see if we can clear out the queue entirely today!
2014-11-04 08:11:53 +00:00
bors
ec28b4a6c8 auto merge of #18132 : P1start/rust/more-help, r=jakub-
Closes #18126.

At the moment this mostly only changes notes that are particularly help-oriented or directly suggest the user to do something to help messages, and does not change messages that simply explain an error message further. If it is decided that those messages should also be help messages, I can add them to this PR, but for now I’m excluding them as I believe that changing those messages might leave very few places where notes would be appropriate.
2014-11-04 03:36:55 +00:00
Alex Crichton
f2aa8c4187 rollup merge of #18593 : hirschenberger/issue-18587
Conflicts:
	src/test/compile-fail/lint-exceeding-bitshifts.rs
2014-11-03 16:24:26 -08:00
Alex Crichton
5d6cd77070 rollup merge of #18578 : japaric/clone 2014-11-03 15:56:01 -08:00
Alex Crichton
11790a545c rollup merge of #18580 : hirschenberger/issue-17713 2014-11-03 15:56:00 -08:00
Alex Crichton
1b363f08e1 rollup merge of #18572 : cakebaker/small_doc_changes 2014-11-03 15:56:00 -08:00
Alex Crichton
a779e89a00 rollup merge of #18568 : gamazeps/issue18551 2014-11-03 15:56:00 -08:00
Alex Crichton
c1b19513ee rollup merge of #18564 : nick29581/dxr-1a 2014-11-03 15:56:00 -08:00
Alex Crichton
2659b2e885 rollup merge of #18562 : nick29581/dxr-1 2014-11-03 15:55:59 -08:00
Alex Crichton
e98172d801 rollup merge of #18560 : bkoropoff/issue-18532 2014-11-03 15:55:59 -08:00
Alex Crichton
dbb9c99911 rollup merge of #18544 : whataloadofwhat/json 2014-11-03 15:55:59 -08:00
Alex Crichton
ee5d238389 rollup merge of #18536 : bjz/strconv 2014-11-03 15:55:59 -08:00
Alex Crichton
a5aba685ba rollup merge of #18534 : huonw/next-floats 2014-11-03 15:55:59 -08:00
Alex Crichton
eb793616dc rollup merge of #18506 : nikomatsakis/assoc-type-bounds 2014-11-03 15:55:58 -08:00
Falco Hirschenberger
e7f3109708 Fix for bitshift errors lint on cross compilation #18587 2014-11-04 00:48:03 +01:00
Jorge Aparicio
03b568a846 Fix error message in compile-fail test 2014-11-03 18:29:25 -05:00
Jorge Aparicio
b8fad35dda Add test for second half of issue #15689
cc #15689
2014-11-03 18:29:25 -05:00
Jorge Aparicio
6d951b2cbd std: Fix fallout of changing #[deriving(Clone)] 2014-11-03 18:29:25 -05:00
Jorge Aparicio
07bbde8932 unicode: Fix fallout of changing #[deriving(Clone)] 2014-11-03 18:29:25 -05:00
Jorge Aparicio
8d5208ad85 core: Fix fallout of changing #[deriving(Clone)] 2014-11-03 18:29:25 -05:00
Jorge Aparicio
2a7fb3584c syntax: Use UFCS in the expansion of #[deriving(Clone)] 2014-11-03 18:29:24 -05:00
Alex Crichton
8494368d56 rollup merge of #18447 : nick29581/dst-impl3 2014-11-03 15:29:17 -08:00
Alex Crichton
fff2b35a6e rollup merge of #18355 : chastell/guide_iterators_macros_unsafe_fixes 2014-11-03 15:29:13 -08:00
Alex Crichton
3aaee490d3 rollup merge of #18318 : arielb1/transmute-cleanup 2014-11-03 15:29:08 -08:00
Alex Crichton
b8e2eb7294 rollup merge of #18247 : kballard/vim_rust_run_cwd_space 2014-11-03 15:29:03 -08:00