summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2017-01-19mk: Fix compile with makefilesAlex Crichton-5/+10
A tweak was made to dependencies in #38451 but the makefiles weren't updated to accompany this. Instead of trying to integerate the `build_helper` crate into the makefiles (which currently isn't present) this commit takes the approach of just duplicating the required logic, which should be small enough for now.
2017-01-19OpenBSD has two stdc++ libraries: use the newerSébastien Marie-2/+9
stdc++ is from base, and is an old library (GCC 4.2) estdc++ is from ports, and is a recent library (GCC 4.9 currently) as LLVM requires the newer version, use it if under OpenBSD.
2017-01-19let BSD to use gmake for GNU-makeSébastien Marie-4/+20
the diff extends build_helper to provide an function to return the expected name of GNU-make on the host: "make" or "gmake". Fixes #38429
2017-01-19disable run-pass/backtrace for openbsdSébastien Marie-0/+1
the backtrace test doesn't work on openbsd as it doesn't have support for libbacktrace without using filename.
2017-01-19Disconnect ar from cc on OpenBSDSébastien Marie-0/+2
OpenBSD usually use an alternative compiler (`egcc') from ports. But the `ar' is unprefixed as it comes from base.
2017-01-19tolerate `None` return from `get_line`Niko Matsakis-1/+1
2017-01-19more complete error messageNiko Matsakis-1/+1
2017-01-19only consider value items when searching for methods, not typesNiko Matsakis-2/+24
2017-01-17Unbreak beta.Jeffrey Seyfried-1/+2
2017-01-17rustbuild: Don't enable debuginfo in rustcAlex Crichton-0/+16
In #37280 we enabled line number debugging information in release artifacts, primarily to close out #36452 where debugging information was critical for MSVC builds of Rust to be useful in production. This commit, however, apparently had some unfortunate side effects. Namely it was noticed in #37477 that if `RUST_BACKTRACE=1` was set then any compiler error would take a very long time for the compiler to exit. The cause of the problem here was somewhat deep: * For all compiler errors, the compiler will `panic!` with a known value. This tears down the main compiler thread and allows cleaning up all the various resources. By default, however, this panic output is suppressed for "normal" compiler errors. * When `RUST_BACKTRACE=1` was set this caused every compiler error to generate a backtrace. * The libbacktrace library hits a pathological case where it spends a very long time in its custom allocation function, `backtrace_alloc`, because the compiler has so much debugging information. More information about this can be found in #29293 with a summary at the end of #37477. To solve this problem this commit simply removes debuginfo from the compiler but not from the standard library. This should allow us to keep #36452 closed while also closing #37477. I've measured the difference to be orders of magnitude faster than it was before, so we should see a much quicker time-to-exit after a compile error when `RUST_BACKTRACE=1` is set. Closes #37477 Closes #37571
2017-01-17fix function arguments in constant promotionAriel Ben-Yehuda-13/+22
we can't create the target block until *after* we promote the arguments - otherwise the arguments will be promoted into the target block. oops. Fixes #38985.
2017-01-17Improve the warning cycle for `use $crate;`.Jeffrey Seyfried-4/+14
2017-01-11Use little-endian encoding for Blake2 hashing on all architecturesAriel Ben-Yehuda-6/+10
Like many hash functions, the blake2 hash is mathematically defined on a sequence of 64-bit words. As Rust's hash interface operates on sequences of octets, some encoding must be used to bridge that difference. The Blake2 RFC (RFC 7693) specifies that: Byte (octet) streams are interpreted as words in little-endian order, with the least-significant byte first. So use that encoding consistently. Fixes #38891.
2017-01-07Merge pull request #38884 from nikomatsakis/beta-unmergedAlex Crichton-40/+264
More beta backports
2017-01-06Don't `unused_qualifications`-check global paths.Jeffrey Seyfried-5/+6
2017-01-06Add regression test.Jeffrey Seyfried-0/+43
2017-01-06Fold all spans in the AST.Jeffrey Seyfried-7/+7
2017-01-06Fix tidy warningJonathan Turner-0/+10
2017-01-06Add in test for E0090Jonathan Turner-0/+5
2017-01-06Add back in previous logic and remove span shrinkingJonathan Turner-1/+8
2017-01-06rebase backport of #38855 onto betaNiko Matsakis-1/+1
2017-01-06Fix ICE on i686 when calling immediate() on OperandValue::Ref in returnMark Simulacrum-1/+26
2017-01-06fix help for the --print optionDoug Goldstein-1/+2
Since 8285ab5c99, which was merged in with #38061, the help for the --print option is missing the surrounding [ ] around the possible options. Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2017-01-06std: Don't pass overlapped handles to processesAlex Crichton-29/+153
This commit fixes a mistake introduced in #31618 where overlapped handles were leaked to child processes on Windows. On Windows once a handle is in overlapped mode it should always have I/O executed with an instance of `OVERLAPPED`. Most child processes, however, are not prepared to have their stdio handles in overlapped mode as they don't use `OVERLAPPED` on reads/writes to the handle. Now we haven't had any odd behavior in Rust up to this point, and the original bug was introduced almost a year ago. I believe this is because it turns out that if you *don't* pass an `OVERLAPPED` then the system will [supply one for you][link]. In this case everything will go awry if you concurrently operate on the handle. In Rust, however, the stdio handles are always locked, and there's no way to not use them unlocked in libstd. Due to that change we've always had synchronized access to these handles, which means that Rust programs typically "just work". Conversely, though, this commit fixes the test case included, which exhibits behavior that other programs Rust spawns may attempt to execute. Namely, the stdio handles may be concurrently used and having them in overlapped mode wreaks havoc. [link]: https://blogs.msdn.microsoft.com/oldnewthing/20121012-00/?p=6343 Closes #38811
2017-01-06rustbuild: Stop building docs for std dependanciesOliver Middleton-1/+10
2017-01-06Document custom derive.Steve Klabnik-12/+258
These are some bare-bones documentation for custom derive, needed to stabilize "macros 1.1", https://github.com/rust-lang/rust/issues/35900 The book chapter is based off of a blog post by @cbreeden, https://cbreeden.github.io/Macros11/ Normally, we have a policy of not mentioning external crates in documentation. However, given that syn/quote are basically neccesary for properly using macros 1.1, I feel that not including them here would make the documentation very bad. So the rules should be bent in this instance.
2017-01-06rustc: Stabilize the `proc_macro` featureAlex Crichton-188/+13
This commit stabilizes the `proc_macro` and `proc_macro_lib` features in the compiler to stabilize the "Macros 1.1" feature of the language. Many more details can be found on the tracking issue, #35900. Closes #35900
2017-01-06rustbuild: Fix source tarballs and the vendor dirAlex Crichton-0/+7
The source tarball creation step would attempt to skip a number of files that we want to ignore ourselves, but once we've hit the vendor directory we don't want to skip anything so be sure to vendor everything inside that directory. Closes #38690
2017-01-06Fix mistake.Without Boats-1/+1
2017-01-06Add test.Without Boats-0/+16
2017-01-06Improve error message.Without Boats-1/+1
2017-01-06Prevent where < ident > from parsing.Without Boats-0/+17
In order to be forward compatible with `where<'a>` syntax for higher rank parameters, prevent potential conflicts with UFCS from parsing correctly for the near term.
2017-01-06Revert "Update for changes to TraitItem on master."Niko Matsakis-3/+3
This reverts commit 1d23be75b95b1dad318020fcf110836a7f17fc80.
2017-01-06Fix rustdoc ICE.Jeffrey Seyfried-0/+58
2017-01-06Update for changes to TraitItem on master.Eduard-Mihai Burtescu-3/+3
2017-01-06Don't leak the compiler's internal representation of scopes in error messages.Eduard-Mihai Burtescu-15/+99
2017-01-06rebase: remove `tcx` from `associated_item`Niko Matsakis-8/+6
2017-01-06Regression test and exploratory unit test.Felix S. Klock II-0/+249
2017-01-06Dont check stability for items that are not pub to universe.Felix S. Klock II-1/+36
Includes special case handling for trait methods. Fix #38412.
2017-01-06Style fixesJosh Driver-6/+3
2017-01-06Stop macro calls in structs for proc_macro_derive from panicingJosh Driver-1/+62
2017-01-06Fix regression with duplicate `#[macro_export] macro_rules!`.Jeffrey Seyfried-1/+42
2017-01-06fix promotion of MIR terminatorsAriel Ben-Yehuda-79/+87
promotion of MIR terminators used to try to promote the destination it is trying to promote, leading to stack overflow. Fixes #37991.
2016-12-30Demote most backwards incompatible ambiguity errors from RFC 1560 to warnings.Jeffrey Seyfried-28/+111
2016-12-30rustbuild: Stop building docs for libtest by defaultOliver Middleton-1/+1
They cause the search index from the std docs to get overwritten just like #34800. Part of #38319.
2016-12-30rustbuild: Update Cargo download locationAlex Crichton-14/+10
I updated the beta compiler used to bootstrap the master branch in #38438 with the intention of fixing Travis OSX linkage issues but I mistakenly forgot that the PR only updated rustc, not Cargo itself. Cargo has a new release process with downloads in a different location, so this commit updates rustbuild to download from this new location by tracking revisions instead of Cargo nightly dates.
2016-12-30Fix closure debuginfo.Austin Hicks-5/+9
2016-12-30Disable field reorderingAustin Hicks-36/+36
2016-12-30Fix non-termination in `resolve`.Jeffrey Seyfried-2/+5
2016-12-30clear discriminant drop flag at the bottom of a ladderAriel Ben-Yehuda-38/+93
Fixes #38437.