Commit Graph

17042 Commits

Author SHA1 Message Date
Brian Anderson 8a6d6dd868 rustc: Fix struct returns on x86 mac for 8-byte structs
Mac appears to follow the same ABI as MSVC. This fixes one case
but leaves others broken, like windows.
2013-04-18 14:14:17 -07:00
bors b329f2fa82 auto merge of #5798 : recrack/rust/multiple-errors, r=brson
Fix #4569.
2013-04-18 12:21:57 -07:00
bors 348dc250ca auto merge of #5939 : brson/rust/xfail, r=brson
Disabling them because they are failing on incoming. Looking into a fix now.
2013-04-18 11:21:55 -07:00
Brian Anderson b18f12fb16 test: xfail-macos some tests that don't work on mac i686 2013-04-18 11:17:34 -07:00
Brian Anderson 2686dcb98e test: Add more comments about why extern-pass-TwoU64s is xfailed 2013-04-18 11:17:01 -07:00
bors 8796c9fe2d auto merge of #5935 : bjz/rust/master, r=thestinger 2013-04-18 09:03:55 -07:00
Brendan Zabarauskas a7f6ec8542 Use assert_eq! instead of assert! and remove extraneous parentheses 2013-04-19 01:37:21 +10:00
bors e4f35a7326 auto merge of #5933 : huonw/rust/core-read-until-byte, r=thestinger
`read_until` is just doing a bytewise comparison. This means the following program prints `xyå12`, not `xy`, which it should if it was actually checking chars.

```rust
fn main() {
    do io::with_str_reader("xyå12") |r| {
        io::println(r.read_until('å', false));
    }
}
```

This patch makes the type of read_until match what it is actually doing.
2013-04-18 08:09:55 -07:00
bors 24fb719b8c auto merge of #5932 : huonw/rust/core-str-iterator, r=thestinger 2013-04-18 07:12:55 -07:00
Huon Wilson 19cc352302 core: io: the read_until function checks bytes not chars, so type should reflect that. 2013-04-18 23:36:38 +10:00
Brendan Zabarauskas 939a97f5cb Add #[inline(always)] to each operator method 2013-04-18 23:24:24 +10:00
bors 2c8278746d auto merge of #5930 : osaut/rust/master, r=thestinger
Just small typos I found during my study of rust sources. 
I have added the fbuild URL for reader's convenience.
2013-04-18 06:15:54 -07:00
Huon Wilson c967f2bb1e core: add a str iterator 2013-04-18 22:56:21 +10:00
bors 938ddeeed6 auto merge of #5929 : intgr/rust/sketch_output, r=thestinger
The last line of any command output should always have a newline. Also fixed typo, "on on"

summary of 25 test runs: 4563 passed; 0 failed; 344 ignored
2013-04-18 05:21:55 -07:00
bors bd75463839 auto merge of #5928 : huonw/rust/core-task-spawn-supervised-doc, r=thestinger
The doc-comment didn't reflect the [tasks tutorial](http://static.rust-lang.org/doc/tutorial-tasks.html#failure-modes), or how it works in practice.
2013-04-18 04:30:54 -07:00
Brendan Zabarauskas d2a81b95c3 Implement bitwise operator traits for ints and uints 2013-04-18 20:58:58 +10:00
Huon Wilson f43fc5fff8 libcore: make spawn_supervised documentation reflect its behaviour. 2013-04-18 20:46:23 +10:00
bors d29ef7ad25 auto merge of #5927 : huonw/rust/core-enumerate-iterator, r=thestinger 2013-04-18 03:42:53 -07:00
Huon Wilson 0ff568a3c1 libcore: add an EnumerateIterator, like Python's enumerate. 2013-04-18 20:37:27 +10:00
Olivier Saut a35376e24e Small typos, year date and URL of the fbuild system for reference. 2013-04-18 11:51:12 +02:00
Marti Raudsepp 5dda8ab129 sketch: Make rust sketch barf output prettier 2013-04-18 12:46:01 +03:00
bors d32d4d1209 auto merge of #5923 : thestinger/rust/iterator, r=graydon 2013-04-18 01:36:53 -07:00
Youngmin Yoo 6030e3982a Errors with the same span print the span once 2013-04-18 17:19:41 +09:00
bors 3499a37b06 auto merge of #5919 : catamorphism/rust/gitignore, r=catamorphism 2013-04-18 00:39:54 -07:00
bors d4daee453c auto merge of #5918 : catamorphism/rust/Warnings, r=catamorphism 2013-04-17 23:45:57 -07:00
bors acf8887047 auto merge of #5916 : danluu/rust/debug_tutorial, r=catamorphism
debug! is used in the tutorial without any explanation of how to get the output. This adds a blurb on how to see the output from debug!
2013-04-17 22:51:56 -07:00
bors 3b48063373 auto merge of #5912 : Dretch/rust/issue-2626, r=graydon
which does currently seem to work on win32 (and linux).

Just mentioning issue #2626 again to make sure github picks it up.
2013-04-17 21:39:56 -07:00
bors 16652c9c17 auto merge of #5909 : brson/rust/rt4, r=graydon
This is just a bunch of minor changes and simplifications to the structure of core::rt. It makes ownership of the ~Scheduler more strict (though it is still mutably aliased sometimes), turns the scheduler cleanup_jobs vector into just a single job, shunts the thread-local scheduler code off to its own file.
2013-04-17 20:42:58 -07:00
bors a089c6f8fc auto merge of #5908 : jbclements/rust/add-hygiene-machinery, r=graydon
This pull request changes the representation of identifiers by adding an integer to the side of each one.  This integer will eventually be a reference to a side-table of syntax contexts, presumably stored in TLS. This pull request also adds a bunch of utility functions required for hygiene, and associated tests, but doesn't actually deploy those functions.

Finally, it also has a number of small cleanup items.
2013-04-17 19:48:59 -07:00
Daniel Micay c98f0cb362 vec: add an external iterator 2013-04-17 21:53:23 -04:00
bors fdb4ef321e auto merge of #5726 : brson/rust/struct-return, r=brson
r? @nikomatsakis

This doesn't completely fix the x86 ABI for structs, but it does fix some cases. On linux, structs appear to be returned correctly now. On windows, structs are only returned by pointer when they are greater than 8 bytes. That scenario works now.

In the case where the struct is less than 8 bytes our generated code looks peculiar. When returning a pair of u16, C packs both variables into %eax to return them. Our generated code though expects to find one of the pair in %ax and the other in %dx. Similar for u8. I haven't looked into it yet.

There appears to also be struct passing problems on linux, where my `extern-pass-TwoU8s` and `extern-pass-TwoU16s` tests are failing.
2013-04-17 18:45:58 -07:00
bors 68dea75296 auto merge of #5725 : jdm/rust/muttrait, r=nikomatsakis 2013-04-17 17:57:59 -07:00
Brian Anderson a5ddc00982 rustc: Use an out pointer to return structs in x86 C ABI. #5347
This Adds a bunch of tests for passing and returning structs
of various sizes to C. It fixes the struct return rules on unix,
and on windows for structs of size > 8 bytes. Struct passing
on unix for structs under a certain size appears to still be broken.
2013-04-17 15:49:19 -07:00
Tim Chevalier 2793e49622 gitignore: Add build/ subdirectory 2013-04-17 13:58:42 -07:00
Tim Chevalier f86bf0ee6e Warning police 2013-04-17 13:42:43 -07:00
Dan Luu 7373c64a4c Explain use of debug\! in tutorial 2013-04-17 11:51:43 -04:00
Josh Matthews 97303703ee Allow casting to mutable trait objects. 2013-04-17 00:34:25 +02:00
bors c2f5a87cdd auto merge of #5913 : brson/rust/valgrind, r=brson 2013-04-16 13:42:58 -07:00
Brian Anderson c6f7b595f0 More valgrind suppressions 2013-04-16 13:40:47 -07:00
gareth caffe127c7 Fix issue 2626 by un-ignoring the mysterious test_leaks,
which does currently seem to work on win32 (and linux).
2013-04-16 21:23:44 +01:00
bors 07e087bf31 auto merge of #5890 : youknowone/rust/const-eval, r=catamorphism
This will help not to meet confusing errors.
In issue #5873, the error was "expected constant expr for vector length: Can't cast str to int".
It was originally "expected constant expr for vector length: Non-constant path in constant expr" (though still invalid error).
This patch make the original error to be printed.
2013-04-16 12:48:56 -07:00
Brian Anderson 7bfd0e5035 Merge remote-tracking branch 'brson/sched-cleanup'
Conflicts:
	src/libcore/rt/sched/mod.rs
2013-04-16 11:23:13 -07:00
John Clements e7aa24de18 add self.token_to_str and is_any_keyword convenience abstractions 2013-04-16 10:06:06 -07:00
John Clements 7e4cd09e2e added MTWT functions 2013-04-16 10:06:06 -07:00
John Clements 1083ae6b06 better error message on failure to parse type 2013-04-16 10:06:06 -07:00
John Clements 313a5ab946 move interner_key macro 2013-04-16 10:06:05 -07:00
bors 7cacd87efd auto merge of #5904 : huonw/rust/core-vec-windowed, r=thestinger
And add some documentation.
2013-04-16 06:12:55 -07:00
Huon Wilson 21723d5bdc libcore: vec::windowed iterates, not allocates. 2013-04-16 23:07:46 +10:00
bors 76e77af380 auto merge of #5901 : thestinger/rust/iterator, r=sanxiyn
Can now use them like `x.transform(|i| i + 3).zip(y.filter(|i| i % 2)`.
2013-04-15 21:03:55 -07:00
bors 16e8af9e47 auto merge of #5895 : huonw/rust/no-pub-tests, r=thestinger
This patch is a sledge hammer that moves all tests into `#[cfg(test)] mod test { .. }`, and makes them private, there were several instances of `pub mod tests { #[test] pub fn ... } `.

(The reason for this is I was playing with using `syntax` to index code ([result so far](http://www.ug.it.usyd.edu.au/~hwil7821/rust-api/)) and it was getting some junk from the tests.)

The rustdoc commit is particularly brutal, so it's fine if that one isn't landed.
2013-04-15 20:00:56 -07:00