Commit Graph

57587 Commits

Author SHA1 Message Date
bors
1cdc0fb11a Auto merge of #36904 - camlorn:field_offsets_refactor, r=eddyb
Refactor layout to store offsets of fields, not offsets after fields

This is the next PR moving us towards being able to reorder struct fields.

The old code implicitly stored the offset of the first field.  This is inadequate because the first field may no longer be offset 0 in future.  This PR refactors `layout` to use a `offsets` vector instead of a `offset_after_field` vector.
2016-10-02 14:13:27 -07:00
Jorge Aparicio
6d0b8aeb97 set panic-strategy to abort 2016-10-02 15:55:49 -05:00
Jorge Aparicio
396b757fc3 set relocation-model to static 2016-10-02 15:53:28 -05:00
Jorge Aparicio
e4c3263e5f rustc -> $(RUSTC) in rmake test 2016-10-02 15:52:26 -05:00
Jorge Aparicio
901c5f2aa4 add Thumbs to the compiler
this commit adds 4 new target definitions to the compiler for easier
cross compilation to ARM Cortex-M devices.

- `thumbv6m-none-eabi`
  - For the Cortex-M0, Cortex-M0+ and Cortex-M1
  - This architecture doesn't have hardware support (instructions) for
    atomics. Hence, the `Atomic*` structs are not available for this
    target.
- `thumbv7m-none-eabi`
  - For the Cortex-M3
- `thumbv7em-none-eabi`
  - For the FPU-less variants of the Cortex-M4 and Cortex-M7
  - On this target, all the floating point operations will be lowered
    software routines (intrinsics)
- `thumbv7em-none-eabihf`
  - For the variants of the Cortex-M4 and Cortex-M7 that do have a FPU.
  - On this target, all the floating point operations will be lowered
    to hardware instructions

No binary releases of standard crates, like `core`, are planned for
these targets because Cargo, in the future, will compile e.g. the `core`
crate on the fly as part of the `cargo build` process. In the meantime,
you'll have to compile the `core` crate yourself. [Xargo] is the easiest
way to do that as in handles the compilation of `core` automatically and
can be used just like Cargo: `xargo build --target thumbv6m-none-eabi`
is all that's needed.

[Xargo]: https://crates.io/crates/xargo
2016-10-02 15:52:26 -05:00
Austin Hicks
9482bce56e Replace offset_after_field with offsets 2016-10-02 13:13:40 -04:00
bors
8991ffc303 Auto merge of #36404 - christopherdumas:master, r=GuillaumeGomez
Documentation change to macros.rs for `includes!`

I'm not sure if this documentation is clear or extensive enough, but this is just to get started on the problem, fixes issue #36387.
2016-10-02 08:32:07 -07:00
Guillaume Gomez
cb22364f32 Merge E0002 into E0004 2016-10-02 15:45:06 +02:00
Guillaume Gomez
a638580c08 fix typos 2016-10-02 14:45:49 +02:00
bors
791fb778cc Auto merge of #36862 - chamoysvoice:E0220, r=GuillaumeGomez
Update E0220 error format

@jonathandturner
Part of #35233 .
Fixes #35385.
2016-10-02 05:01:57 -07:00
Jeffrey Seyfried
057302bcd9 Fix fallout in tests. 2016-10-02 08:25:28 +00:00
Jeffrey Seyfried
9de6bdc3cf Add test. 2016-10-02 08:25:28 +00:00
Jeffrey Seyfried
ed1e00268b Enforce the weakened shadowing restriction. 2016-10-02 08:25:27 +00:00
bors
fe36876ce1 Auto merge of #36853 - TimNN:rustbuild-out-of-tree, r=alexcrichton
fix out-of-tree rustbuild

See https://github.com/rust-lang/rust/pull/36456#issuecomment-250589906

r? @alexcrichton
2016-10-01 23:53:35 -07:00
Jeffrey Seyfried
72544afd71 Record macro import site spans. 2016-10-02 06:07:49 +00:00
Jeffrey Seyfried
1817ca4686 Refactor out resolve_macro_name. 2016-10-02 06:07:20 +00:00
Jeffrey Seyfried
2df4f2a126 Add field backtrace: SyntaxContext to ExpansionData. 2016-10-02 06:07:08 +00:00
Jeffrey Seyfried
c9f81190f2 Refactor ext::base::Resolver::add_ext to only define macros in the crate root. 2016-10-02 06:02:47 +00:00
Gavin Baker
99aae9b834 Improve error message and snippet for "did you mean x"
- Fixes #36164
- Part of #35233
- handles unknown fields
- uses UI-style tests
- update all related tests (cfail, ui, incremental)
2016-10-02 15:57:39 +11:00
Jeffrey Seyfried
797eb57aa8 Refactor field expansion_data of Resolver to use a Mark instead of a u32. 2016-10-02 04:25:31 +00:00
Jeffrey Seyfried
5c2d76d23e Add struct macros::NameBinding. 2016-10-02 04:25:27 +00:00
bors
7b33876fcc Auto merge of #36840 - eulerdisk:incr_test_for_hash_enum, r=michaelwoerister
Test Case for Incr. Comp. Hash for enums #36674.

