Commit Graph

17192 Commits

Author SHA1 Message Date
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
Tim Chevalier
128e95b89d rustpkg: Add more tests
These are examples of what *should* work, and probably don't
work yet.
2013-04-17 19:00:52 -07:00
Tim Chevalier
958189dba1 rustpkg: Add a list of rustpkg commands that should pass
This is a test file containing examples of commands that should
succeed. When we write the test runner, we will have to figure
out how to automate them.
2013-04-17 18:59:32 -07:00
Tim Chevalier
e2d947d72f rustpkg: Don't execute the standard build logic if there is a pkg.rs 2013-04-17 18:58:59 -07:00
Tim Chevalier
a2761ac7b5 rustpkg: Change this example to show how to do a custom build 2013-04-17 18:58:41 -07:00
Tim Chevalier
35f3b6324f rustpkg: Remove bogus .rc file 2013-04-17 18:58:12 -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
Tim Chevalier
82765a0b48 rustpkg: Implement clean; replace boolean result flags with fail!()
1. Implemented the `clean` command

2. The methods implementing rustpkg commands all returned `bool`.
Since most of not all of the error situations seem unrecoverable,
I changed the methods to return unit (and also stubbed out several
more methods that were assuming a package script existed, to be
re-implemented in the future)
2013-04-17 15:58:11 -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
e6c3c371a5 rustpkg: Add a few tests
There's no test runner for rustpkg yet; just sketching out a few
basic test scenarios. pass/ contains packages that should compile
successfully, whereas fail/ contains packages that should fail
to build.
2013-04-17 14:32:40 -07:00
Tim Chevalier
c01c3d9fc6 rustpkg: Fail when crate inference fails; inject link attributes
1. Fail when there's no package script and no crates named
main.rs, lib.rs, bench.rs, or test.rs.

2. Inject the crate link_meta "name" and "vers" attributes, so
that the output file gets named correctly in the library case.

3. Normalize '-' to '_' in package names.
2013-04-17 14:32:34 -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
bors
447caf9bdb auto merge of #5899 : catamorphism/rust/copy-cops, r=catamorphism 2013-04-15 19:09:56 -07:00
Tim Chevalier
39d45b75cc rustc: Anti-copy police 2013-04-15 19:06:36 -07:00
Huon Wilson
40e3577b08 libcore: missed an import for a test 2013-04-16 12:04:49 +10:00
Brian Anderson
1f94364aef core::rt: Clean up some more hacks 2013-04-15 18:56:39 -07:00
Brian Anderson
ed74ac169e core::rt: Narrow down the unsafety of the thread-local scheduler
Only when borrowing the I/O implementation do we need unsafety
2013-04-15 18:54:02 -07:00
Daniel Micay
f82c96446f iterator: use an IteratorUtil trait 2013-04-15 21:35:41 -04:00
Daniel Micay
a581926f57 update RELEASES.txt 2013-04-15 21:09:23 -04:00