question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Some floating-point stuff broke during the z3 upgrade

See original GitHub issue

I just upgraded the z3 distribution to the latest version and, as per usual, it seems to have broken a few things. The following code worked before the upgrade and no longer does:

import claripy
s = claripy.Solver()
a = claripy.FPS('a', claripy.fp.FSORT_FLOAT)
s.eval(a.raw_to_bv(), 1)

Something along these lines is currently causing our CI to fail.

I would appreciate it if someone could take this issue on.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:8 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
Phat3commented, Jun 7, 2019

I just created a PR (#145 ) that should fix all the problem that we had with the newer version of Z3.

The problem that we had was when we wanted to perform a conversion from a symbolic FP to a BV. Under the hood, angr calls the function FPToIEEE with the FP as a parameter. In the old version of z3, there was a concept of the function FPToIEE_unspecified which was special cased to 0 while in the new version this unspecified version of the function is no longer present.

Because of this, we ended up having two different models for the same constraint in the two different versions of Z3 (old version: [Sym_FP = NaN, fp.to_ieee_bv_unspecified = 0], new version: [Sym_FP = NaN]).

0reactions
github-actions[bot]commented, May 28, 2022

This issue has been marked as stale because it has no recent activity. Please comment or add the pinned tag to prevent this issue from being closed.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Segmentation fault in floating point theory · Issue #507 - GitHub
Attached is a log that produces a segmentation fault (with Z3 commit id 62a54cf) The example stems from a test case of verifying...
Read more >
John Gustafson's crusade to replace floating point with ...
He will keep failing to replace IEEE floating point as long as he insists on making NEGATIVE infinity the same as POSITIVE infinity....
Read more >
Floating-point arithmetic - Wikipedia
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the ...
Read more >
Galaxy Z Fold 3: Full S-Pen Tips, Tricks and Hidden Features ...
Buy the Fold 3 as low as $650 here: https://bit.ly/2Z3O3Ss (with trade- in )Buy the S-Pen Pro here: https://bit.ly/3nQhDocBuy the S-Pen Fold ...
Read more >
On the effectiveness of mitigations against floating-point timing ...
The duration of floating-point instructions is a known timing side channel that has been used to break Same-. Origin Policy (SOP) privacy on...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found