Commit Graph

39265 Commits

Author SHA1 Message Date
Manish Goregaokar
9dc9fcc767 Rollup merge of #22904 - dotdash:drop_old_clang, r=alexcrichton
Fixes #20467
2015-03-01 09:49:47 +05:30
Manish Goregaokar
337a0a981e Rollup merge of #22903 - semarie:openbsd-stack, r=alexcrichton
some commits in OpenBSD OS have corrected a problem of stack position.
Now, we can adjust more accurately the page guard in rust.

@dhuseby I am not sure that bitrig have already integrated these changes (the `$OpenBSD$` header in sys/kern/kern_exec.c is too old). But when they do, you may want this patch too.
2015-03-01 09:49:46 +05:30
Manish Goregaokar
87391ed52a Rollup merge of #22901 - thepowersgang:patch-1, r=eddyb
A misplaced uint->u32 instead of usize in fmt::Pointer. Added a basic test.
2015-03-01 09:49:43 +05:30
Manish Goregaokar
3c1f61ce63 Rollup merge of #22898 - edwardw:one-less-unsafe-impl, r=huonw
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-03-01 09:49:42 +05:30
Manish Goregaokar
4ac53cc6ce Rollup merge of #22896 - Ms2ger:InlineAttr, r=huonw 2015-03-01 09:49:39 +05:30
Björn Steinbrink
8b263f7566 Drop support for clang < 3.2
Fixes #20467
2015-02-28 17:53:12 +01:00
Sébastien Marie
28362d542d openbsd: adjust page guard address
some commits in OpenBSD base have corrected a problem of stack position.
Now, we can adjust more accurately the page guard in rust.
2015-02-28 17:26:42 +01:00
John Hodge
c22d026326 ifmt - Add a basic test for {:p} getting truncated 2015-02-28 22:51:29 +08:00
John Hodge
4a22c3368f Fix assuming 32-bit pointers 2015-02-28 22:44:10 +08:00
Edward Wang
2b8207a56d Remove two unsafe impls from iter::Peekable
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-02-28 22:39:50 +08:00
bors
8a69110c3b Auto merge of #22895 - Manishearth:rollup, r=Manishearth
r? @Manishearth
2015-02-28 13:49:35 +00:00
Manish Goregaokar
0775959431 Rollup merge of #22867 - FuGangqiang:master, r=steveklabnik 2015-02-28 19:19:02 +05:30
Manish Goregaokar
6b1471967c Rollup merge of #22887 - JP-Ellis:master, r=huonw
Updated the function to allow comparisons between different types since PartialOrd and PartialEq allow this.
2015-02-28 19:19:01 +05:30
Manish Goregaokar
fcd1c3699a Rollup merge of #22866 - iKevinY:version-output-doc-fix, r=Manishearth
The format of `rustc --version` was changed in #21957; this PR updates TRPL accordingly.
2015-02-28 19:19:01 +05:30
Manish Goregaokar
040a811b91 Rollup merge of #22884 - japaric:obsolete, r=alexcrichton
This is leftover from #21843

If you still have `|&:| {}` closures in your code, simply remove the `&:` part.

[breaking-change]
2015-02-28 19:19:00 +05:30
Manish Goregaokar
37760c1f25 Rollup merge of #22875 - kmcallister:maceager, r=sfackler
MacEager is a MacResult implementation for the common case where you've already built each form of AST that you might return.

Fixes #17637. Based on #18814.

This is a [breaking-change] for syntax extensions:

  * MacExpr::new becomes MacEager::expr.

  * MacPat::new becomes MacEager::pat.

  * MacItems::new becomes MacEager::items. It takes a SmallVector directly,
    not an iterator.

r? @sfackler
2015-02-28 19:18:59 +05:30
Manish Goregaokar
a0f5ed957a Rollup merge of #22869 - alexcrichton:stabilize-env, r=aturon
Now that the `std::env` module has had some time to bake this commit marks most
of its APIs as `#[stable]`. Some notable APIs that are **not** stable (and still
use the same `env` feature gate) are:

* `{set,get}_exit_status` - there are still questions about whether this is the
  right interface for setting/getting the exit status of a process.