Fixes #36674
Part of #36350

r? @michaelwoerister
2016-10-01 20:34:34 -07:00
Oliver Middleton
06a7dcd355 std: Correct stability attributes for some implementations
These are displayed by rustdoc so should be correct.
2016-10-01 23:58:14 +01:00
bors
de901573b3 Auto merge of #36828 - pnkfelix:update-compiler-rt, r=dotdash
Update src/compiler-rt to incoporate fix for UB in floatsidf.

Update src/compiler-rt to incoporate fix for UB in floatsidf.

Fix #36518
2016-10-01 14:53:04 -07:00
Brian Anderson
0fb8379ed8 std: Remove plattform-specific code from os_str 2016-10-01 19:33:02 +00:00
Brian Anderson
d311079a6f std: Move platform specific stdio code into sys 2016-10-01 19:33:02 +00:00
Brian Anderson
fea1bd4cdf std: Move platform specific memchr code into sys 2016-10-01 19:33:02 +00:00
Brian Anderson
5c21562302 std: Move platform specific env code into sys 2016-10-01 19:32:59 +00:00
Brian Anderson
e6457bb676 std: Move platform specific path code into sys 2016-10-01 19:28:17 +00:00
bors
ab38d52df7 Auto merge of #36885 - Manishearth:rollup, r=Manishearth
Rollup of 6 pull requests

- Successful merges: #36865, #36872, #36873, #36877, #36880, #36882
- Failed merges:
2016-10-01 10:17:20 -07:00
bors
df9fa1a51e Auto merge of #36857 - Manishearth:syntax-rollup, r=Manishearth
Syntax breaking batch

