Commit Graph

57418 Commits

Author SHA1 Message Date
Andrew Paseltiner
fb90e4c7b6
Restore DISCONNECTED state in oneshot::Packet::send
Closes #32114
2016-10-05 17:14:06 -04:00
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
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
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
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
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
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
Steve Klabnik
431c037b94 Rollup merge of #36711 - pcn:patch-1, r=steveklabnik
Suggesting a change to a comment that puzzled me

While reading this, the comment made it difficult for me to simply absorb the concept.  It interrupted my reading flow, and I think this expresses the same meaning, but reads a bit better.  It's trivial, but makes it easier for me to move on to the next line.
2016-09-30 13:44:46 -04:00
Steve Klabnik
cabfa99199 Rollup merge of #36623 - GuillaumeGomez:doc_typos, r=steveklabnik
Fix some typos and improve doc comments style

r? @steveklabnik
2016-09-30 13:44:46 -04:00
Steve Klabnik
71a4bde9e9 Rollup merge of #36576 - GuillaumeGomez:box_urls, r=steveklabnik
Add missing urls for Box doc

r? @steveklabnik
2016-09-30 13:44:46 -04:00
Steve Klabnik
dcec48dc13 Rollup merge of #36535 - GuillaumeGomez:macro_url, r=steveklabnik
Update to new macro url syntax

r? @steveklabnik
2016-09-30 13:44:46 -04:00
Steve Klabnik
f6497ea569 Rollup merge of #36529 - bluss:index-doc, r=GuillaumeGomez
Clarify Index/IndexMut trait docs

Use examples and placeholder variable names with more meaning, to not
make it so abstract.
2016-09-30 13:44:45 -04:00
bors
954873055a Auto merge of #36823 - durka:discriminant_value, r=nagisa
add wrapper for discriminant_value, take 2

[This is #34785 reopened, since @bors apparently gave up on that thread.]

add wrapper for discriminant_value intrinsic

Implementation of [RFC 1696](https://github.com/rust-lang/rfcs/blob/master/text/1696-discriminant.md).

Wraps the `discriminant_value` intrinsic under the name `std::mem::discriminant`. In order to avoid prematurely leaking information about the implementation of enums, the return value is an opaque type, generic over the enum type, which implements Copy, Clone, PartialEq, Eq, Hash, and Debug (notably not PartialOrd). There is currently no way to get the value out excepting printing the debug representation.

The wrapper is safe and can be stabilized soon as per discussion in #24263.

cc @aturon
r? @nagisa
2016-09-30 07:35:04 -07:00
Wesley Wiser
a5244dd66c Add Send and Sync traits to the reference
Fixes #36859
2016-09-30 09:56:58 -04:00
bors
1d64acdceb Auto merge of #36822 - Aatch:resolve-callee-expr, r=luqmana
Resolve the callee type in check_call before autoderef

If the callee type is an associated type, then it needs to be normalized
before trying to deref it. This matches the behaviour of
`check_method_call` for autoderef behaviour in calls.

Fixes #36786
2016-09-30 04:24:38 -07:00
Tomasz Miąsko
1e8f692461 Fix BufRead::{read_until, read_line} documentation. 2016-09-30 11:58:10 +02:00