Commit Graph

25158 Commits

Author SHA1 Message Date
bors ea4219f6e5 auto merge of #11290 : alexcrichton/rust/testname, r=brson
Closes #11288
Closes #11222
2014-01-04 16:36:46 -08:00
bors 19cff913f3 auto merge of #11188 : brson/rust/noderef, r=brson
This removes the feature where newtype structs can be dereferenced like pointers, and likewise where certain enums can be dereferenced (which I imagine nobody realized still existed). This ad-hoc behavior is to be replaced by a more general overloadable dereference trait in the future.

I've been nursing this patch for two months and think it's about rebased up to master.

@nikomatsakis this makes a bunch of your type checking code noticeably uglier.
2014-01-04 15:21:46 -08:00
Brian Anderson 01af682c64 doc: Fix an inexplicable error in a tutorial example
This code was wrong but apparently worked before removing struct
deref. I don't know why.
2014-01-04 14:44:14 -08:00
Brian Anderson ec69dea6f7 doc: Fix tutorial for struct deref 2014-01-04 14:44:14 -08:00
Brian Anderson 2d8fbba57d rustc: Add error about obsolete struct deref 2014-01-04 14:44:14 -08:00
Brian Anderson 3b1862a82f Don't allow newtype structs to be dereferenced. #6246 2014-01-04 14:44:12 -08:00
bors 55d492364f auto merge of #11284 : huonw/rust/issue-6233, r=alexcrichton
If there is a lot of data in thread-local storage some implementations
of pthreads (e.g. glibc) fail if you don't request a stack large enough
-- by adjusting for the minimum size we guarantee that our stacks are
always large enough. Issue #6233.
2014-01-04 13:56:48 -08:00
Brian Anderson 18cef3fad4 Don't allow single-variant enums to be dereferenced. #6246
I'm not sure if this was even intentional at this point.
2014-01-04 13:17:31 -08:00
bors 89907089c2 auto merge of #11301 : vadimcn/rust/fix-android, r=brson
This fixes stack unwinding on targets using ARM EHABI.
closes #11147
2014-01-04 11:56:46 -08:00
bors b432e82515 auto merge of #11306 : alexcrichton/rust/native-bounds, r=pcwalton
This allows inspection of the current task's bounds regardless of what the
underlying task is.

Closes #11293
2014-01-04 10:16:51 -08:00
bors d86cb6a39f auto merge of #11299 : brson/rust/exp10, r=pcwalton
LLVM appears to generate calls to exp10 on ARM and bionic does not define it.

This makes code that links to libextra (which I guess does some exponentiation on the stat module) link correctly.
2014-01-04 09:02:05 -08:00
bors fcca394ffb auto merge of #11295 : sfackler/rust/de-jank-encoder, r=brson 2014-01-04 07:41:51 -08:00
bors 14c24accbc auto merge of #11271 : adridu59/rust/patch-io, r=huonw 2014-01-04 06:26:52 -08:00
bors 48dc2cbf23 auto merge of #11292 : brson/rust/llvmconfig, r=alexcrichton
In a multi-host build the mklldeps.py tool is getting called before
all the llvm-configs are built. I am not actually sure the cause. I
had convinced myself that DEF_LLVM_RULES needed to be called before
the llvmdeps.rs rule, but now looking at it again I can't see why.

Here's the error: http://buildbot.rust-lang.org/builders/dist2-linux/builds/11/steps/compile/logs/stdio

r? @alexcrichton
2014-01-04 05:11:53 -08:00
Adrien Tétar 95ace50643 std: io: add some code examples
Closes #11232.
2014-01-04 13:07:11 +01:00
Adrien Tétar ba801577b9 doc: un-xfail conditions tutorial 2014-01-04 13:06:54 +01:00
bors 690e464444 auto merge of #11291 : brson/rust/copy-runtime-deps, r=alexcrichton
In copying the license for the third-party bins it is attempting
to delete a directory that doesn't exist.
2014-01-04 03:56:55 -08:00
bors 239fb1f6ee auto merge of #11283 : brson/rust/doublefailure, r=alexcrichton
Previously this was an `rtabort!`, indicating a runtime bug. Promote
this to a more intentional abort and print a (slightly) more
informative error message.

Can't test this sense our test suite can't handle an abort exit.

I consider this to close #910, and that we should open another issue about implementing less conservative semantics here.
2014-01-04 00:32:09 -08:00
Alex Crichton dcaf10f8de Add a stack_bounds function to the Runtime trait
This allows inspection of the current task's bounds regardless of what the
underlying task is.

Closes #11293
2014-01-04 00:08:03 -08:00
Vadim Chugunov cefb2c7e45 Fix ARM unwinding. 2014-01-03 23:34:15 -08:00
bors 3dd7c49faf auto merge of #11251 : pcwalton/rust/remove-at-mut, r=pcwalton
r? @nikomatsakis 

for the borrow checker changes. Write guards are now eliminated.
2014-01-03 22:36:53 -08:00
Patrick Walton 8092153634 libsyntax: Fix tests. 2014-01-03 22:22:40 -08:00
Brian Anderson bc78d86985 rt: Define exp10 on Android
LLVM appears to generate calls to exp10 on ARM and bionic does not
define it.
2014-01-03 21:29:40 -08:00
bors 0ff6c12ce9 auto merge of #11280 : c-a/rust/inline_byteswap, r=brson
After writing some benchmarks for ebml::reader::vuint_at() I noticed that LLVM doesn't seem to inline the from_be32 function even though it only does a call to the bswap32 intrinsic in the x86_64 case. Marking the functions with #[inline(always)] fixes that and seems to me a reasonable thing to do. I got the following measurements in my vuint_at() benchmarks:

