Skip to content

Conversation

benesch
Copy link
Contributor

@benesch benesch commented Jun 17, 2020

Switch over to the new Gimli-based backtrace symbolicator. Gimli is a
pure-Rust reimplementation of libbacktrace that will soon be the default
backtrace implementation in the Rust standard library 0. Switching to
it now means we can help shake out problems, like 1, before it ships
in the standard library, where fixing problems will require a full six
week release cycle.

This switch has the side effect of fixing backtraces on macOS, which
seem to be broken at the moment because the backtrace crate is picking
libbacktrace over coresymbolication. There isn't a good way of fixing
that because Cargo doesn't support per-platform features 2; using
neither libbacktrace or coresymbolicator is a kind of stupid but
effective way of sidestepping the problem.


This change is Reviewable

Switch over to the new Gimli-based backtrace symbolicator. Gimli is a
pure-Rust reimplementation of libbacktrace that will soon be the default
backtrace implementation in the Rust standard library [0]. Switching to
it now means we can help shake out problems, like [1], before it ships
in the standard library, where fixing problems will require a full six
week release cycle.

This switch has the side effect of fixing backtraces on macOS, which
seem to be broken at the moment because the backtrace crate is picking
libbacktrace over coresymbolication. There isn't a good way of fixing
that because Cargo doesn't support per-platform features [2]; using
neither libbacktrace or coresymbolicator is a kind of stupid but
effective way of sidestepping the problem.

[0]: rust-lang/rust#73441
[1]: rust-lang/backtrace-rs#342
[2]: rust-lang/cargo#1197
@benesch benesch merged commit 6aafd50 into MaterializeInc:master Jun 18, 2020
@benesch benesch deleted the macos-backtraces branch June 18, 2020 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant