-
Notifications
You must be signed in to change notification settings - Fork 8
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
error "This argument does not satisfy the let/app invariant" #175
Comments
Thanks. We'll look into this. |
It turns out if D# ((/##) 1.0 (doubleFromInteger (__integer 2))) is rewritten as: case case doubleFromInteger (__integer 2) of w' ▲
_ → (/##) 1.0 w'
of z' ▲
_ → D# z' Then lint will succeed. But doing so manually is rather tiresome. I tried the following with the above program, and it works (not sure about the
Turning the "troubled" arg into case was relatively straightforward, but since there are two levels of nested application Would appreciate if there is a more automatic way to fix this kind of error, or better yet if we can avoid violating the let/app rule in case elimination in the first place. |
Given: https://github.com/ghc/ghc/blob/master/compiler/coreSyn/CoreSyn.hs#L375 My guess is that some rewrite is building the application with an explicit Can you narrow down when exactly that expression gets built? |
Here is a log after I
The issue seems to be a result of using |
This is with hermit version 1.0.1 and GHC 7.10.3 on Linux. Program is simple:
I ran the follow hermit session:
Is it related to issue #139? Does changing GHC version help?
The text was updated successfully, but these errors were encountered: