Commit Graph

55289 Commits

Author SHA1 Message Date
Jan-Erik Rediger
079db4f971 Use correct error handling type 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
dc7076b52e [LLVM-3.9] Pass correct relocation model flag 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
2c92756dde Upgrade llvm 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
ad262d54dc Update compiler-rt 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
09c3f33ec2 Flip LLVM verion check clause 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
f439aeef07 [LLVM-3.9] Use old way of getting next child
This was changed back in
https://github.com/rust-lang/llvm/commit/aacf2fbf
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
d0e5aa4820 Upgrade compiler-rt 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
2bcb2b8990 Upgrade LLVM to include std::thread patch 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
1798c1aa59 Refactor determining of relocation model into methods 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
1bc0447260 [LLVM-3.9] Maintain backward compatibility in Archiver 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
deafab19be [LLVM-3.9] Increase PIELevel
Previously, we had a PositionIndependentExecutable, now we simply
choose the highest level. This should be equivalent.

🍰
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
12ccff99bf Use relative path to type 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
9e706f90cb [LLVM-3.9] Configure PIE at the module level instead of compilation unit level
This was deleted here[1] which appears to be replaced by this[2]
which is a new setPIELevel function on the LLVM module itself.

[1]: http://reviews.llvm.org/D19753
[2]: http://reviews.llvm.org/D19671
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
dbb4178f4e [LLVM-3.9] Update return type for Archive::create
Changed in
0b21d88fd3
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
8433f9bb33 [LLVM-3.9] Replace NewArchiveIterator with NewArchiveMember
The new NewArchiveMember is simpler and requires less context,
according to upstream.

This was changed in http://reviews.llvm.org/D21721
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
5b44e10fb7 [LLVM-3.9] Preserve certain functions when internalizing
This makes sure to still use the old way for older LLVM versions.
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
6ed5db8d35 [LLVM-3.9] Specify that we are using the legacy interface
LLVM pass manager infrastructure is currently getting rewritten to be
more flexible, but the rewrite isn't complete yet.
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
fba1f8f123 [LLVM-3.9] Setup the compile unit information immediately
Since LLVM reversed the order of the debug info graphs, we need to have
a compile unit that exists *before* any functions (`DISubprogram`s) are
created. This allows the LLVM debug info builder to automatically link
the functions to the compile unit.
2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
7420874a97 [LLVM-3.9] Rename custom methods to Rust-specific ones 2016-07-29 10:29:44 +02:00
Jan-Erik Rediger
d22a9a2940 Upgrade to rust-llvm-2016-07-09 2016-07-29 10:29:44 +02:00
bors
1523a5480a Auto merge of #34980 - cardoe:expose-target-options, r=alexcrichton
Convert built-in targets to JSON

Convert the built-in targets to JSON to ensure that the JSON parser is always fully featured. This follows on #32988 and #32847. The PR includes a number of extra commits that are just intermediate changes necessary for bisectibility and the ability to prove correctness of the change.
2016-07-28 23:18:52 -07:00
Corey Farwell
f459e801fd Rewrite collections::LinkedList::append doc example. 2016-07-28 22:09:31 -04:00
Brett Cannon
3563e400cc Try to clear up some awkward wording 2016-07-28 19:02:25 -07:00
bors
d9a911d236 Auto merge of #34967 - TimNN:mipsel-musl-soft-float, r=alexcrichton
switch mipsel-musl to soft float

Closes #34922.

r? @alexcrichton
2016-07-28 18:31:54 -07:00
bors
54c0dcfd63 Auto merge of #34956 - nikomatsakis:incr-comp-o-files, r=mw
Enable reuse of `.o` files if nothing has changed

This PR completes a first "spike" for incremental compilation by enabling us to reuse `.o` files when nothing has changed. When in incr. mode, we will save `.o` files into the temporary directory, then copy them back out again if they are still valid. The code is still a bit rough but it does seem to work. =)

r? @michaelwoerister

Fixes #34036
Fixes #34037
Fixes #34038
2016-07-28 14:17:54 -07:00
Niko Matsakis
42cd5d4ee2 make it possible to track where hash diverges 2016-07-28 15:39:34 -04:00
Niko Matsakis
e359147d12 hash def-path's better
actually we shouldn't even hash nested items at all, but that is
addressed in a followup PR
2016-07-28 15:39:02 -04:00
bors
d1df3fecdf Auto merge of #34485 - tbu-:pr_unicode_debug_str, r=alexcrichton
Escape fewer Unicode codepoints in `Debug` impl of `str`

Use the same procedure as Python to determine whether a character is
printable, described in [PEP 3138]. In particular, this means that the
following character classes are escaped:

- Cc (Other, Control)
- Cf (Other, Format)
- Cs (Other, Surrogate), even though they can't appear in Rust strings
- Co (Other, Private Use)
- Cn (Other, Not Assigned)
- Zl (Separator, Line)
- Zp (Separator, Paragraph)
- Zs (Separator, Space), except for the ASCII space `' '` `0x20`

This allows for user-friendly inspection of strings that are not
English (e.g. compare `"\u{e9}\u{e8}\u{ea}"` to `"éèê"`).

Fixes #34318.
CC #34422.

[PEP 3138]: https://www.python.org/dev/peps/pep-3138/
2016-07-28 11:20:33 -07:00
mcarton
6dc98cf099 Revert "Remove unused methods from MultiSpan"
This reverts commit f7019a4e2f.