* `page_size` - this may change location in the future or perhaps name as well.

This also effectively closes #22122 as the variants of `VarError` are
`#[stable]` now. (this is done intentionally)
2015-02-28 19:18:59 +05:30
Ms2ger
63513d06a2 Remove the re-exports for InlineAttr variants. 2015-02-28 13:56:32 +01:00
bors
6f8d831406 Auto merge of #22851 - FlaPer87:oibit-send-and-friends, r=nikomatsakis
Fixes #22828
Fixes #22629

r? @nikomatsakis
2015-02-28 11:02:32 +00:00
bors
8519e7833d Auto merge of #22839 - lifthrasiir:better-backtrace, r=alexcrichton
Fixes #20978 for supported platforms (i.e. non-Android POSIX).

This uses `backtrace_pcinfo` to inspect the DWARF debug info and list the file and line pairs for given stack frame. Such pair is not unique due to the presence of inlined functions and the updated routine correctly handles this case. The code is modelled after libbacktrace's `backtrace_full` routine.

There is one known issue with this approach. Macros, when invoked, take over the current frame and shadows the file and line pair which has invoked a macro. In particular, this makes many panicking
macros a bit harder to inspect. This really is a debuginfo problem, and the backtrace routine should print them correctly with a correct debuginfo.

Some example trace:

```
thread '<main>' panicked at 'explicit panic', /home/arachneng/Works/git/rust/src/test/run-pass/backtrace-debuginfo.rs:74
stack backtrace:
   1:         0xd964702f - sys::backtrace::write::h32d93fffb64131b2yxC
   2:         0xd9670202 - panicking::on_panic::h3a4fcb37b873aefeooM
   3:         0xd95b396a - rt::unwind::begin_unwind_inner::h576b3df5f626902dJ2L
   4:         0xd9eb88df - rt::unwind::begin_unwind::h16852273847167740350
   5:         0xd9eb8afb - aux::callback::h15056955655605709172
                        at /home/arachneng/Works/git/rust/<std macros>:3
                        at src/test/run-pass/backtrace-debuginfo-aux.rs:15
   6:         0xd9eb8caa - outer::h2cf96412459fceb6ema
                        at src/test/run-pass/backtrace-debuginfo.rs:73
                        at src/test/run-pass/backtrace-debuginfo.rs:88
   7:         0xd9ebab24 - main::h3f701287441442edasa
                        at src/test/run-pass/backtrace-debuginfo.rs:134
   8:         0xd96daba8 - rust_try_inner
   9:         0xd96dab95 - rust_try
  10:         0xd9671af4 - rt::lang_start::h7da0de9529b4c394liM
  11:         0xd8f3aec4 - __libc_start_main
  12:         0xd9eb8148 - <unknown>
  13:         0xffffffff - <unknown>
```
2015-02-28 08:30:19 +00:00
bors
48aeaba934 Auto merge of #22801 - huonw:crateify-lint, r=kmcallister
This pulls out the implementations of most built-in lints into a
separate crate, to reduce edit-compile-test iteration times with
librustc_lint and increase parallelism. This should enable lints to be
refactored, added and deleted much more easily as it slashes the
edit-compile cycle to get a minimal working compiler to test with (`make
rustc-stage1`) from

    librustc -> librustc_typeck -> ... -> librustc_driver ->
        libcore -> ... -> libstd

to

    librustc_lint -> librustc_driver -> libcore -> ... libstd

which is significantly faster, mainly due to avoiding the librustc build
itself.

The intention would be to move as much as possible of the infrastructure
into the crate too, but the plumbing is deeply intertwined with librustc
itself at the moment. Also, there are lints for which diagnostics are
registered directly in the compiler code, not in their own crate
traversal, and their definitions have to remain in librustc.

This is a [breaking-change] for direct users of the compiler APIs:
callers of `rustc::session::build_session` or
`rustc::session::build_session_` need to manually call
`rustc_lint::register_builtins` on their return value.