- Before
test ebml::bench::vuint_at_A_aligned          ... bench:      1075 ns/iter (+/- 58)
test ebml::bench::vuint_at_A_unaligned        ... bench:      1073 ns/iter (+/- 5)
test ebml::bench::vuint_at_D_aligned          ... bench:      1150 ns/iter (+/- 5)
test ebml::bench::vuint_at_D_unaligned        ... bench:      1151 ns/iter (+/- 6)

- Inline from_be32
test ebml::bench::vuint_at_A_aligned          ... bench:       769 ns/iter (+/- 9)
test ebml::bench::vuint_at_A_unaligned        ... bench:       795 ns/iter (+/- 6)
test ebml::bench::vuint_at_D_aligned          ... bench:       758 ns/iter (+/- 8)
test ebml::bench::vuint_at_D_unaligned        ... bench:       759 ns/iter (+/- 8)

- Using vuint_at_slow()
test ebml::bench::vuint_at_A_aligned          ... bench:       646 ns/iter (+/- 7)
test ebml::bench::vuint_at_A_unaligned        ... bench:       645 ns/iter (+/- 3)
test ebml::bench::vuint_at_D_aligned          ... bench:       907 ns/iter (+/- 4)
test ebml::bench::vuint_at_D_unaligned        ... bench:      1085 ns/iter (+/- 16)

As expected inlining from_be32() gave a considerable speedup.
I also tried how the "slow" version fared against the optimized version and noticed that it's
actually a bit faster for small A class integers (using only two bytes) but slower for big D class integers (using four bytes)
2014-01-03 21:21:50 -08:00
bors 8bfd2a84cf auto merge of #11277 : brson/rust/more0.9, r=alexcrichton 2014-01-03 17:16:50 -08:00
Steven Fackler d45b3643b8 Remove a hacky buffer extraction from metadata 2014-01-03 16:31:22 -08:00
Huon Wilson f1b5f59287 std: adjust requested stack size for thread-local storage.
If there is a lot of data in thread-local storage some implementations
of pthreads (e.g. glibc) fail if you don't request a stack large enough
-- by adjusting for the minimum size we guarantee that our stacks are
always large enough. Issue #6233.
2014-01-04 11:07:02 +11:00
Patrick Walton 02c1d2ff52 test: Make all the run-pass tests use `pub fn main` 2014-01-03 15:30:54 -08:00
Brian Anderson b3a334af6a mk: Fix llvmdeps.rs dependencies
In a multi-host build the mklldeps.py tool is getting called before
all the llvm-configs are built. I am not actually sure the cause. I
had convinced myself that DEF_LLVM_RULES needed to be called before
the llvmdeps.rs rule, but now looking at it again I can't see why.
2014-01-03 14:20:46 -08:00
Patrick Walton 82a09b9a04 librustc: Remove `@mut` support from the parser 2014-01-03 14:02:01 -08:00
Patrick Walton 88281290ff librustc: Remove `@mut` support from the typechecker and borrow checker 2014-01-03 14:02:01 -08:00
Patrick Walton 9b35ae75d2 doc: Remove all mentions of `@mut` from the documentation. 2014-01-03 14:02:01 -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 `@mut`s 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
Patrick Walton b6e516859a libstd: Remove all support code related to `@mut` 2014-01-03 14:02:00 -08:00
Patrick Walton e095889e4e libstd: De-`@mut` the `heap_cycles` test 2014-01-03 14:02:00 -08:00
Patrick Walton aa93e6e664 libextra: Remove `MutList`, as it's inexorably tied to `@mut` 2014-01-03 14:02:00 -08:00
Patrick Walton 84e977c355 libstd: Remove a spurious `@mut` from a disabled test 2014-01-03 14:02:00 -08:00
Patrick Walton 07bbc4133d libextra: Remove unnecessary `@mut`s 2014-01-03 14:02:00 -08:00
Patrick Walton c1d6f5ed51 libextra: De-`@mut` the arena 2014-01-03 14:02:00 -08:00
Patrick Walton c38456a92f librustdoc: De-`@mut` `librustdoc` 2014-01-03 14:02:00 -08:00
Patrick Walton af0439b1e3 librustpkg: De-`@mut` `rustpkg` 2014-01-03 14:02:00 -08:00
Patrick Walton 901df8a63b libsyntax: Remove unused `MultiRenamer` 2014-01-03 14:02:00 -08:00
Patrick Walton 1d29163e9c librustc: Eliminate an unnecessary `@mut` in pretty printing.
This removes all `@mut` from `librustc` and `libsyntax`.
2014-01-03 14:02:00 -08:00
Patrick Walton 6043957d8d libsyntax: De-`@mut` `ps::boxes` 2014-01-03 14:02:00 -08:00
Patrick Walton 5eafcc4f93 libsyntax: De-`@mut` (and de-`@`) `Printer::print_stack` 2014-01-03 14:02:00 -08:00
Patrick Walton 982cb824ce libsyntax: De-`@mut` `Interner::vect` 2014-01-03 14:01:59 -08:00
Patrick Walton 4c85cf7a40 libsyntax: De-`@mut` `CodeMap::files` 2014-01-03 14:01:59 -08:00