Skip to content
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

Partially mitigate LLVM's infinite loops bug #2592

Merged
merged 1 commit into from
Mar 21, 2018

Conversation

Praetonus
Copy link
Member

The LLVM optimiser in its current state treats infinite loops as provoking undefined behaviour, which can lead to very undesirable effects in Pony programs (for example, an incorrect behaviour being called on a message receive.)

This change should completely fix the example described above, and fix some other less catastrophic manifestations of this bug.

There are ongoing efforts to fix these bugs on LLVM's side. Once they are completely fixed, this workaround can be removed.

The LLVM optimiser in its current state treats infinite loops as
provoking undefined behaviour, which can lead to very undesirable
effects in Pony programs (for example, an incorrect behaviour being
called on a message receive.)

This change should completely fix the example described above, and
fix some other less catastrophic manifestations of this bug.

There are ongoing efforts to fix these bugs on LLVM's side. Once they
are completely fixed, this workaround can be removed.
@Praetonus Praetonus force-pushed the infinite-loop-workaround branch from 986f0e5 to 3aaad76 Compare March 10, 2018 18:22
@jemc jemc added the changelog - fixed Automatically add "Fixed" CHANGELOG entry on merge label Mar 21, 2018
@jemc jemc merged commit aec3d5a into ponylang:master Mar 21, 2018
ponylang-main added a commit that referenced this pull request Mar 21, 2018
@jemc
Copy link
Member

jemc commented Mar 21, 2018

@Praetonus - is there an open LLVM ticket you can link here to track their ongoing effort to fix the problem?

dipinhora pushed a commit to dipinhora/ponyc that referenced this pull request Jun 5, 2018
The LLVM optimiser in its current state treats infinite loops as
provoking undefined behaviour, which can lead to very undesirable
effects in Pony programs (for example, an incorrect behaviour being
called on a message receive.)

This change should completely fix the example described above, and
fix some other less catastrophic manifestations of this bug.

There are ongoing efforts to fix these bugs on LLVM's side. Once they
are completely fixed, this workaround can be removed.
dipinhora pushed a commit to dipinhora/ponyc that referenced this pull request Jun 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog - fixed Automatically add "Fixed" CHANGELOG entry on merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants