about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2013-08-20auto merge of #8519 : msullivan/rust/objects, r=catamorphismbors-171/+226
r?
2013-08-20auto merge of #8328 : alexcrichton/rust/llvm-head, r=brsonbors-37/+35
The first commit message is pretty good, but whomever reviews this should probably also at least glance at the changes I made in LLVM. I basically reorganized our pending patch queue to be a bit more organized and clearer in what needs to go where. After this, our queue would be: * Add the `no-split-stack` attribute * Add the `fixedstacksegment` attribute * Add split-stacks for arm android * Add split-stacks for arm linux * Add split stacks for mips Then there's a patch which I added to get rust to build at all on LLVM-head, and I'm not quite sure why it's there, but nothing seems to be crashing for now! (famous last words). Otherwise, I just updated code to reflect the changes I made in LLVM with the only major change being the advent of the new `no_split_stack` attribute. This is work towards #1226, but someone more familiar with the code should probably actually assign the attribute to the appropriate functions. Also as a bonus, I've verified that this closes #5774
2013-08-20auto merge of #8566 : toddaaro/rust/idle-opt+cleaning, r=catamorphism,brsonbors-302/+386
Instead of a furious storm of idle callbacks we just have one. This is a major performance gain - around 40% on my machine for the ping pong bench. Also in this PR is a cleanup commit for the scheduler code. Was previously up as a separate PR, but bors load + imminent merge hell led me to roll them together. Was #8549.
2013-08-20Fix LLVM compilation issues and use the new attrsAlex Crichton-36/+34
This implements #[no_split_stack] and also changes #[fast_ffi] to using the new "fixedstacksegment" string attribute instead of integer attribute.
2013-08-20auto merge of #8463 : brson/rust/borrowck, r=nmatsakis,nikomatsakisbors-17/+43
r? @nikomatsakis
2013-08-20auto merge of #8638 : pnkfelix/rust/fsk-visitor-vpar-defaults-step5, r=huonwbors-182/+431
"non-mechanical" : there was lots more hacking than the other more-mechanical ports Felix did. r? @huonw. (Or @nikomatsakis ; I just want someone to sanity-check this. Its not a thing of beauty.) Followup to #8623. (See #8527, which was step 1 of 5, for the full outline. Part of #7081.) Notes on the change follow. There's also a strange pattern that I hacked in to accommodate the Outer/Inner traversal structure of the existing code (which was previously encoding this by untying the Y-combinator style knot of the vtable, and then retying it but superimposing new methods that "stop at items"). I hope either I or someone else can come back in the future and replace this ugliness with something more natural. Added boilerplate macro; all the OuterLint definitions are the same (but must be abstracted over implementing struct, thus the macro). Revised lint.rs use declarations to make ast references explicit. Also removed unused imports.
2013-08-20add line break post dbaupp review.Felix S. Klock II-1/+2
2013-08-20remove trailing whitespace to placate make tidy.Felix S. Klock II-1/+1
2013-08-20Port lint.rs from oldvisit to <V:Visit> trait API. Less mechanical port.Felix S. Klock II-182/+430
That is, there was lots more hacking than the other more-mechanical ports Felix did. There's also a strange pattern that I hacked in to accommodate the Outer/Inner traversal structure of the existing code (which was previously encoding this by untying the Y-combinator style knot of the vtable, and then retying it but superimposing new methods that "stop at items"). I hope either I or someone else can come back in the future and replace this ugliness with something more natural. Added boilerplate macro; all the OuterLint definitions are the same (but must be abstracted over implementing struct, thus the macro). Revised lint.rs use declarations to make ast references explicit. Also removed unused imports.
2013-08-20Upgrade llvm to current HEADAlex Crichton-1/+1
* This has one workaround patch (everything's testing just fine...) * I reworked the fixedstacksegment attribute to be specified with a string rather than using a keyword and an integer and modifying the parser * I added a "no-split-stack" attribute along the same lines as the "fixedstacksegment" attribute for #1226
2013-08-19auto merge of #8548 : catamorphism/rust/unignore-rustpkg-tests, r=catamorphismbors-93/+86
r? @brson This necessitated some cleanup to how we parse library filenames when searching for libraries, since rustpkg may now create filenames that contain '-' characters. Also cleaned up how rustpkg passes the sysroot to a custom build script.
2013-08-19std: Restore dynamic borrow trackingBrian Anderson-17/+43
2013-08-19auto merge of #8584 : thestinger/rust/jemalloc, r=graydonbors-1/+22
This reverts commit 371a316ec93a977f9dcd305b5f532cd394fa6885. Closes #7217
2013-08-19jemalloc: use $(AR), not `ar`Daniel Micay-2/+2
2013-08-19regenerate configureGraydon Hoare-1/+13
2013-08-19auto merge of #8500 : graydon/rust/2013-08-13-self-rollup, r=thestingerbors-17/+303
close #8424 r=brson close #8173 r=brson close #8209 r=strcat
2013-08-19rt: make jemalloc header conform to android signature.Graydon Hoare-0/+9
2013-08-19rustpkg: Un-ignore most of the remaining testsTim Chevalier-93/+86
This necessitated some cleanup to how we parse library filenames when searching for libraries, since rustpkg may now create filenames that contain '-' characters. Also cleaned up how rustpkg passes the sysroot to a custom build script.
2013-08-19compiletest: do not run tests in sub-threads if on valgrind.Graydon Hoare-1/+12
2013-08-19Try to fix mac valgrind bot by disabling thread-heavy activities.Graydon Hoare-15/+64
2013-08-19Add tests for cross-crate condition handling. Close #5446.Graydon Hoare-0/+215
2013-08-19test: add testcase, close #4929 which was already fixed.Graydon Hoare-0/+12
2013-08-19test: un-xfail now working run-pass/foreign-struct.rs, close #2334.Graydon Hoare-1/+0
2013-08-19auto merge of #8623 : pnkfelix/rust/fsk-visitor-vpar-defaults-step4, r=nmatsakisbors-217/+314
Follow up to #8619 (step 3 of 5). (See #8527, which was step 1 of 5, for the full outline.) Part of #7081.
2013-08-19auto merge of #8459 : thestinger/rust/checked, r=graydonbors-2/+42
2013-08-19clean whitespace :/toddaaro-6/+6
2013-08-19Make supertrait methods callable on object types.Michael Sullivan-170/+225
This requires changes to method search and to codegen. We now emit a vtable for objects that includes methods from all supertraits. Closes #4100. Also, actually populate the cache for vtables, and also key it by type so that it actually works.
2013-08-19Rangechange the log message truncation limit.Michael Sullivan-1/+1
2013-08-19auto merge of #8619 : pnkfelix/rust/fsk-visitor-vpar-defaults-step3, r=nmatsakisbors-316/+405
Follow up to #8539 (step 2 of 5). (See #8527, which was step 1 of 5, for the full outline.) Part of #7081.
2013-08-19auto merge of #8539 : pnkfelix/rust/fsk-visitor-vpar-defaults-step2, ↵bors-446/+602
r=graydon,nikomatsakis r? @nikomatsakis Follow up to #8527 (which was step 1 of 5). See that for overall description Part of #7081
2013-08-19auto merge of #8535 : nikomatsakis/rust/issue-3678-wrappers-be-gone-2, r=graydonbors-1623/+2417
Long-standing branch to remove foreign function wrappers altogether. Calls to C functions are done "in place" with no stack manipulation; the scheme relies entirely on the correct use of `#[fixed_stack_segment]` to guarantee adequate stack space. A linter is added to detect when `#[fixed_stack_segment]` annotations are missing. An `externfn!` macro is added to make it easier to declare foreign fns and wrappers in one go: this macro may need some refinement, though, for example it might be good to be able to declare a group of foreign fns. I leave that for future work (hopefully somebody else's work :) ). Fixes #3678.
2013-08-19Add externfn macro and correctly label fixed_stack_segmentsNiko Matsakis-86/+749
2013-08-19Issue #3678: Remove wrappers and call foreign functions directlyNiko Matsakis-1559/+1690
2013-08-19auto merge of #8564 : alexcrichton/rust/ifmt+++, r=graydonbors-32/+105
See discussion in #8489, but this selects option 3 by adding a `Default` trait to be implemented by various basic types. Once this makes it into a snapshot I think it's about time to start overhauling all current use-cases of `fmt!` to move towards `ifmt!`. The goal is to replace `%X` with `{}` in 90% of situations, and this commit should enable that.
2013-08-18auto merge of #8556 : sfackler/rust/quote, r=alexcrichtonbors-186/+256
They previously required one called "ext_cx" to be in scope. Fixes part of #7727
2013-08-18auto merge of #8565 : bblum/rust/select-bugfix, r=brsonbors-18/+23
@brson grilled me about how this bugfix worked the first time around, and it occurred to me that it didn't in the case where the task is unwinding. Now it will.
2013-08-18auto merge of #8561 : kballard/rust/do-block-internal-err-msg, r=thestingerbors-50/+1
When using a `do` block to call an internal iterator, if you forgot to return a value from the body, it would tell you error: Do-block body must return bool, but returns () here. Perhaps you meant to write a `for`-loop? This advice no longer applies as `for` loops are now for external iterators. Delete this message outright and let it use the default error message error: mismatched types: expected `bool` but found `()` r? @thestinger
2013-08-18auto merge of #8560 : kballard/rust/reserve-yield, r=pcwaltonbors-72/+75
Rename task::yield() to task::deschedule(). Fixes #8494.
2013-08-18auto merge of #8545 : blake2-ppc/rust/iterbytes, r=alexcrichtonbors-61/+89
Address issue #5257, for example these values all had the same hash value: ("aaa", "bbb", "ccc") ("aaab", "bb", "ccc") ("aaabbb", "", "ccc") IterBytes for &[A] now includes the length, before calling iter_bytes on each element. IterBytes for &str is now terminated by a byte that does not appear in UTF-8. This way only one more byte is processed when hashing strings.
2013-08-18quote_*! macros take an ExtCtxSteven Fackler-186/+256
They previously required one called "ext_cx" to be in scope. Fixes part of #7727
2013-08-18auto merge of #8558 : kballard/rust/xorshift-seed, r=cmrbors-6/+15
Fixes #8359.
2013-08-18std::hash: Add testcase for colliding hashes of tuplesblake2-ppc-0/+14
Add a testcase that verifies that (s, t) and (u, v) don't collide even if s + t == u + v (concatenation).
2013-08-18std::to_bytes: Implement IterBytes on 1- to 8-tuplesblake2-ppc-20/+29
2013-08-18std::to_bytes: Delimit sequences &[A] and ~str when hashingblake2-ppc-42/+47
Address issue #5257, for example these values all had the same hash value: ("aaa", "bbb", "ccc") ("aaab", "bb", "ccc") ("aaabbb", "", "ccc") IterBytes for &[A] now includes the length, before calling iter_bytes on each element. IterBytes for &str is now terminated by a byte that does not appear in UTF-8. This way only one more byte is processed when hashing strings.
2013-08-18auto merge of #8555 : chris-morgan/rust/time-clone, r=huonwbors-3/+17
I need `Clone` for `Tm` for my latest work on [rust-http](https://github.com/chris-morgan/rust-http) (static typing for headers, and headers like `Date` are a time), so here it is. @huonw recommended deriving DeepClone while I was at it. I also had to implement `DeepClone` for `~str` to get a derived implementation of `DeepClone` for `Tm`; I did `@str` while I was at it, for consistency.
2013-08-18auto merge of #8551 : huonw/rust/speling, r=alexcrichtonbors-76/+77
(This doesn't add/remove `u`s or change `ize` to `ise`, or anything like that.)
2013-08-18auto merge of #8550 : kballard/rust/token-start-err-msg, r=catamorphismbors-1/+3
The span was fixed at some point to point to the correct character, but the error message is still bad. Update it to emit the actual character in question (potentially escaped). Fixes #3747.
2013-08-17auto merge of #8547 : kballard/rust/trait-parse-err-msg, r=alexcrichtonbors-1/+14
When parsing a trait function, the function must end with either `;` or `{` (signifying a default implementation). The error message incorrectly stated that it must be `;` or `}`. Fixes #6610.
2013-08-17auto merge of #8544 : dim-an/rust/fix-match-pipes, r=pcwaltonbors-20/+94
Pointers to bound variables shouldn't be stored before checking pattern, otherwise piped patterns can conflict with each other (issue #6338). Closes #6338.
2013-08-18More spelling corrections.Huon Wilson-13/+15