You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
note: the compiler unexpectedly panicked. this is a bug.
68
76
```
69
77
70
-
This is the error caused by the internal consistency check, and as stated in the diagnostic, it yields an "Internal Compiler Error" (or ICE). In other words, it represents a bug in the internals of the Rust compiler itself. In *this* case, the ICE is revealing a bug in incremental compilation that predates the 1.52.0 release and could result in miscompilation if it had not been caught by `verify-ich`.
78
+
This is the error caused by the internal consistency check, and as stated in the diagnostic, it yields an "Internal Compiler Error" (or ICE). In other words, it represents a bug in the internals of the Rust compiler itself. In *this* case, the ICE is revealing a bug in incremental compilation that predates the 1.52.0 release and could result in miscompilation if it had not been caught.
71
79
72
80
## What are fingerprints? Why are we checking them?
73
81
@@ -79,28 +87,29 @@ Fingerprints are part of our architecture for detecting when inputs change. More
The `verify-ich`check is a safeguard asserting internal consistency of the
83
-
fingerprints. Sometimes the compiler is forced to rerun a query, and expects
90
+
The fingerprint stability check is a safeguard asserting internal consistency of
91
+
the fingerprints. Sometimes the compiler is forced to rerun a query, and expects
84
92
that the output is the same as from a prior incremental compilation session. The
85
93
newly enabled verification checks that the value is indeed as expected, rather
86
94
than assuming so. In some cases, due to bugs in the compiler's implementation,
87
95
this was not actually the case.
88
96
89
97
## History
90
98
91
-
We [initially added][pr-45867]`verify-ich`as a tool to use when developing
92
-
rustc itself, back in 2017. It was solely provided via an unstable`-Z` flag,
93
-
only available to nightly and development builds.
99
+
We [initially added][pr-45867]these fingerprint checks as a tool to use when
100
+
developing rustc itself, back in 2017. It was solely provided via an unstable
101
+
`-Z` flag, only available to nightly and development builds.
94
102
95
103
More recently, in March, we encountered a [miscompilation][issue-82920] that led us to [turn on `verify-ich` by default][pr-83007]. The Rust compiler team decided it was better to catch fingerprint problems and abort compilation, rather than allow for potential miscompilations (and subsequent misbehavior) to sneak into Rust programmer's binaries.
0 commit comments