None
2016-10-01 06:59:09 -07:00
Manish Goregaokar
406fe7e3c2 Rollup merge of #34764 - pnkfelix:attrs-on-generic-formals, r=eddyb
First step for #34761
2016-10-01 19:22:39 +05:30
Manish Goregaokar
259d1fcd47 Rollup merge of #36599 - jonas-schievink:whats-a-pirates-favorite-data-structure, r=pnkfelix
Contains a syntax-[breaking-change] as a separate commit (cc #31645).nnAlso renames slice patterns from `PatKind::Vec` to `PatKind::Slice`.
2016-10-01 19:22:12 +05:30
Manish Goregaokar
a73ba8b98c Rollup merge of #35874 - CensoredUsername:stmt_let_typed_fix, r=Manishearth
This commit makes the return type of AstBuilder.stmt_let_typed match the return type of other AstBuilder.stmt* functions. This avoids unnecessary boxing/unboxing whenever Stmt's are stored in a Vec, which is the default use case.nnThis is a potentially plugin breaking change.
2016-10-01 19:22:08 +05:30
Manish Goregaokar
8457ab61f6 Rollup merge of #36882 - jseyfried:fix_36881, r=eddyb
resolve: fix incorrect code in `module_to_string`

Fixes #36881.
r? @nrc or @eddyb
2016-10-01 16:38:33 +05:30
Manish Goregaokar
987aea5ee4 Rollup merge of #36880 - durka:debug-unsized-ptr, r=bluss
impl Debug for raw pointers to unsized data

`?Sized` was missing from these impls for seemingly no reason.

Fixes #36870.
2016-10-01 16:38:33 +05:30
Manish Goregaokar
9e255704e5 Rollup merge of #36877 - solson:rustc-version-build-issue, r=eddyb
Fix RUSTC_VERSION for 'documenting' build stage.

Previously the `env!("RUSTC_VERSION")` requirement would break the "Documenting rustc_metadata" stage of the rustc build, since that environment variable is only defined during the main build.

r? @eddyb
2016-10-01 16:38:32 +05:30
Manish Goregaokar
e506bfa58e Rollup merge of #36873 - GuillaumeGomez:e0035_e0036, r=jonathandturner
Update E0035, E0036 and E0370 to new error format

Fixes #35634.
Fixes #35206.
Fixes #35207.

r? @jonathandturner
2016-10-01 16:38:32 +05:30
Manish Goregaokar
2e5837a102 Rollup merge of #36872 - frewsxcv:rustdoc, r=GuillaumeGomez
A couple refactorings in librustdoc.

None
2016-10-01 16:38:32 +05:30
Manish Goregaokar
3821811c49 Rollup merge of #36865 - kallisti5:master, r=brson
Haiku: Fix target triplet delimiter
2016-10-01 16:38:32 +05:30
bors
5045d4e396 Auto merge of #36824 - kali:master, r=alexcrichton
SO_NOSIGPIPE and MSG_NOSIGNAL (rebased #36426)

I'm not sure what happened when I pushed a rebased branch on #36426 , github closed it...
2016-10-01 01:19:47 -07:00
Jeffrey Seyfried
91e1f24f12 Fix module_to_string. 2016-10-01 07:41:53 +00:00
bors
8b00355119 Auto merge of #36339 - brson:emscripten-new, r=alexcrichton
Working asmjs and wasm targets

This patch set results in a working standard library for the asmjs-unknown-emscripten and wasm32-unknown-emscripten targets. It is based on the work of @badboy and @rschulman.

It does a few things:

- Updates LLVM with the emscripten [fastcomp](https://github.com/rust-lang/llvm/pull/50) patches, which include the pnacl IR legalizer and the asm.js backend. This patch is thought not to have any significant effect on existing targets.
- Teaches rustbuild to correctly link C code with emscripten
- Updates gcc-rs to work correctly with emscripten
- Teaches rustbuild to run crate tests for emscripten with node
- Modifies Thread::new to return an error on emscripten, to facilitate debugging a common failure mode
- Modifies libtest to run in single-threaded mode for emscripten
- Ignores a host of tests that don't work yet, mostly dealing with threads and I/O
- Updates libc with wasm32 definitions (presently the same as asmjs)
- Adds a wasm32-unknown-emscripten target that feeds the output of LLVM's asmjs backend through emcc to generate wasm

Notes and caveats:

- This is only known to work with `--enable-rustbuild`.
- The wasm32 target can't be tested correctly yet because of issues in compiletest and limitations in node https://github.com/kripken/emscripten/issues/4542, but hello.rs does seem to work when run on node via the binaryen interpreter
- This requires an up to date installation of the emscripten sdk from its incoming branch
- Unwinding is very broken
- When enabling the emscripten targets jemalloc is disabled for all targets, which results in test failures for the host

Next steps are to fix the jemalloc issue, start building the two emscripten targets on the auto builders, then start producing nightlies.

https://github.com/rust-lang/rust/issues/36317 tracks work on this.

Fixes https://github.com/rust-lang/rust/issues/36515
Fixes https://github.com/rust-lang/rust/issues/36515
Fixes https://github.com/rust-lang/rust/issues/36356
2016-09-30 19:00:36 -07:00
Alex Burka
ba1a49337f impl Debug for raw pointers to unsized data 2016-10-01 01:50:56 +00:00
bors
bba3fca20e Auto merge of #36866 - alexcrichton:fix-hash-again, r=eddyb
rustc: More fixes for arch-independent hashing

In another attempt to fix #36793 this commit attempts to head off any future
problems by adding a custom `WidentUsizeHasher` which will widen any hashing of
`isize` and `usize` to a `u64` as necessary. This obviates the need for a
previous number of `as u64` annotations and will hopefully protect us against
future problems here.

Closes #36793 (hopefully)
2016-09-30 15:43:52 -07:00
Scott Olson
41832f27ba Fix RUSTC_VERSION for 'documenting' build stage.
Previously the `env!("RUSTC_VERSION")` requirement would break the
"Documenting rustc_metadata" stage of the rustc build, since that
environment variable is only defined during the main build.
2016-09-30 16:24:50 -06:00
Guillaume Gomez
8ea426a6ce Update E0370 to new error format 2016-09-30 23:33:24 +02:00
Guillaume Gomez
4d5e81d80d Update E0036 to new error format 2016-09-30 23:33:20 +02:00
Alex Crichton
faae99deb7 rustc: More fixes for arch-independent hashing
In another attempt to fix #36793 this commit attempts to head off any future
problems by adding a custom `WidentUsizeHasher` which will widen any hashing of
`isize` and `usize` to a `u64` as necessary. This obviates the need for a
previous number of `as u64` annotations and will hopefully protect us against
future problems here.

Closes #36793 (hopefully)
2016-09-30 14:31:32 -07:00
Brian Anderson
afa72b5dd6 Don't build any native compiler-builtin components for emscripten 2016-09-30 14:04:09 -07:00