-
Notifications
You must be signed in to change notification settings - Fork 12.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 2 pull requests #59635
Closed
Closed
Rollup of 2 pull requests #59635
Commits on Mar 31, 2019
-
Uses relative libdir to place libraries on all stages. Adds verbose installation output.
Configuration menu - View commit details
-
Copy full SHA for 5bcc365 - Browse repository at this point
Copy the full SHA 5bcc365View commit details
Commits on Apr 1, 2019
-
Fix stack overflow when generating debuginfo for 'recursive' type
By using 'impl trait', it's possible to create a self-referential type as follows: fn foo() -> impl Copy { foo } This is a function which returns itself. Normally, the signature of this function would be impossible to write - it would look like 'fn foo() -> fn() -> fn() ...' e.g. a function which returns a function, which returns a function... Using 'impl trait' allows us to avoid writing this infinitely long type. While it's useless for practical purposes, it does compile and run However, issues arise when we try to generate llvm debuginfo for such a type. All 'impl trait' types (e.g. ty::Opaque) are resolved when we generate debuginfo, which can lead to us recursing back to the original 'fn' type when we try to process its return type. To resolve this, I've modified debuginfo generation to account for these kinds of weird types. Unfortunately, there's no 'correct' debuginfo that we can generate - 'impl trait' does not exist in debuginfo, and this kind of recursive type is impossible to directly represent. To ensure that we emit *something*, this commit emits dummy debuginfo/type names whenever it encounters a self-reference. In practice, this should never happen - it's just to ensure that we can emit some kind of debuginfo, even if it's not particularly meaningful Fixes rust-lang#58463
Configuration menu - View commit details
-
Copy full SHA for 512069f - Browse repository at this point
Copy the full SHA 512069fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e1837a0 - Browse repository at this point
Copy the full SHA e1837a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for aed7ec4 - Browse repository at this point
Copy the full SHA aed7ec4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c4556a5 - Browse repository at this point
Copy the full SHA c4556a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for d2584e3 - Browse repository at this point
Copy the full SHA d2584e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for c13daeb - Browse repository at this point
Copy the full SHA c13daebView commit details
Commits on Apr 2, 2019
-
Rollup merge of rust-lang#59341 - o01eg:use-custom-libdir, r=Mark-Sim…
…ulacrum Fix custom relative libdir While working on rust-lang#58947 I found out relative libdir ignored during setting LD_LIBRARY_PATH.
Configuration menu - View commit details
-
Copy full SHA for 7886a18 - Browse repository at this point
Copy the full SHA 7886a18View commit details -
Rollup merge of rust-lang#59446 - Aaron1011:fix/debuginfo-overflow, r…
…=oli-obk Fix stack overflow when generating debuginfo for 'recursive' type By using 'impl trait', it's possible to create a self-referential type as follows: fn foo() -> impl Copy { foo } This is a function which returns itself. Normally, the signature of this function would be impossible to write - it would look like 'fn foo() -> fn() -> fn() ...' e.g. a function which returns a function, which returns a function... Using 'impl trait' allows us to avoid writing this infinitely long type. While it's useless for practical purposes, it does compile and run However, issues arise when we try to generate llvm debuginfo for such a type. All 'impl trait' types (e.g. ty::Opaque) are resolved when we generate debuginfo, which can lead to us recursing back to the original 'fn' type when we try to process its return type. To resolve this, I've modified debuginfo generation to account for these kinds of weird types. Unfortunately, there's no 'correct' debuginfo that we can generate - 'impl trait' does not exist in debuginfo, and this kind of recursive type is impossible to directly represent. To ensure that we emit *something*, this commit emits dummy debuginfo/type names whenever it encounters a self-reference. In practice, this should never happen - it's just to ensure that we can emit some kind of debuginfo, even if it's not particularly meaningful Fixes rust-lang#58463
Configuration menu - View commit details
-
Copy full SHA for 78ba0dc - Browse repository at this point
Copy the full SHA 78ba0dcView commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.