This should make #22206 easier.
2015-02-28 06:06:18 +00:00
Jorge Aparicio
7ad2e22e4e remove leftover annotations 2015-02-27 23:35:07 -05:00
Huon Wilson
39092530a4 Update docs for rustc_lint crateification. 2015-02-28 15:34:00 +11:00
Huon Wilson
532cd5f85a Separate most of rustc::lint::builtin into a separate crate.
This pulls out the implementations of most built-in lints into a
separate crate, to reduce edit-compile-test iteration times with
librustc_lint and increase parallelism. This should enable lints to be
refactored, added and deleted much more easily as it slashes the
edit-compile cycle to get a minimal working compiler to test with (`make
rustc-stage1`) from

    librustc -> librustc_typeck -> ... -> librustc_driver ->
        libcore -> ... -> libstd

to

    librustc_lint -> librustc_driver -> libcore -> ... libstd

which is significantly faster, mainly due to avoiding the librustc build
itself.

The intention would be to move as much as possible of the infrastructure
into the crate too, but the plumbing is deeply intertwined with librustc
itself at the moment. Also, there are lints for which diagnostics are
registered directly in the compiler code, not in their own crate
traversal, and their definitions have to remain in librustc.

This is a [breaking-change] for direct users of the compiler APIs:
callers of `rustc::session::build_session` or
`rustc::session::build_session_` need to manually call
`rustc_lint::register_builtins` on their return value.

This should make #22206 easier.
2015-02-28 15:33:59 +11:00
bors
1c93934fcf Auto merge of #22669 - dotdash:fast_slice_iter, r=huonw
This adds the assume() calls back that got lost when rebasing #21886.
2015-02-28 03:37:20 +00:00
JP-Ellis
bbd060d85a Update iter::order to be more generic.
Signed-off-by: JP-Ellis <coujellis@gmail.com>
2015-02-28 14:29:54 +11:00
Jorge Aparicio
cc8a5a0db7 obsolete |&:| syntax
closes #22881
2015-02-27 21:01:22 -05:00
FuGangqiang
69bfb6f717 change to iterate over &vet 2015-02-28 09:59:52 +08:00
bors
e233987ce1 Auto merge of #22860 - Manishearth:rollup, r=alexcrichton
Passes check-stage1, check-stage2
2015-02-27 23:15:17 +00:00
Alex Crichton
bde4c1d6fb Test fixes and rebase conflicts 2015-02-27 15:13:35 -08:00
Alex Crichton
ad14891957 std: Stabilize the env module
Now that the `std::env` module has had some time to bake this commit marks most
of its APIs as `#[stable]`. Some notable APIs that are **not** stable (and still
use the same `env` feature gate) are:

* `{set,get}_exit_status` - there are still questions about whether this is the
  right interface for setting/getting the exit status of a process.
* `page_size` - this may change location in the future or perhaps name as well.

This also effectively closes #22122 as the variants of `VarError` are
`#[stable]` now. (this is done intentionally)
2015-02-27 13:41:49 -08:00
Keegan McAllister
f66a3f7bba Replace MacExpr / MacPat / MacItems with MacEager
MacEager is a MacResult implementation for the common case where you've already
built each form of AST that you might return.

Fixes #17637. Based on #18814.

This is a [breaking-change] for syntax extensions:

  * MacExpr::new becomes MacEager::expr.

  * MacPat::new becomes MacEager::pat.

  * MacItems::new becomes MacEager::items. It takes a SmallVector directly,
    not an iterator.
2015-02-27 11:17:05 -08:00
Kang Seonghoon
ff678ea3f4 std: Fixed backtrace warnings and tests for non-Linux platforms.
- Fixed a couple of dead code warnings in std::sys::backtrace.
- Made `backtrace-debuginfo` test a no-op on non-Linux platforms.
- `backtrace-debuginfo` is no longer tested on pretty-rpass.
2015-02-28 01:42:51 +09:00
Manish Goregaokar
158d99d3f1 Rollup merge of #22844 - pnkfelix:refactor-signalling-of-E0223, r=Aatch
Refactor signaling of E0223 to avoid multiple span_errs for same code.

