about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2013-04-18libcore: make spawn_supervised documentation reflect its behaviour.Huon Wilson-2/+3
2013-04-18libcore: add an EnumerateIterator, like Python's `enumerate`.Huon Wilson-0/+35
2013-04-18Small typos, year date and URL of the fbuild system for reference.Olivier Saut-6/+7
2013-04-18sketch: Make rust sketch barf output prettierMarti Raudsepp-2/+2
2013-04-18auto merge of #5923 : thestinger/rust/iterator, r=graydonbors-1/+54
2013-04-18Errors with the same span print the span onceYoungmin Yoo-13/+147
2013-04-17auto merge of #5918 : catamorphism/rust/Warnings, r=catamorphismbors-2/+2
2013-04-17auto merge of #5912 : Dretch/rust/issue-2626, r=graydonbors-1/+1
which does currently seem to work on win32 (and linux). Just mentioning issue #2626 again to make sure github picks it up.
2013-04-17auto merge of #5909 : brson/rust/rt4, r=graydonbors-449/+457
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-17auto merge of #5908 : jbclements/rust/add-hygiene-machinery, r=graydonbors-114/+541
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-17rustpkg: Add more testsTim Chevalier-0/+93
These are examples of what *should* work, and probably don't work yet.
2013-04-17rustpkg: Add a list of rustpkg commands that should passTim Chevalier-0/+35
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-17rustpkg: Don't execute the standard build logic if there is a pkg.rsTim Chevalier-4/+5
2013-04-17rustpkg: Change this example to show how to do a custom buildTim Chevalier-0/+6
2013-04-17rustpkg: Remove bogus .rc fileTim Chevalier-25/+1
2013-04-17vec: add an external iteratorDaniel Micay-1/+54
2013-04-17auto merge of #5726 : brson/rust/struct-return, r=brsonbors-157/+482
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-17auto merge of #5725 : jdm/rust/muttrait, r=nikomatsakisbors-65/+162
2013-04-17rustpkg: Implement clean; replace boolean result flags with fail!()Tim Chevalier-159/+67
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-17rustc: Use an out pointer to return structs in x86 C ABI. #5347Brian Anderson-91/+397
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-17rustpkg: Add a few testsTim Chevalier-0/+161
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-17rustpkg: Fail when crate inference fails; inject link attributesTim Chevalier-85/+142
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-17Warning policeTim Chevalier-2/+2
2013-04-17Allow casting to mutable trait objects.Josh Matthews-65/+162
2013-04-16auto merge of #5913 : brson/rust/valgrind, r=brsonbors-0/+8
2013-04-16More valgrind suppressionsBrian Anderson-0/+8
2013-04-16Fix issue 2626 by un-ignoring the mysterious test_leaks, gareth-1/+1
which does currently seem to work on win32 (and linux).
2013-04-16auto merge of #5890 : youknowone/rust/const-eval, r=catamorphismbors-25/+24
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-16Merge remote-tracking branch 'brson/sched-cleanup'Brian Anderson-449/+457
Conflicts: src/libcore/rt/sched/mod.rs
2013-04-16add self.token_to_str and is_any_keyword convenience abstractionsJohn Clements-25/+55
2013-04-16added MTWT functionsJohn Clements-66/+462
2013-04-16better error message on failure to parse typeJohn Clements-1/+2
2013-04-16move interner_key macroJohn Clements-22/+22
2013-04-16libcore: vec::windowed iterates, not allocates.Huon Wilson-16/+41
2013-04-15auto merge of #5901 : thestinger/rust/iterator, r=sanxiynbors-35/+40
Can now use them like `x.transform(|i| i + 3).zip(y.filter(|i| i % 2)`.
2013-04-15auto merge of #5895 : huonw/rust/no-pub-tests, r=thestingerbors-2803/+2836
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-15rustc: Anti-copy policeTim Chevalier-27/+22
2013-04-16libcore: missed an import for a testHuon Wilson-0/+1
2013-04-15core::rt: Clean up some more hacksBrian Anderson-12/+6
2013-04-15core::rt: Narrow down the unsafety of the thread-local schedulerBrian Anderson-47/+47
Only when borrowing the I/O implementation do we need unsafety
2013-04-15iterator: use an IteratorUtil traitDaniel Micay-35/+40
2013-04-15core::rt: Restructure context switches to take ownership of the SchedulerBrian Anderson-62/+94
In order to do a context switch you have to give up ownership of the scheduler, effectively passing it to the next execution context. This could help avoid some situations here tasks retain unsafe pointers to schedulers between context switches, across which they may have changed threads. There are still a number of uses of unsafe scheduler pointers.
2013-04-16librustdoc: move tests into dedicated tests module.Huon Wilson-1619/+1624
2013-04-16libcore,std,syntax,rustc: move tests into `mod tests`, make them private (no ↵Huon Wilson-1184/+1211
pub mod or pub fn).
2013-04-15auto merge of #5879 : astrieanna/rust/document_std_base64, r=catamorphismbors-1/+79
This adds examples for the methods in std::base64. Each example is complete in the sense that you can copy-paste it into a file and compile it successfully without adding anything (imports, etc). The hardest part of figuring out how to use this was figuring out the right import statements to put at the top.
2013-04-15core::rt: Make Scheduler::unsafe_local return a fabricated region pointerBrian Anderson-247/+228
Instead of taking a closure. It's unsafe either way. Rename it to unsafe_local_borrow.
2013-04-15core::rt: Rename Scheduler::local to Scheduler::unsafe_localBrian Anderson-26/+30
2013-04-15core::rt: A little bit of cleanup to thread-local schedulerBrian Anderson-20/+13
2013-04-15core::rt: Move thread-local scheduler to its own moduleBrian Anderson-99/+109
2013-04-15core::rt: Fix two incorrect uses of the thread-local schedulerBrian Anderson-2/+8
These would not be threadsafe