Commit Graph

57706 Commits

Author SHA1 Message Date
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
Brian Anderson
4f5e73be1b Build a dummy alloc_jemalloc crate on platforms that don't support it
This is a hack to support building targets that don't support jemalloc
alongside hosts that do. The jemalloc build is controlled by a feature
of the std crate, and if that feature changes between targets, it
invalidates the fingerprint of std's build script (this is a cargo
bug); so we must ensure that the feature set used by std is the same
across all targets, which means we have to build the alloc_jemalloc
crate for targets like emscripten, even if we don't use it.
2016-09-30 14:03:00 -07:00
Brian Anderson
3c038c0505 Document emscripten's unwind impl and remove unused function 2016-09-30 14:02:59 -07:00
Brian Anderson
badfd6200b Cleanup bootstrap 2016-09-30 14:02:58 -07:00
Brian Anderson
21b987ea08 Unignore some working emscripten tests 2016-09-30 14:02:58 -07:00
Brian Anderson
d997a6291f Call emcc with ERROR_ON_UNDEFINED_SYMBOLS 2016-09-30 14:02:57 -07:00
Brian Anderson
834bbab11b rustbuild: Only build 'dist' when building the host
Doing this step for the target results in the build system
trying to build rustc for asmjs, which doesn't work.
2016-09-30 14:02:56 -07:00
Brian Anderson
096670ca41 Ignore various entire test modules on emscripten 2016-09-30 14:02:56 -07:00
Brian Anderson
525a798ca6 Rewrite emscripten unwinding to use libcxx 2016-09-30 14:02:55 -07:00
Brian Anderson
7c0bf41cff Ignore another emscripten test because missing intrinsics 2016-09-30 14:02:54 -07:00
Brian Anderson
8401e37495 Update bootstrap and compiletest to use the detected nodejs 2016-09-30 14:02:53 -07:00
Brian Anderson
a4c3288129 Change the sigs of set_print/set_panic to allow restoring the default objects 2016-09-30 14:02:53 -07:00
Brian Anderson
183b2ddce4 Ignore entire test modules on emscripten instead of individual tests 2016-09-30 14:02:52 -07:00
Brian Anderson
37abec06e5 Tidy 2016-09-30 14:02:51 -07:00
Brian Anderson
10a52d507d Update LLVM with fastcomp patches 2016-09-30 14:02:49 -07:00
Brian Anderson
00e377c161 Ignore all debuginfo tests on emscripten 2016-09-30 14:02:49 -07:00
Brian Anderson
9c4a01ee9e Ignore lots and lots of std tests on emscripten 2016-09-30 14:02:48 -07:00
Brian Anderson
fcd3279f36 Improve bootstrap crate testing for emscripten 2016-09-30 14:02:47 -07:00
Brian Anderson
f41b363ea3 Update libtest for single-threaded emscripten support 2016-09-30 14:02:46 -07:00
Brian Anderson
b8b50f0eda Preliminary wasm32 support 2016-09-30 14:02:45 -07:00
Ross Schulman
b2dfeac690 Adding ignore-emscripten to failing tests. 2016-09-30 14:02:44 -07:00
Ross Schulman
ad9184c9bf Adapting bootstrap to run tests on asmjs. 2016-09-30 14:02:43 -07:00
Brian Anderson
c62d8b12bf Update gcc-rs for emscripten 2016-09-30 14:02:43 -07:00
Brian Anderson
1231ce33db Support emscripten in rustbuild 2016-09-30 14:02:42 -07:00
Jan-Erik Rediger
86fd661bcb Patch panic_unwind to compile, but this is surely broken 2016-09-30 14:02:41 -07:00
Jan-Erik Rediger
cb3f5799f4 Make the jsbackend an optional component 2016-09-30 14:02:41 -07:00
Jan-Erik Rediger
939bd47339 Configure LLVM to use js backend
Initialize the asmjs backend for LLVM
2016-09-30 14:02:39 -07:00
Jesus Garlea
f4fdf814de Update E0220 error format
squash! Update E0220 error format

Update Error E0220 to new format
2016-09-30 15:15:16 -05:00
Corey Farwell
7732e621f4 Simplify logic around Context's root_path.
Was previously cached and maintained in the `Context`, which to me seems
overkill.
2016-09-30 15:54:53 -04:00
Corey Farwell
c66c4533d1 Migrate Item ➡ ItemType function to method. 2016-09-30 15:54:53 -04:00
Guillaume Gomez
d8239e3e59 Update E0035 to new error format 2016-09-30 21:30:05 +02:00
Alex von Gluck IV
dc9ac88419 Haiku: Fix target triplet delimiter 2016-09-30 13:17:22 -05:00
bors
50932b5f4e Auto merge of #36864 - steveklabnik:rollup, r=steveklabnik
Rollup of 13 pull requests

- Successful merges: #36529, #36535, #36576, #36623, #36711, #36750, #36810, #36829, #36833, #36841, #36842, #36851, #36860
- Failed merges:
2016-09-30 11:08:58 -07:00
Alex Crichton
7724a04b0f rustdoc: Fix documenting rustc-macro crates
This commit adds a "hack" to the session to track whether we're a rustdoc
session or not. If we're rustdoc then we skip the expansion to add the
rustc-macro infrastructure.

Closes #36820
2016-09-30 10:49:30 -07:00
Steve Klabnik
af1df9880f Rollup merge of #36860 - wesleywiser:patch-2, r=Manishearth
Add `Send` and `Sync` traits to the reference

Fixes #36859
2016-09-30 13:44:48 -04:00
Steve Klabnik
ebd1ad3fbb Rollup merge of #36851 - tmiasko:fix-read-until-docs, r=bluss
Fix BufRead::read_until documentation.

Second paragraph already fully explains what happens when EOF is
encountered. The third paragraph (removed one) is spurious and
misleading.
2016-09-30 13:44:48 -04:00
Steve Klabnik
ce8c6f6d00 Rollup merge of #36842 - cjm00:release-notes-fix, r=brson
Fixed wrong link in release notes

The link for the pull request updating hash_map to implement Debug was a copy of the previous link, this changes the link to the correct PR.
2016-09-30 13:44:48 -04:00
Steve Klabnik
e3e5f1fea3 Rollup merge of #36841 - GuillaumeGomez:process_doc, r=steveklabnik
Improve process module doc a bit

r? @steveklabnik
2016-09-30 13:44:47 -04:00
Steve Klabnik
a6f0a41b14 Rollup merge of #36833 - tmiasko:system-time-error, r=steveklabnik
Reword description of SystemTimeError.

Repalce timestamp with a system time, to be more consistent with
remaining documentation.

r? @steveklabnik
2016-09-30 13:44:47 -04:00
Steve Klabnik
c2977ea038 Rollup merge of #36829 - apasel422:releases-typo, r=alexcrichton
Fix typo in RELEASES.md
2016-09-30 13:44:47 -04:00
Steve Klabnik
fb880dfce4 Rollup merge of #36810 - GuillaumeGomez:ops_doc, r=steveklabnik
Add missing urls for ops module

Part of #29365.

r? @steveklabnik
2016-09-30 13:44:47 -04:00
Steve Klabnik
083af27779 Rollup merge of #36750 - GuillaumeGomez:cmp_doc, r=steveklabnik
Add missing links on cmp module

r? @steveklabnik
2016-09-30 13:44:47 -04:00