Rollup merge of #22667 - dotdash:retslot_cast.rs, r=huonw
We already do this for the function arguments, but miss it for the
retslot pointer, which can lead to LLVM assertions because the retslot
has the wrong type.
Rollup merge of #22696 - stepancheg:use-box, r=alexcrichton
e. g.
```
let b: Box<Foo> = Box::from_raw(p);
```
instead of
```
let b: Box<Foo> = mem::transmute(p);
```
Patch also changes closure release code in `src/libstd/sys/unix/thread.rs`
when `pthread_create` failed. Raw pointer was transmuted to box of
`FnOnce()` instead of `Thunk`. This code was probably never executed,
because `pthread_create` rarely fails.
(And there are two more patches in PR: fix typo in doc and mark `from_raw` and `into_raw` functions inline.)
Rollup merge of #22662 - iKevinY:readme-changes, r=steveklabnik
- Various grammatical changes.
- Use triple-backtick syntax and `sh` highlighting for code blocks.
- Fix indentation of code block in step 2 of \"Building on Windows\".
- Use title case for \"Getting Help\" subheading.
Rollup merge of #22660 - achernya:tuple-reference, r=alexcrichton
The Rust Reference should include the tuple indexing (using a number
as a field) notation; currently it is only available on
http://doc.rust-lang.org/std/primitive.tuple.html and not easily
searchable.
Rollup merge of #22514 - diamondman:intro_doc_threading, r=steveklabnik
Fixed example threaded code in intro doc never printing results. Threads were created with Thread::spawn instead of Thread::scoped. Also added correct thread handling like in the first example of the document.
Rollup merge of #22371 - fhahn:issue-17829-compiletest-nocapture, r=Manishearth
This is a patch for #17829.
In `compiletest` there are multiple layers which capture the output. The first layer is `run_tests_console` which is used to execute all tests.
Then there are some tests that contain unit tests, which by default also captures output. Therefore `compiletest` adds `RUST_TEST_NOCAPTURE` (and `RUST_TEST_TASKS` for completeness) to the run environment of the task.
Finally, the task used to execute a test redirects stdout and stdin. At the moment, the `VERBOSE=1` prints all captured output of the task (but has to print stdout and stderr separately). So at the moment using `RUST_TEST_NOCAPTURE=1` only makes sense when also using `VERBOSE=1` which seems a little bit cumbersome.
Should I update the patch to only print the output of the tasks that actually execute the test (`VERBOSE=1` includes other stuff, like the output of the task used to compile the test)? This will probably involve adding an extra flag to some functions in `src/compiletest/runtest.rs` to distinguish compilation runs from runs that execute the actual tests.
Stepan Koltsov [Sun, 22 Feb 2015 23:58:22 +0000 (02:58 +0300)]
Use boxed functions instead of transmute
... to convert between Box and raw pointers. E. g. use
```
let b: Box<Foo> = Box::from_raw(p);
```
instead of
```
let b: Box<Foo> = mem::transmute(p);
```
Patch also changes closure release code in `src/libstd/sys/unix/thread.rs`
when `pthread_create` failed. Raw pointer was transmuted to box of
`FnOnce()` instead of `Thunk`. This code was probably never executed,
because `pthread_create` rarely fails in practice.
bors [Sun, 22 Feb 2015 22:45:46 +0000 (22:45 +0000)]
Auto merge of #22466 - Kimundi:str_pattern_ai_safe, r=aturon
This is not a complete implementation of the RFC:
- only existing methods got updated, no new ones added
- doc comments are not extensive enough yet
- optimizations got lost and need to be reimplemented
Björn Steinbrink [Sun, 22 Feb 2015 11:47:27 +0000 (12:47 +0100)]
Add missing cast for retslots in case of "subtyping" due to trait bounds
We already do this for the function arguments, but miss it for the
retslot pointer, which can lead to LLVM assertions because the retslot
has the wrong type.
Kevin Yap [Sat, 21 Feb 2015 22:46:06 +0000 (14:46 -0800)]
Miscellaneous README changes
- Various grammatical changes.
- Use triple-backtick syntax and sh highlighting for code blocks.
- Fix indentation of code block in step 2 of "Building on Windows".
- Use title case for "Getting Help" subheading.
The Rust Reference should include the tuple indexing (using a number
as a field) notation; currently it is only available on
http://doc.rust-lang.org/std/primitive.tuple.html and not easily
searchable.
Rollup merge of #22567 - Gankro:unstable, r=alexcrichton
* Adds features and allows
* Removes unused muts, unused imports, dead code
* Migrates some deprecated code to new io/env
* Changes std::num::uint/int to be re-exports of std::num::usize/isize
libcollections, liballoc, and libcoretest no longer warn during testing.
libstd warns much less, though there's some dangly bits that weren't obvious fixes. In particular, how to only supress deprecated warnings in specific submodules of std.
In `if loop {} {}`, the `if` is actually unreachable, but we didn't
handle that correctly and when trying to translate the `if` we tried to
branch on the \"return value\" of the loop expression, which is not an
`i1` and therefore triggered an LLVM assertion.
Nick Cameron [Sat, 21 Feb 2015 03:25:51 +0000 (16:25 +1300)]
In the rustc driver, we pass the expanded, not the pre-expansion, AST to the post-analysis callback. We can also pass this to post-write-deps callback.