Commit graph

5865 commits

Author SHA1 Message Date
Patrick Walton
02c1d2ff52 test: Make all the run-pass tests use pub fn main 2014-01-03 15:30:54 -08:00
Patrick Walton
c3694d732e test: De-@mut the test suite 2014-01-03 14:02:01 -08:00
Patrick Walton
df13c64c3b test: Get rid of some @muts in borrow check tests 2014-01-03 14:02:01 -08:00
Patrick Walton
65d55afd2f test: Make borrowck-assign-to-subfield into a run-pass test, now that
it no longer has boxes in it
2014-01-03 14:02:01 -08:00
Patrick Walton
179c054631 test: Remove all borrow check write guard tests 2014-01-03 14:02:01 -08:00
bors
08321f1c49 auto merge of #11149 : alexcrichton/rust/remove-either, r=brson
Had to change some stuff in typeck to bootstrap (getting methods in fmt off of Either), but other than that not so painful.

Closes #9157
2014-01-03 12:16:48 -08:00
Alex Crichton
4bea679dbe Remove std::either 2014-01-03 10:25:23 -08:00
bors
11ce6b709a auto merge of #11276 : brson/rust/0.9, r=pcwalton 2014-01-03 09:56:44 -08:00
bors
8d4719047b auto merge of #11262 : alexcrichton/rust/issue-11259, r=pcwalton
Closes #11259
2014-01-03 05:46:47 -08:00
bors
fb46225980 auto merge of #11093 : alexcrichton/rust/issue-11085, r=pcwalton
Closes #11085
2014-01-02 20:06:56 -08:00
Brian Anderson
56ec9c23a4 Bump version to 0.9 2014-01-02 12:55:20 -08:00
bors
0df9b850ac auto merge of #10696 : fhahn/rust/issue9543-remove-extern-mod-foo, r=pcwalton
This patch for  #9543 throws an `obsolete syntax` error for `extern mod foo (name="bar")` . 
I was wondering if [this](https://github.com/fhahn/rust/compare/mozilla:master...fhahn:issue9543-remove-extern-mod-foo?expand=1#diff-da9d34ca1d0f6beee2838cf02e07345cR4444) is the correct place to do this?

I think the wording of the error message could probably be improved as well.

If this approach is OK, I'm going to run the whole test suite tomorrow and update the old syntax to the new one.
2014-01-02 11:32:09 -08:00
bors
3249de8c4f auto merge of #11274 : michaelwoerister/rust/issue11083, r=pcwalton
This pull request fixes #11083. The problem was that recursive type definitions were not properly handled for enum types, leading to problems with LLVM's metadata "uniquing". This bug has already been fixed for struct types some time ago (#9658) but I seem to have forgotten about enums back then. I added the offending code from issue #11083 as a test case.
2014-01-02 09:02:01 -08:00
Michael Woerister
645bb327db debuginfo: Add test case for recursive enum types (issue #11083) 2014-01-02 15:38:57 +01:00
bors
8ba61514c9 auto merge of #11246 : ktt3ja/rust/issue-11224, r=alexcrichton
Close #11224
2014-01-01 22:12:11 -08:00
bors
a96951048c auto merge of #11245 : alexcrichton/rust/issue-11225, r=pcwalton
Commit messages are a little more descriptive.
2014-01-01 20:56:54 -08:00
Jan Niklas Hasse
86835c95f4 Test column offset for #11184 2014-01-02 03:34:07 +01:00
Florian Hahn
f42a36cded Remove extern mod foo (name="bar") syntax, closes #9543 2014-01-01 23:36:57 +01:00
Alex Crichton
dd33b145f3 Fix usage of rustc --ls on invalid files
Closes #11259
2014-01-01 13:20:00 -08:00
Alex Crichton
aca1749493 Don't leave lingering files in doc tests
Closes #11234
2014-01-01 13:06:44 -08:00
Huon Wilson
8f26d0b9b8 syntax: expand impl_pretty_name to handle more cases.
The resulting symbol names aren't very pretty at all:

    trait Trait { fn method(&self); }
    impl<'a> Trait for ~[(&'a int, fn())] { fn method(&self) {} }

gives

    Trait$$UP$$VEC$$TUP_2$$BP$int$$FN$$::method::...hash...::v0.0