(Doing this cuts out one diagnostic during the build.)
2015-02-27 22:07:05 +05:30
Felix S. Klock II
9549350b87 Refactor signaling of E0223 to avoid multiple span_errs for same code. 2015-02-27 22:07:05 +05:30
Manish Goregaokar
08360892a0 Rollup merge of #22848 - tshepang:redundant-mention, r=brson 2015-02-27 22:07:04 +05:30
Manish Goregaokar
2651823614 Rollup merge of #22837 - eddyb:issue-21721, r=dotdash
Closes #21721.
2015-02-27 22:07:04 +05:30
Manish Goregaokar
204adc9ab8 Rollup merge of #22836 - mahkoh:testflush, r=huonw
See 41f8b1e89b/src/libtest/lib.rs (L783-L788)
2015-02-27 22:07:04 +05:30
Manish Goregaokar
cf29aa5300 Rollup merge of #22835 - tshepang:remove-some-warnings, r=jakub- 2015-02-27 22:07:04 +05:30
Manish Goregaokar
8c9fe23ff0 Rollup merge of #22833 - laijs:remove-redundant-else-branch, r=dotdash
The branch \"else { continue }\" is the last code inside a loop body,
it is just useless.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
2015-02-27 22:07:03 +05:30
Manish Goregaokar
ce5f1b3216 Rollup merge of #22817 - jmesmon:result-or-type, r=huonw
Changes .or() so that it can return a Result with a different E type
than the one it is called on.

Essentially:

    fn or(self, res: Result<T, E>) -> Result<T, E>

becomes

    fn or<F>(self, res: Result<T, F>) -> Result<T, F>

This brings `or` in line with the existing `and` & `or_else`

This is a
[breaking-change]
Due to some code needing additional type annotations.
2015-02-27 22:07:03 +05:30
Manish Goregaokar
ef80ade406 Rollup merge of #22809 - nikomatsakis:issue-22655-infinite-recursion, r=pnkfelix
Change MarkerTrait to be invariant. This is a (small) loss of expressiveness, but is necessary for now to work around #22806. Fixes #22655.

r? @pnkfelix
2015-02-27 22:07:03 +05:30
Manish Goregaokar
91569a95f1 Rollup merge of #22795 - alexcrichton:issue-22617, r=huonw
Keeps the method consistent with `Iterator::any`.

Closes #22617
[breaking-change]
2015-02-27 22:07:02 +05:30
Manish Goregaokar
fb92e312d9 Rollup merge of #22788 - vadimcn:fix-precise_time_ns, r=pnkfelix
which starts happening after ~2 hours of machine uptime.
Closes #17845
2015-02-27 22:07:02 +05:30
Manish Goregaokar
08c25f37df Rollup merge of #22748 - jxcl:string-backslash, r=steveklabnik
r? @steveklabnik

Closes #22698

I wasn't sure that this was appropriate for the book, but I've added this to the reference. I also noticed that one of the U+ symbols in the character literals section was missing the graves.
2015-02-27 20:37:39 +05:30
Manish Goregaokar
c46fe78c32 Rollup merge of #22732 - jxcl:cargo-new, r=steveklabnik
r? @steveklabnik
2015-02-27 20:37:39 +05:30
Manish Goregaokar
487ee79e3f Rollup merge of #22846 - dhuseby:bitrig-cleanup, r=alexcrichton
This patch contains a couple time fixes to make Rust compile on Bitrig again.  This does not affect OpenBSD.
2015-02-27 20:37:39 +05:30
Manish Goregaokar
d9704bdfdb Rollup merge of #22843 - vhbit:no-jemalloc-fix, r=alexcrichton
"body": null,
2015-02-27 20:37:38 +05:30
Manish Goregaokar
19ab0b9a3c Rollup merge of #22823 - kmcallister:fix-21370, r=huonw
Fixes #21370.

`unused-macro-with-follow-violation.rs` was already handled correctly. That test is just for good measure. :)

I have a more involved plan to clean this up, but it ran into difficulties such as #22814.
2015-02-27 20:37:37 +05:30
Manish Goregaokar
6a97fbab4b Rollup merge of #22818 - pnkfelix:fsk-issue-22536, r=nikomatsakis
Ensure we do not zero when \"moving\" types that are Copy.

Uses more precise `type_needs_drop` for deciding about emitting cleanup code.  Added notes about the weaknesses regarding `ty::type_contents` here.

Fix #22536
2015-02-27 20:37:37 +05:30