about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2014-02-21Test nested `proc` can access outer owned dataFlavio Percoco-0/+20
Fixes #10682
2014-02-21auto merge of #12326 : bjz/rust/integer, r=alexcrichtonbors-421/+439
This is part of the effort to simplify `std::num`, as tracked in issue #10387.
2014-02-21auto merge of #12420 : pnkfelix/rust/fsk-improve-doc-for-ptr-offset, ↵bors-1/+2
r=alexcrichton ptr::RawPtr, spell out units used for the `offset` argument. spell out units used for the `offset` argument, so that callers do not try to scale to byte units themselves. (this was originally landed in PR #11002 for the stand-alone functions, but that PR did not modify the `RawPtr` methods, since that had no doc at all at the time. Now `RawPtr` has the *only* documentation for `offset`, since the stand-alone functions went away in PR #12167 / PR #12248.)
2014-02-21auto merge of #12419 : huonw/rust/compiler-unsafe, r=alexcrichtonbors-35/+59
Previously an `unsafe` block created by the compiler (like those in the formatting macros) would be "ignored" if surrounded by `unsafe`, that is, the internal unsafety would be being legitimised by the external block: unsafe { println!("...") } =(expansion)=> unsafe { ... unsafe { ... } } And the code in the inner block would be using the outer block, making it considered used (and the inner one considered unused). This patch forces the compiler to create a new unsafe context for compiler generated blocks, so that their internal unsafety doesn't escape to external blocks. Fixes #12418.
2014-02-22Move std::num::Integer to libnumBrendan Zabarauskas-421/+439
2014-02-21auto merge of #12415 : HeroesGrave/rust/move-enum-set, r=alexcrichtonbors-3/+4
Part of #8784 Also removed the one glob import.
2014-02-21auto merge of #12410 : DaGenix/rust/fix-incorrect-comment, r=alexcrichtonbors-11/+2
The comments say that the prelude imports std::io::println since it would be annoying to have to import it in every program that uses it. However, the prelude doesn't actually import that function anymore. So, update the comments to better match reality.
2014-02-21auto merge of #12290 : mrshu/rust/lint-warn-by-default, r=alexcrichtonbors-68/+122
This first part of my attempts to fix #11432. In this one I only set NonCamelCaseTypes to warn by default and tried to fix errors that were reported by `make check`. Please feel free to let me know if I missed something or didn't do it the right way. Thanks.
2014-02-20auto merge of #12407 : alexcrichton/rust/up-llvm, r=sfacklerbors-0/+0
This updates the LLVM submodule to the `rust-llvm-2014-02-19` tag which is the old one with https://github.com/rust-lang/llvm/pull/4 cherry-picked on top. Awesome job by @neykov for this!
2014-02-21Changed NonCamelCaseTypes lint to warn by defaultmr.Shu-68/+122
Added allow(non_camel_case_types) to librustc where necesary Tried to fix problems with non_camel_case_types outside rustc fixed failing tests Docs updated Moved #[allow(non_camel_case_types)] a level higher. markdown.rs reverted Fixed timer that was failing tests Fixed another timer
2014-02-20auto merge of #12164 : alexcrichton/rust/rlibs-and-dylibs, r=cmrbors-94/+240
The first commit improves error messages during linking, and the second commit improves error messages during crate-loading time. Closes #12297 Closes #12377
2014-02-20Re-work loading crates with nicer errorsAlex Crichton-94/+240
This commit rewrites crate loading internally in attempt to look at less metadata and provide nicer errors. The loading is now split up into a few stages: 1. Collect a mapping of (hash => ~[Path]) for a set of candidate libraries for a given search. The hash is the hash in the filename and the Path is the location of the library in question. All candidates are filtered based on their prefix/suffix (dylib/rlib appropriate) and then the hash/version are split up and are compared (if necessary). This means that if you're looking for an exact hash of library you don't have to open up the metadata of all libraries named the same, but also in your path. 2. Once this mapping is constructed, each (hash, ~[Path]) pair is filtered down to just a Path. This is necessary because the same rlib could show up twice in the path in multiple locations. Right now the filenames are based on just the crate id, so this could be indicative of multiple version of a crate during one crate_id lifetime in the path. If multiple duplicate crates are found, an error is generated. 3. Now that we have a mapping of (hash => Path), we error on multiple versions saying that multiple versions were found. Only if there's one (hash => Path) pair do we actually return that Path and its metadata. With this restructuring, it restructures code so errors which were assertions previously are now first-class errors. Additionally, this should read much less metadata with lots of crates of the same name or same version in a path. Closes #11908
2014-02-20auto merge of #12401 : alexcrichton/rust/if-ok-2-try, r=brsonbors-1228/+1224
This "bubble up an error" macro was originally named if_ok! in order to get it landed, but after the fact it was discovered that this name is not exactly desirable. The name `if_ok!` isn't immediately clear that is has much to do with error handling, and it doesn't look fantastic in all contexts (if if_ok!(...) {}). In general, the agreed opinion about `if_ok!` is that is came in as subpar. The name `try!` is more invocative of error handling, it's shorter by 2 letters, and it looks fitting in almost all circumstances. One concern about the word `try!` is that it's too invocative of exceptions, but the belief is that this will be overcome with documentation and examples. Close #12037
2014-02-20auto merge of #12161 : aepsil0n/rust/docs/for-loop, r=alexcrichtonbors-0/+26
I just started learning Rust and the absence of an explanation of the for-loop in the beginning really bugged me about the tutorial. Hence I simply added these lines, where I would have expected them. I know that there is something later on in the section on traits. However, this simple iteration scheme feels like something that you should be aware of right away.
2014-02-20Mass rename if_ok! to try!Alex Crichton-1228/+1224
This "bubble up an error" macro was originally named if_ok! in order to get it landed, but after the fact it was discovered that this name is not exactly desirable. The name `if_ok!` isn't immediately clear that is has much to do with error handling, and it doesn't look fantastic in all contexts (if if_ok!(...) {}). In general, the agreed opinion about `if_ok!` is that is came in as subpar. The name `try!` is more invocative of error handling, it's shorter by 2 letters, and it looks fitting in almost all circumstances. One concern about the word `try!` is that it's too invocative of exceptions, but the belief is that this will be overcome with documentation and examples. Close #12037
2014-02-20auto merge of #12405 : kud1ing/rust/backticks, r=huonwbors-7/+7
2014-02-20auto merge of #12403 : eddyb/rust/generic-dtors-with-bounds, r=nikomatsakisbors-161/+122
Fix generic Drop impls with trait bounds. Fixes #4252.
2014-02-20ptr::RawPtr, spell out units used for the `offset` argument.Felix S. Klock II-1/+2
spell out units used for the `offset` argument, so that callers do not try to scale to byte units themselves.
2014-02-20auto merge of #12399 : michaelwoerister/rust/simd-fix, r=alexcrichtonbors-10/+96
Fixes #12333. I also re-enabled the *function-arg-initialization* test case, so if it passes again, fixes #12021.
2014-02-20auto merge of #12398 : alexcrichton/rust/rlibs-and-dylibs-2, r=cmrbors-86/+245
The new methodology can be found in the re-worded comment, but the gist of it is that -C prefer-dynamic doesn't turn off static linkage. The error messages should also be a little more sane now. Closes #12133
2014-02-20rustc: avoid compiler generated `unsafe` blocks leaking.Huon Wilson-35/+59
Previously an `unsafe` block created by the compiler (like those in the formatting macros) would be "ignored" if surrounded by `unsafe`, that is, the internal unsafety would be being legitimised by the external block: unsafe { println!("...") } =(expansion)=> unsafe { ... unsafe { ... } } And the code in the inner block would be using the outer block, making it considered used (and the inner one considered unused). This patch forces the compiler to create a new unsafe context for compiler generated blocks, so that their internal unsafety doesn't escape to external blocks. Fixes #12418.
2014-02-20auto merge of #12397 : alexcrichton/rust/send-off-the-runtime, r=brsonbors-10/+49
The fairness yield mistakenly called `Local::take()` which meant that it would only work if a local task was available. In theory sending on a channel (or calling try_recv) requires no runtime because it never blocks, so there's no reason it shouldn't support such a use case. Closes #12391
2014-02-20auto merge of #12343 : liigo/rust/move-extra-test-to-libtest, r=alexcrichtonbors-134/+171
I don't think `extra` is a good/meaningful name for a library. `libextra` should disappear, and we move all of its sub modules out of it. This PR is just one of that steps: move `extra::test` to `libtest`. I didn't add `libtest` to doc index, because it's an internal library currently. **Update:** All comments addressed. All tests passed. Rebased and squashed.
2014-02-20auto merge of #12396 : alexcrichton/rust/windows-env-var, r=huonwbors-1/+13
On windows, the GetEnvironmentVariable function will return the necessary buffer size if the buffer provided was too small. This case previously fell through the checks inside of fill_utf16_buf_and_decode, tripping an assertion in the `slice` method. This adds an extra case for when the return value is >= the buffer size, in which case we assume the return value as the new buffer size and try again. Closes #12376
2014-02-20move extra::test to libtestLiigo Zhuang-134/+171
2014-02-19auto merge of #12392 : aepsil0n/rust/fix/pub_randbigint, r=huonwbors-1/+1
Closes #12383. Test suite did not capture this and can't as long as it is in the same module hierarchy. This is probably something that should be addressed in the future.
2014-02-20move enum_set to libcollections. #8784HeroesGrave-3/+4
2014-02-19auto merge of #12244 : pcwalton/rust/deuniquevectorpatterns, r=pcwaltonbors-198/+229
Preparatory work for removing unique vectors from the language, which is itself preparatory work for dynamically sized types. r? @brson
2014-02-19auto merge of #12394 : huonw/rust/transmute--, r=pnkfelixbors-12/+4
These can all be done by implicit or explicit &T -> *T casts, which are more restricted and so are safer.
2014-02-19Update comments in the preludePalmer Cox-11/+2
The comments say that the prelude imports std::io::println since it would be annoying to have to import it in every program that uses it. However, the prelude doesn't actually import that function anymore. So, update the comments to better match reality.
2014-02-19Fix sending/try_recv on channels off the runtimeAlex Crichton-10/+49
The fairness yield mistakenly called `Local::take()` which meant that it would only work if a local task was available. In theory sending on a channel (or calling try_recv) requires no runtime because it never blocks, so there's no reason it shouldn't support such a use case. Closes #12391
2014-02-19librustc: Remove unique vector patterns from the language.Patrick Walton-198/+229
Preparatory work for removing unique vectors from the language, which is itself preparatory work for dynamically sized types.
2014-02-19auto merge of #12387 : cmr/rust/ast-json, r=alexcrichtonbors-7/+30
See the commits
2014-02-19auto merge of #12389 : zr40/rust/fix-test-metric-typo, r=alexcrichtonbors-1/+1
2014-02-19Upgrade LLVM for segmented stacks on thumbAlex Crichton-0/+0
This updates the LLVM submodule to the `rust-llvm-2014-02-19` tag which is the old one with https://github.com/rust-lang/llvm/pull/4 cherry-picked on top. Awesome job by @neykov for this!
2014-02-20Resolve the vtables for method calls to generic Drop impls with trait bounds.Eduard Burtescu-24/+43
2014-02-19adjust to currently used stylekud1ing-7/+7
2014-02-19Replaced method_map_entry with method_origin and cleaned up vtable checking ↵Eduard Burtescu-133/+79
a bit.
2014-02-19Don't recurse twice into ExprParen in vtable checking.Eduard Burtescu-4/+0
2014-02-19auto merge of #12231 : wycats/rust/url_path_parse, r=alexcrichtonbors-0/+115
It is sometimes useful to parse just the path portion of a URL (path, query string and fragment) rather than the entire URL. In theory I could have made Url embed a Path, but that would be a breaking change and I assume that Servo uses this API. I would be happy to update the PR to embed Path in Url if that's what people wanted.
2014-02-19auto merge of #11904 : nick29581/rust/0filemap, r=alexcrichtonbors-8/+78
2014-02-19rustc: support dumping the AST as JSONCorey Richardson-7/+30
This is mostly useful for working on rustc, when one is unfamiliar with the AST a particular construct will produce. It's a -Z flag as it's very much for debugging. Closes #10485
2014-02-19auto merge of #12379 : alexcrichton/rust/fix-ar-thing, r=brsonbors-0/+23
When creating a staticlib, it unzips all static archives it finds and then inserts the files manually into the output file. This process is done through `ar`, and `ar` doesn't like if you specify you want to add files and you don't give it any files. This case arose whenever you linked to an archive that didn't have any contents or all of the contents were filtered out. This just involved ignoring the case where the number of inputs we have is 0, because we don't have any files to add anyway.
2014-02-19auto merge of #12375 : FlaPer87/rust/issue-7660, r=cmrbors-0/+24
2014-02-19Tweak how preference factors into linkageAlex Crichton-86/+245
The new methodology can be found in the re-worded comment, but the gist of it is that -C prefer-dynamic doesn't turn off static linkage. The error messages should also be a little more sane now. Closes #12133
2014-02-19debuginfo: Re-enable test case that should have worked all along.Michael Woerister-1/+0
2014-02-19debuginfo: Fix a RUSTFLAGS incompatibility in test runner.Michael Woerister-8/+19
2014-02-19debuginfo: Move test case from run-pass to debug-info directory so it does ↵Michael Woerister-0/+0
not interfere with RUSTFLAGS=-g
2014-02-19debuginfo: Add support for simd typesMichael Woerister-1/+77
2014-02-19Fix getting/setting huge env vars on windowsAlex Crichton-1/+13
On windows, the GetEnvironmentVariable function will return the necessary buffer size if the buffer provided was too small. This case previously fell through the checks inside of fill_utf16_buf_and_decode, tripping an assertion in the `slice` method. This adds an extra case for when the return value is >= the buffer size, in which case we assume the return value as the new buffer size and try again. Closes #12376