However, at least it contain some reference to the Self type, unlike
`Trait$__extensions__::method:...`, which is what the symbol name used
to be for anything other than `impl Trait for foo::bar::Baz` (which
became, and still becomes, `Trait$Baz::method`).
2014-01-02 02:53:54 +11:00
bors
1dcc986d52 auto merge of #11173 : whitequark/rust/master, r=thestinger
This PR adds `std::unsafe::intrinsics::{volatile_load,volatile_store}`, which map to LLVM's `load volatile` and `store volatile` operations correspondingly.

This would fix #11172.

I have addressed several uncertainties with this PR in the line comments.
2013-12-31 15:06:55 -08:00
bors
bd52e6acc6 auto merge of #11157 : alexcrichton/rust/issue-11154, r=pcwalton
Closes #11154
2013-12-31 13:52:03 -08:00
Kiet Tran
576a85105f Mark provided methods in dead-code pass 2013-12-31 16:19:57 -05:00
Alex Crichton
0daaeab244 Conservatively export all trait methods and impls
The comments have more information as to why this is done, but the basic idea is
that finding an exported trait is actually a fairly difficult problem. The true
answer lies in whether a trait is ever referenced from another exported method,
and right now this kind of analysis doesn't exist, so the conservative answer of
"yes" is always returned to answer whether a trait is exported.

Closes #11224
Closes #11225
2013-12-31 12:42:13 -08:00
Alex Crichton
870024a160 Disallow LTO with a preference to dynamic linking
Closes #11154
2013-12-31 11:48:47 -08:00
Peter Zotov
f98f83a15d Implement volatile_load and volatile_store intrinsics. 2013-12-31 02:54:25 +04:00
Vadim Chugunov
856222987d Revert "Embed Windows application manifest." 2013-12-30 13:22:54 -08:00
bors
a4f30bf0c0 auto merge of #11185 : huonw/rust/doc-ignore, r=cmr
Currently any line starting with `#` is filtered from the output,
including line like `#[deriving]`; this patch makes it so lines are only
filtered when followed by a space similar to the current behaviour of
the tutorial/manual tester.
2013-12-30 05:51:51 -08:00
bors
f37b746699 auto merge of #11182 : luisbg/rust/crateid, r=cmr
Issue #11048
2013-12-30 04:32:09 -08:00
Huon Wilson
582ad8ffc2 rustdoc: only filter lines starting with '# ' from the shown code.
Currently any line starting with `#` is filtered from the output,
including line like `#[deriving]`; this patch makes it so lines are only
filtered when followed by a space similar to the current behaviour of
the tutorial/manual tester.
2013-12-30 16:55:49 +11:00
Luis de Bethencourt
016d52ed50 Rename uses of PkgId to CrateId in librustpkg 2013-12-29 15:25:37 -05:00
Steven Fackler
0607c138ca Stop using @ExtCtxt 2013-12-28 21:16:03 -07:00
bors
200c52a34e auto merge of #11159 : alexcrichton/rust/native-io, r=pcwalton
The old `rtio-processes` run-pass test is now moved into libstd's `io::process` module, and all process and TCP tests are now run with `iotest!` (both a native and a green version are tested).

All TCP networking on windows is provided by `ws2_32` which is apparently very similar to unix networking (hurray!).
2013-12-28 10:36:54 -08:00
Alex Crichton
1763f36c9d Bring native process bindings up to date
Move the tests into libstd, use the `iotest!` macro to test both native and uv
bindings, and use the cloexec trick to figure out when the child process fails
in exec.
2013-12-27 17:41:04 -08:00
Luqman Aden
981c6b12fa Add tests for trait object coercion. 2013-12-27 03:26:46 -05:00
bors
9477c49a7b auto merge of #10965 : alexcrichton/rust/libgreen, r=brson
This pull request extracts all scheduling functionality from libstd, moving it into its own separate crates. The new libnative and libgreen will be the new way in which 1:1 and M:N scheduling is implemented. The standard library still requires an interface to the runtime, however, (think of things like `std::comm` and `io::println`). The interface is now defined by the `Runtime` trait inside of `std::rt`.

The booting process is now that libgreen defines the start lang-item and that's it. I want to extend this soon to have libnative also have a "start lang item" but also allow libgreen and libnative to be linked together in the same process. For now though, only libgreen can be used to start a program (unless you define the start lang item yourself). Again though, I want to change this soon, I just figured that this pull request is large enough as-is.

