Lots of interesting stuff here. Some thoughts:
Yeah, we may, and I imagine we’d close them with an explanation. But right now we’re getting bug reports saying “give me my backtraces!” Win some, lose some. In any case, it seems reasonable to expect that “unit test mode” behaves a bit differently, so you may find people are a bit less surprised than you think. Still, an interesting point.
I’m not sure about this. A lot of people may not be familiar with environment variables – or even the command line! Or there may be using environments where this is awkward. But mostly it’s a matter of discoverability: how do you know to write RUST_BACKTRACE=1, or even that such an option is available? If you google, you can find out, but you may just assume “rust is immature” and not look further.
Definitely. @rkruppe gave another scenario too.
This seems reasonable, but I personally actually really like getting traces into libstd. It’s not because I’m a core Rust hacker – after all, the stdlib is kind of a black box to me these days – but because when I’m trying to figure out what I did wrong, it’s great to be able to read the code. When using the JVM, for example, I would often download the sources to the JDK so that I could get the same experience there (similarly elisp etc). In any case, though, this seems like an orthogonal sugggestion – that is, we could improve the output of RUST_BACKTRACE (and perhaps you could signal whether you “trust” libstd or not) but in the end the question is whether it is on by default in any form whatsoever.