Uh oh!
There was an error while loading. Please reload this page.
[Miri] Use a session variable instead of checking for an env var always - #69888
Conversation
There was a problem hiding this comment.
| /// Capture a backtrace at the point the error is created and return it in the error. | |
| /// Capture a backtrace at the point the error is created and return it in the error | |
| /// (to be printed later if/when the error ever actually gets shown to the user). |
RalfJung
commented
Mar 10, 2020
LGTM aside from the nit, but this is also touching global compiler infrastructure that I know little about... @oli-obk does this look reasonable? |
oli-obk
commented
Mar 10, 2020
Yea this is OK, but at this point you could also just use a lazy static inside that function without affecting any code outside of it |
RalfJung
commented
Mar 10, 2020
But then how is Miri going to change its value at run-time? |
oli-obk
commented
Mar 10, 2020
You can lazily initialize from the env var. Since the initialization only ever happens once, just like in the current PR, you can't change it while it runs, but that was never a use case |
RalfJung
commented
Mar 10, 2020
Yes it was, Miri does exactly that. |
oli-obk
commented
Mar 10, 2020
That's OK, that happens before any error is ever thrown so the lazy in init hasn't happened yet |
The intend is for that code to run after MIR got generated and const-eval happened. It gets called in Otherwise there'd be no reason for this entire |
oli-obk
commented
Mar 10, 2020
Right. I guess let's do this for now and reconsider if/when someone dislikes it |
In CTFE heavy code, checking the env var everytime is inefficient. We can do a lot better by using a `Session` variable instead.
ea85732 to
5357f83Comparewesleywiser
commented
Mar 11, 2020
@bors r=RalfJung |
bors
commented
Mar 11, 2020
📌 Commit 5357f83 has been approved by |
bors
commented
Mar 11, 2020
🌲 The tree is currently closed for pull requests below priority 1000, this pull request will be tested once the tree is reopened |
Rollup of 8 pull requests Successful merges: - #66472 (--show-coverage json) - #69603 (tidy: replace `make check` with `./x.py test` in documentation) - #69760 (Improve expression & attribute parsing) - #69828 (fix memory leak when vec::IntoIter panics during drop) - #69850 (panic_bounds_check: use caller_location, like PanicFnLangItem) - #69876 (Add long error explanation for E0739) - #69888 ([Miri] Use a session variable instead of checking for an env var always) - #69893 (librustc_codegen_llvm: Use slices instead of 0-terminated strings) Failed merges: r? @ghost
In CTFE heavy code, checking the env var everytime is inefficient. We
can do a lot better by using a
Sessionvariable instead.r? @RalfJung
Part of #69297