This removed the only way to make a suggestion with more than one
substitute. Bring it back until we come up with a better solution.
2016-07-28 19:33:31 +02:00
Jonathan A. Kollasch
990f193f6a Merge remote-tracking branch 'upstream/master' into remaining_cpu_x86-64 2016-07-28 11:57:40 -05:00
Jonathan Turner
ea77049cfa Move to {integer} and {float} 2016-07-28 09:49:31 -07:00
Niko Matsakis
2f9fff2191 Keep multiple files per work-product
In the older version, a `.o` and ` .bc` file were separate
work-products.  This newer version keeps, for each codegen-unit, a set
of files of different kinds. We assume that if any kinds are available
then all the kinds we need are available, since the precise set of
switches will depend on attributes and command-line switches.

Should probably test this: the effect of changing attributes in
particular might not be successfully tracked?
2016-07-28 12:05:45 -04:00
Niko Matsakis
ceeb158e0a Address mw nits 2016-07-28 12:05:45 -04:00
Niko Matsakis
08a72d20c9 Add a testing mechanism and a simple spike test 2016-07-28 12:05:45 -04:00
Niko Matsakis
58d4b8edd3 Modify trans to skip generating .o files
This checks the `previous_work_products` data from the dep-graph and
tries to simply copy a `.o` file if possible.  We also add new
work-products into the dep-graph, and create edges to/from the dep-node
for a work-product.
2016-07-28 12:05:45 -04:00
Jethro Beekman
cdc6afed38 Add non-panicking abs() functions to all signed integer types.
Currently, calling abs() on one of the signed integer types might panic (in
debug mode at least) because the absolute value of the largest negative value
can not be represented in that signed type. Unlike all other integer
operations, there is currently not a non-panicking version on this function.
This seems to just be an oversight in the design, therefore just adding it now.
2016-07-28 09:05:43 -07:00
Niko Matsakis
cca4804251 Code to save/load the work-products map from disk
Work products are deleted if any of their inputs are dirty.
2016-07-28 12:05:04 -04:00
Niko Matsakis
ffc13b2f80 Store crate_disambiguator as an InternedString
We used to use `Name`, but the session outlives the tokenizer, which
means that attempts to read this field after trans has complete
otherwise panic. All reads want an `InternedString` anyhow.
2016-07-28 12:05:04 -04:00
Niko Matsakis
2b38c4bdea Extend DepGraph so it can track "work-products"
A work product right now is just a `.o` file. In the future it probably
includes other kinds of files, such as `.bc` files saving the
unoptimized LLVM IR.

However, because WorkProductIds must be independent of DefIds, so that
they don't need translation, this system may not be suitable *as is* for
storing fine-grained information (such as the MIR for individual defs),
as it was originally intended. We will want to refactor some for that.
2016-07-28 12:05:04 -04:00
Jonathan Turner
cfdaca049a Rename _ to {numerics} for unknown numeric types 2016-07-28 08:58:25 -07:00
bors
748ecb1235 Auto merge of #35086 - Manishearth:rollup, r=Manishearth
Rollup of 7 pull requests

- Successful merges: #34951, #34963, #34969, #35013, #35037, #35040, #35058
- Failed merges:
2016-07-28 08:19:33 -07:00
Manish Goregaokar
bc283bb8ae Rollup merge of #35040 - soltanmm:couple-is-a-pun, r=nikomatsakis
Use &mut for `CombineFields` in inference relations

Because dropping obligations on the floor makes a mess.

r? @nikomatsakis
2016-07-28 20:33:07 +05:30
Manish Goregaokar
22297bdf98 Rollup merge of #35037 - ollie27:rustdoc_tuple_struct_where, r=alexcrichton
rustdoc: Fix tuple struct where clause rendering

For tuple structs the where clause comes after the definition.

Fixes #34928
2016-07-28 20:33:07 +05:30
Manish Goregaokar
be6b73f19d Rollup merge of #35013 - tamird:coerce-match-valgrind, r=alexcrichton
move coerce-match{,-calls} into run-pass-valgrind

Closes #21696.
2016-07-28 20:33:07 +05:30
Manish Goregaokar
f540f5d453 Rollup merge of #34969 - jseyfried:fix_cfg_feature, r=nrc
Avoid processing `feature`s on unconfigured crates

Fixes #34932, a regression caused by #34272.
r? @nrc
2016-07-28 20:33:06 +05:30
Manish Goregaokar
43bcada397 Rollup merge of #34963 - petrochenkov:useerr, r=jseyfried
resolve: Fix ICE and extra diagnostics happening when unresolved imports are used in patterns

Closes https://github.com/rust-lang/rust/issues/34933

r? @jseyfried
2016-07-28 20:33:06 +05:30
Manish Goregaokar
80c998d0f1 Rollup merge of #34951 - tomgarcia:covariant-vec, r=brson
Make vec::Drain and binary_heap::Drain covariant

I removed all mutable pointers/references, and added covariance tests similar to the ones in #32635. It builds and passes the tests, but I noticed that there weren't any tests of Drain's behaviour (at least not in libcollectionstest), so I'm not sure if my changes accidently broke Drain's behaviour. Should I add some tests for that (and if so, what should the tests include)?
2016-07-28 20:33:06 +05:30
Corey Farwell
f98c55d933 Add documentation example for str::Chars::as_str. 2016-07-28 08:54:48 -04:00
bors
cec262e55a Auto merge of #34951 - tomgarcia:covariant-vec, r=brson
Make vec::Drain and binary_heap::Drain covariant

I removed all mutable pointers/references, and added covariance tests similar to the ones in #32635. It builds and passes the tests, but I noticed that there weren't any tests of Drain's behaviour (at least not in libcollectionstest), so I'm not sure if my changes accidently broke Drain's behaviour. Should I add some tests for that (and if so, what should the tests include)?
2016-07-28 05:24:31 -07:00
Guillaume Gomez
123bf1e95d Add OpenOptionsExt doc examples 2016-07-28 13:04:24 +02:00