This certainly wasn't a smooth transition, certain functionality has no equivalent in this new separation, and some functionality is now better enabled through this new system. I did my best to separate all of the commits by topic and keep things fairly bite-sized, although are indeed larger than others.

As a note, this is currently rebased on top of my `std::comm` rewrite (or at least an old copy of it), but none of those commits need reviewing (that will all happen in another pull request).
2013-12-26 01:01:54 -08:00
Alex Crichton
6cad8f4f14 Test fixes and rebase conflicts
* vec::raw::to_ptr is gone
* Pausible => Pausable
* Removing @
* Calling the main task "<main>"
* Removing unused imports
* Removing unused mut
* Bringing some libextra tests up to date
* Allowing compiletest to work at stage0
* Fixing the bootstrap-from-c rmake tests
* assert => rtassert in a few cases
* printing to stderr instead of stdout in fail!()
2013-12-25 23:10:46 -08:00
Steven Fackler
4d5243dd08 Remove out of date test
The associated issue has been closed for 2 years!
2013-12-25 10:58:03 -07:00
Alex Crichton
1c648fcea4 rustc: Strip struct fields and enum variants
Closes #11085
2013-12-24 23:26:40 -08:00
Alex Crichton
282f3d99a5 Test fixes and rebase problems
Note that this removes a number of run-pass tests which are exercising behavior
of the old runtime. This functionality no longer exists and is thoroughly tested
inside of libgreen and libnative. There isn't really the notion of "starting the
runtime" any more. The major notion now is "bootstrapping the initial task".
2013-12-24 19:59:53 -08:00
Brian Anderson
26f1b4db11 rustc: Add a lint for the obsolete crate-level link attribute 2013-12-23 21:04:01 -08:00
bors
57724012ff auto merge of #11111 : alexcrichton/rust/issue-11039, r=brson
None of these primitives should be Freeze because sharing them in an Arc is a
very bad idea.

Closes #11039
2013-12-22 18:21:34 -08:00
Andreas Neuhaus
66e3fbebd9 Allow optional filename argument for --dep-info 2013-12-22 21:38:55 +01:00
Andreas Neuhaus
5d0fea1441 Use --crate-file-name to find out the library filename in dep-info test 2013-12-22 21:37:33 +01:00
bors
55cbef611a auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton
This uses quite a bit of unsafe code for speed and failure safety, and allocates `2*n` temporary storage.

[Performance](https://gist.github.com/huonw/5547f2478380288a28c2):

|      n |      new | priority_queue |   quick3 |
|-------:|---------:|---------------:|---------:|
|      5 |      200 |            155 |      106 |
|    100 |     6490 |           8750 |     5810 |
|  10000 |  1300000 |        1790000 |  1060000 |
| 100000 | 16700000 |       23600000 | 12700000 |
| sorted |   520000 |        1380000 | 53900000 |
|  trend |  1310000 |        1690000 |  1100000 |

(The times are in nanoseconds, having subtracted the set-up time (i.e. the `just_generate` bench target).)

I imagine that there is still significant room for improvement, particularly because both priority_queue and quick3 are doing a static call via `Ord` or `TotalOrd` for the comparisons, while this is using a (boxed) closure.

Also, this code does not `clone`, unlike `quick_sort3`; and is stable, unlike both of the others.
2013-12-22 00:41:39 -08:00
Huon Wilson
645fff4bc8 fix check-fast tests. 2013-12-22 19:32:17 +11:00
Huon Wilson
2e8c522c62 std::vec: make the sorting closure use Ordering rather than just being
(implicitly) less_eq.
2013-12-22 18:16:50 +11:00
bors
cd13f4d599 auto merge of #10997 : cadencemarseille/rust/issue-10755-ICE-for-missing-linker, r=alexcrichton
Trap the io_error condition so that a more informative error message is
displayed when the linker program cannot be started, such as when the
name of the linker binary is accidentally mistyped.

closes #10755
2013-12-21 22:16:37 -08:00
Alex Crichton
67c0222252 Guarantee comm primitives are not Freeze
None of these primitives should be Freeze because sharing them in an Arc is a
very bad idea.

Closes #11039
2013-12-21 21:54:05 -08:00