Commit Graph

44908 Commits

Author SHA1 Message Date
eternaleye
4e67f9c611 Write deterministic archives
Currently, `rustc` generates nondeterministic archives, which contain system timestamps. These don't really serve any useful purpose, and enabling deterministic archives moves us a little closer to completely deterministic builds. For a small toy library using `std::ops::{Deref,DerefMut}`, this change actually results in a bit-for-bit identical build every time.
2015-07-22 23:54:59 -07:00
Eli Friedman
b2213498c4 Resolve lifetime parameters for foreign functions.
Pretty straightforward; just need to make sure to explicitly handle
the generic parameters of each ast::ForeignItemFn.

Fixes #26587.
2015-07-22 22:37:20 -07:00
bors
8d91bbd90a Auto merge of #27192 - dotdash:inline_eq_slice, r=luqmana
eq_slice_() used to be a common implementation for two function that
both called it, but of those only eq_slice() is left, so we can as well
directly inline the code.
2015-07-23 02:24:06 +00:00
Eli Friedman
312f886d03 Remove orphaned unsigned_negation lint reference. 2015-07-22 17:47:01 -07:00
bors
cb4f102e38 Auto merge of #27191 - pnkfelix:sidestep-unary-negate-warning, r=alexcrichton
Work around unary negation to-be-feature-gated warning by replacing references to `-1` as a `ast::NodeId` with `ast::DUMMY_NODE_ID`, which seems like a better notation to use (it is currently also `-1`.

(AFAICT the code is not *relying* on the value `-1` anywhere, it really just needed a dummy value for when the input is `None`.)
2015-07-22 23:37:37 +00:00
Alex Crichton
70e8220166 trans: Consolidate creating pass manager builders
The LTO pass in the compiler forgot to call the `LLVMRustAddBuilderLibraryInfo`
function and configure other options such as merge_functions, vectorize_slp,
etc. This ended up causing linker errors on MSVC targets because the optimizer
didn't have the right knowledge that some system functions are missing on these
platforms.

This commit consolidates creation of PassManagerBuilder instances to one
function which is then called when needed. This ensures that the pass manager is
always correctly configured with the various target-specific information that
LLVM needs.

Overall, this fixes `-C lto -C opt-level=3` on 32-bit MSVC targets.
2015-07-22 16:22:51 -07:00
Felix S. Klock II
1905a49875 address review feedback: remove dupe feature opt-in. 2015-07-22 23:25:52 +02:00
Felix S. Klock II
abad7d6bba placate make tidy. 2015-07-22 23:23:36 +02:00
Björn Steinbrink
a66af8788d Avoid creating basic blocks for empty cleanup scopes
When compiling libsyntax this removes about 30k basic blocks that only
contain a single unconditional jump and reduces the peak memory usage by
about 10MB (from 681MB down to 671MB).
2015-07-22 23:15:01 +02:00
Andrew Paseltiner
cf8a1636ef add diagnostics for E0437 and E0438 2015-07-22 16:53:50 -04:00
bors
4234c4487a Auto merge of #27188 - pnkfelix:sidestep-warning-for-E0045, r=alexcrichton
Sidestep warning about repeated E0045 `span_err!` invocation.

(That is, take the two expressions with the same message and unify them into one subroutine.)
2015-07-22 20:44:39 +00:00
Jason Schein
c80bff0186 Added how to use labels to break nested loops to trpl. 2015-07-22 13:00:51 -07:00
Aidan Hobson Sayers
b6a0d9e178 Additional notes to link-args 2015-07-22 18:15:23 +01:00
Aidan Hobson Sayers
a8a49fbfc9 musl static linking not glibc 2015-07-22 18:15:16 +01:00
bors
5542830665 Auto merge of #27219 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #27084, #27127, #27131, #27140, #27146, #27147, #27151, #27154, #27155, #27156, #27157, #27158, #27163, #27164, #27166, #27167, #27170, #27175, #27183, #27201, #27202
- Failed merges: #26778
2015-07-22 16:58:56 +00:00
Steve Klabnik
5f04b1b384 Rollup merge of #27202 - apasel422:issue-21174, r=alexcrichton 2015-07-22 12:56:52 -04:00
Steve Klabnik
5665efd60e Rollup merge of #27201 - Ticki:master, r=steveklabnik
Just some small changes.
2015-07-22 12:56:52 -04:00
Steve Klabnik
7cacf83009 Rollup merge of #27183 - Dangthrimble:master, r=steveklabnik
Updated "Installing Rust" and "After installation" to provide additional guidance to Windows users on including Rust in the Path system variable.

r? @steveklabnik
2015-07-22 12:56:52 -04:00
Steve Klabnik
068e7d7039 Rollup merge of #27175 - steveklabnik:channels_plus_travis, r=alexcrichton
This should help people configure travis to test all three channels.
2015-07-22 12:56:52 -04:00
Steve Klabnik
a39a36aec9 Rollup merge of #27170 - steveklabnik:doc_std_io_intoinnererror, r=alexcrichton
Mostly adding examples.

r? @alexcrichton
2015-07-22 12:56:51 -04:00
Steve Klabnik
932f0bb5c3 Rollup merge of #27167 - steveklabnik:doc_std_io_take, r=alexcrichton
Better and more consistent links to their creators.
2015-07-22 12:56:51 -04:00
Steve Klabnik
6397ecb3ca Rollup merge of #27166 - steveklabnik:doc_std_io_linewriter, r=alexcrichton
Beef up the struct docs, add examples for the methods.

r? @alexcrichton
2015-07-22 12:56:51 -04:00
Steve Klabnik
47f1286d56 Rollup merge of #27164 - steveklabnik:doc_io_utils, r=alexcrichton
These provide various special readers, so point their docs to their
constructor functions in a manner consistent with everything else.

r? @alexcrichton
2015-07-22 12:56:50 -04:00
Steve Klabnik
cc60f3f472 Rollup merge of #27163 - steveklabnik:doc_std_io_cursor, r=alexcrichton
Beef up the docs on the type, as well as adding examples for all
methods.

r? @alexcrichton
2015-07-22 12:56:50 -04:00
Steve Klabnik
5f0c9983f6 Rollup merge of #27158 - apasel422:issue-14382, r=alexcrichton
closes #14382
2015-07-22 12:56:50 -04:00
Steve Klabnik
558008b0f0 Rollup merge of #27157 - steveklabnik:doc_std_io_iterators, r=alexcrichton
Make them all consistent and link up the documentation.

r? @alexcrichton
2015-07-22 12:56:50 -04:00
Steve Klabnik
b73c6fe8f2 Rollup merge of #27156 - AlisdairO:diagnostics253, r=Manishearth
This is a resubmission of my previous git failure - apologies.  Just fixing up a wording error that was discovered in E0253 after the r.

r? @Manishearth
2015-07-22 12:56:49 -04:00
Steve Klabnik
239657c377 Rollup merge of #27155 - steveklabnik:doc_std_io_buf_writer, r=alexcrichton
Mostly through adding examples.

r? @alexcrichton 

I'm going to be doing a bunch of these today, but I figured I'd keep it one PR per struct, since the last 'all the things in one PR' ended up taking a week to actually land.
2015-07-22 12:56:49 -04:00
Steve Klabnik
2375ef5327 Rollup merge of #27154 - apasel422:issue-10436, r=Gankro
closes #10436
2015-07-22 12:56:49 -04:00
Steve Klabnik
6b0833a597 Rollup merge of #27151 - pfalabella:patch-2, r=steveklabnik
I'm pretty sure this was a typo
2015-07-22 12:56:49 -04:00
Steve Klabnik
cb5d9a311d Rollup merge of #27147 - apasel422:issue-19404, r=alexcrichton
closes #19404
2015-07-22 12:56:48 -04:00
Steve Klabnik
70bbdd7eb6 Rollup merge of #27146 - apasel422:issue-14229, r=alexcrichton
closes #14229
2015-07-22 12:56:48 -04:00
Steve Klabnik
0ac7438c9b Rollup merge of #27140 - dotdash:test-26468, r=luqmana
The fix for #26468 was made upstream and landed with the LLVM update in #27076.

Closes #26468
2015-07-22 12:56:48 -04:00
Steve Klabnik
db0e0efa78 Rollup merge of #27131 - apasel422:issue-20162, r=arielb1
closes #20162
2015-07-22 12:56:48 -04:00
Steve Klabnik
5a44f70f75 Rollup merge of #27127 - AlisdairO:diagnostics172, r=Manishearth
As title :-)

