payload: {"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/60852","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/60852/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/60852/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/60852/events","html_url":"https://github.com/rust-lang/rust/pull/60852","id":444479058,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjc5MTMwMzU5","number":60852,"title":"std: Depend on `backtrace` crate from crates.io","user":{"login":"alexcrichton","id":64996,"node_id":"MDQ6VXNlcjY0OTk2","avatar_url":"https://avatars1.githubusercontent.com/u/64996?v=4","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"labels":[{"id":583426710,"node_id":"MDU6TGFiZWw1ODM0MjY3MTA=","url":"https://api.github.com/repos/rust-lang/rust/labels/S-waiting-on-review","name":"S-waiting-on-review","color":"d3dddd","default":false}],"state":"open","locked":false,"assignee":{"login":"sfackler","id":1455697,"node_id":"MDQ6VXNlcjE0NTU2OTc=","avatar_url":"https://avatars0.githubusercontent.com/u/1455697?v=4","gravatar_id":"","url":"https://api.github.com/users/sfackler","html_url":"https://github.com/sfackler","followers_url":"https://api.github.com/users/sfackler/followers","following_url":"https://api.github.com/users/sfackler/following{/other_user}","gists_url":"https://api.github.com/users/sfackler/gists{/gist_id}","starred_url":"https://api.github.com/users/sfackler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfackler/subscriptions","organizations_url":"https://api.github.com/users/sfackler/orgs","repos_url":"https://api.github.com/users/sfackler/repos","events_url":"https://api.github.com/users/sfackler/events{/privacy}","received_events_url":"https://api.github.com/users/sfackler/received_events","type":"User","site_admin":false},"assignees":[{"login":"sfackler","id":1455697,"node_id":"MDQ6VXNlcjE0NTU2OTc=","avatar_url":"https://avatars0.githubusercontent.com/u/1455697?v=4","gravatar_id":"","url":"https://api.github.com/users/sfackler","html_url":"https://github.com/sfackler","followers_url":"https://api.github.com/users/sfackler/followers","following_url":"https://api.github.com/users/sfackler/following{/other_user}","gists_url":"https://api.github.com/users/sfackler/gists{/gist_id}","starred_url":"https://api.github.com/users/sfackler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfackler/subscriptions","organizations_url":"https://api.github.com/users/sfackler/orgs","repos_url":"https://api.github.com/users/sfackler/repos","events_url":"https://api.github.com/users/sfackler/events{/privacy}","received_events_url":"https://api.github.com/users/sfackler/received_events","type":"User","site_admin":false}],"milestone":null,"comments":22,"created_at":"2019-05-15T14:41:38Z","updated_at":"2019-05-22T14:52:09Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/60852","html_url":"https://github.com/rust-lang/rust/pull/60852","diff_url":"https://github.com/rust-lang/rust/pull/60852.diff","patch_url":"https://github.com/rust-lang/rust/pull/60852.patch"},"body":"This commit removes all in-tree support for generating backtraces in\r\nfavor of depending on the `backtrace` crate on crates.io. This resolves\r\na very longstanding piece of duplication where the standard library has\r\nlong contained the ability to generate a backtrace on panics, but the\r\ncode was later extracted and duplicated on crates.io with the\r\n`backtrace` crate. Since that fork each implementation has seen various\r\nimprovements one way or another, but typically `backtrace`-the-crate has\r\nlagged behind libstd in one way or another.\r\n\r\nThe goal here is to remove this duplication of a fairly critical piece\r\nof code and ensure that there's only one source of truth for generating\r\nbacktraces between the standard library and the crate on crates.io.\r\nRecently I've been working to bring the `backtrace` crate on crates.io\r\nup to speed with the support in the standard library which includes:\r\n\r\n* Support for `StackWalkEx` on MSVC to recover inline frames with\r\n  debuginfo.\r\n* Using `libbacktrace` by default on MinGW targets.\r\n* Supporting `libbacktrace` on OSX as an option.\r\n* Ensuring all the requisite support in `backtrace`-the-crate compiles\r\n  with `#![no_std]`.\r\n* Updating the `libbacktrace` implementation in `backtrace`-the-crate to\r\n  initialize the global state with the correct filename where necessary.\r\n\r\nAfter reviewing the code in libstd the `backtrace` crate should be at\r\nexact feature parity with libstd today. The backtraces generated should\r\nhave the same symbols and same number of frames in general, and there's\r\nnot known divergence from libstd currently.\r\n\r\nNote that one major difference between libstd's backtrace support and\r\nthe `backtrace` crate is that on OSX the crates.io crate enables the\r\n`coresymbolication` feature by default. This feature, however, uses\r\nprivate internal APIs that aren't published for OSX. While they provide\r\nmore accurate backtraces this isn't appropriate for libstd distributed\r\nas a binary, so libstd's dependency on the `backtrace` crate explicitly\r\ndisables this feature and forces OSX to use `libbacktrace` as a\r\nsymbolication strategy.\r\n\r\nThe long-term goal of this refactoring is to eventually move us towards\r\na world where we can drop `libbacktrace` entirely and simply use Gimli\r\nand the surrounding crates for backtrace support. That's still aways off\r\nbut hopefully will much more easily enabled by having the source of\r\ntruth for backtraces live in crates.io!\r\n\r\nProcedurally if we go forward with this I'd like to transfer the\r\n`backtrace-rs` crate to the rust-lang GitHub organization as well, but I\r\nfigured I'd hold off on that until we get closer to merging."},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/494837421","html_url":"https://github.com/rust-lang/rust/pull/60852#issuecomment-494837421","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/60852","id":494837421,"node_id":"MDEyOklzc3VlQ29tbWVudDQ5NDgzNzQyMQ==","user":{"login":"alexcrichton","id":64996,"node_id":"MDQ6VXNlcjY0OTk2","avatar_url":"https://avatars1.githubusercontent.com/u/64996?v=4","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"created_at":"2019-05-22T14:52:09Z","updated_at":"2019-05-22T14:52:09Z","author_association":"MEMBER","body":"@bors: r=sfackler"}}
other: {"actor":{"display_login":"alexcrichton"}}