Skip to content

Commit 4d2738d

Browse files
Adjust wording for forward progress guarantees
1 parent a7b2164 commit 4d2738d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

posts/2021-05-06-Rust-1.52.0.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ from the appropriate page on our website, and check out the
2727

2828
This release is fairly small, primarily containing stabilizations of various APIs in the standard library.
2929

30-
This release also closes out a long-standing bug in the Rust compiler: forward progress is no longer assumed by LLVM, which means that some programs which used to compile incorrectly are now properly handled. This is due to changes in LLVM IR semantics, which no longer assume forward progress is guaranteed and optimize for that.
30+
This release also closes out a long-standing [bug] in the Rust compiler. Previously, LLVM assumed that the program would make progress, and used this to optimize. This meant that certain constructs in safe Rust were removed or otherwise miscompiled, such as infinite loops (`loop {}`) or recursion which didn't terminate.
31+
32+
In Rust 1.49.0, we landed a [partial fix] to this bug specifically targeting
33+
`loop {}`, but this fix brings an LLVM upgrade which avoids needing workarounds
34+
for these cases, fixing the larger class of bug.
35+
36+
[bug]: https://github.com/rust-lang/rust/issues/28728
37+
[partial fix]: https://github.com/rust-lang/rust/pull/77972
3138

3239
### Stabilized APIs
3340

@@ -86,4 +93,4 @@ There are other changes in the Rust 1.52.0 release: check out what changed in [R
8693

8794
### Contributors to 1.52.0
8895

89-
Many people came together to create Rust 1.52.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.52.0/)
96+
Many people came together to create Rust 1.52.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.52.0/)

0 commit comments

Comments
 (0)