Part of #24407.
r? @Manishearth
2015-07-22 12:56:47 -04:00
Steve Klabnik
bc4daf7e94 Rollup merge of #27084 - GuillaumeGomez:patch-2, r=brson
Part of #24407.
r? @Manishearth
2015-07-22 12:56:47 -04:00
Steve Klabnik
103749d933 Improve documentation for std::io::Cursor
Beef up the docs on the type, as well as adding examples for all
methods.
2015-07-22 11:42:59 -04:00
Steve Klabnik
e31ad959cc Improve documentation for std::io::LineWriter
Beef up the struct docs, add examples for the methods.
2015-07-22 10:19:36 -04:00
Felix S. Klock II
505cd8a3cc Add test of placement-in syntax, analogous to new-box-syntax.rs 2015-07-22 15:34:01 +02:00
Felix S. Klock II
7a700341e7 refine set of allowed warnings in new-box-syntax.rs test. 2015-07-22 15:34:01 +02:00
Felix S. Klock II
a81f88d4d6 Add actual use of the struct Structure lying dormant in new-box-syntax.rs.
The original test program exercised the (garbage-collected heap)
allocation form `box (GC) ...`, feeding an instance of `Structure` in
as the expression. This obviously went away when `GC` went away, but
there's no reason for us not to include an appropriate unit test here
for the same form, just for heap-allocated instances of `Structure`.
2015-07-22 15:34:01 +02:00
Felix S. Klock II
9d6cc05a06 uncomment feature-gate testing for in PLACE BLOCK now that its in the parser. 2015-07-22 15:34:01 +02:00
Felix S. Klock II
9f6f35bef4 Added support for parsing in PLACE { BLOCK_CONTENT }. 2015-07-22 15:34:01 +02:00
Felix S. Klock II
e0b44797ce Add new feature gate opt-in necessary for new-box-syntax.rs. 2015-07-22 15:34:00 +02:00
Felix S. Klock II
80465334aa Update issue-14084.rs test to reflect changes to error output. 2015-07-22 15:34:00 +02:00
Felix S. Klock II
a9d79978b6 Update the intrinsic-move-val.rs test to reflect its newer signature. 2015-07-22 15:34:00 +02:00
Felix S. Klock II
4a5fb4bd2a Add necessary feature gate opt-in for the pushpop_unsafe test. 2015-07-22 15:34:00 +02:00
Felix S. Klock II
bb952358aa Factor feature gate tests for box syntax into two separate files.
The two tests are separate since the current implementation performs
the feature gate checks at distinct phases in the compilation, with an
`abort_if_errors` calls separating them.
2015-07-22 15:34:00 +02:00
Felix S. Klock II
9ca1c61879 Instrumentation in effort to understand treatment of allow_internal_unstable.
It is all `debug!` instrumentation so it should not impose a cost on
non-debug builds.
2015-07-22 15:34:00 +02:00
Felix S. Klock II
07afe91fda Allow unstable code to be injected by placement-in expansion.
(Over time the stability checking has gotten more finicky; in
particular one must attach the (whole) span of the original `in PLACE
BLOCK` expression to the injected references to unstable paths, as
noted in the comments.)

call `push_compiler_expansion` during the placement-`in` expansion.
2015-07-22 15:34:00 +02:00