-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
bootstrap: Don't override debuginfo-level = 1
to mean line-tables-only
#112528
Conversation
This has real differences in the effective debuginfo: in particular, it omits the module-level information and breaks perf. Allow passing `line-tables-only` directly in config.toml instead.
r? @clubby789 (rustbot has picked a reviewer for you, use r? to override) |
debuginfo-level = 1
to mean line-tables-only
debuginfo-level = 1
to mean line-tables-only
Seems like this makes the line-table-only debug info much less useful than originally expected. I guess we might want some kind of intermediate "perf-useful" debuginfo which isn't quite 1, presuming there's stuff that's still extra with 1. @bors r+ |
…iaskrgr Rollup of 3 pull requests Successful merges: - rust-lang#112487 (Update documentation for `tools` defaults) - rust-lang#112513 (Dont compute `opt_suggest_box_span` span for TAIT) - rust-lang#112528 (bootstrap: Don't override `debuginfo-level = 1` to mean `line-tables-only`) r? `@ghost` `@rustbot` modify labels: rollup
StringOrInt::Int(n) => { | ||
let other = serde::de::Unexpected::Signed(n); | ||
return Err(D::Error::invalid_value(other, &"expected 0, 1, or 2")); | ||
} | ||
StringOrInt::String(s) => { | ||
let other = serde::de::Unexpected::Str(s); | ||
return Err(D::Error::invalid_value( | ||
other, | ||
&"expected none, line-tables-only, limited, or full", | ||
)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, it looks like 1 error message must be, not 2
return Err(D::Error::invalid_value(other, &"expected 0 or 1, 2, none, line-tables-only, limited, full"));
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i don't understand this comment. at this point we already know the config is a string and not a number.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deserializing into DebuginfoLevel
could be either Int
or String
.
You wrote one message if Int
is out of scope and different message if String
is out of scope.
But it must be one same message.
This has real differences in the effective debuginfo: in particular, it omits the module-level information and makes perf less useful (it can't distinguish "self" from "child" time anymore).
Allow passing
line-tables-only
directly in config.toml instead.See https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/debuginfo.20in.20try.20builds/near/365090631 and https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bsteering.5D.202023-06-09/near/364883519 for more discussion. This effectively reverts the cargo half of #110221 to avoid regressing #60020 again in 1.72.