-
Notifications
You must be signed in to change notification settings - Fork 43
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
Usages of klabel{}(_)
attribute remain
#3742
Comments
This was referenced Mar 15, 2024
As an update, I opened this Frankenstein PR: #3744 It demonstrates that if runtimeverification/k#4045 is merged along with #3741, that the integration test suite here is all successful. We still need to figure out exactly how to close this loop though. |
rv-jenkins
pushed a commit
that referenced
this issue
Mar 20, 2024
) See #3742 for full context; this PR adds a backwards-compatible check for `symbol'Kywd` as well as `klabel` for the pseudo-builtin sorts `Endianness` and `Signedness`. When this is merged, I'll be able to finish working on runtimeverification/k#4045. Then, when that PR lands, the frontend will no longer emit `klabel(_)` to KORE, and we can safely remove the backwards-compatible part of this PR. The integration test suite's checked-in KORE files are all updated to use the new attribute rather than the old one, but the tests that use K to compile fresh KORE will still be using `klabel(_)` until the dependency update job induced by the changes above goes through. I have verified manually that building K with this HB commit allows the failing integration test in #3742 to pass. Thanks @jberthold for the suggestions! ~~The implementation here would ideally be made backwards-compatible; my version induces a dependency loop (hence failing tests, it would need an update to the K dependency to go through first for the integration test suite to pass).~~
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When working on runtimeverification/k#4035, I noticed that one test exercising the legacy Haskell backend failed after making the mechanical
klabel(_), symbol
refactorings implied in that issue: https://github.com/runtimeverification/k/tree/master/k-distribution/tests/regression-new/issue-1676-koreBytesThe error from the backend was:
Some digging into the code reveals that this is because the backend treats
Endianness
andSignedness
terms as special-cased builtins, but because these are not K hooked symbols, the backend needs to inspect theklabel{}(_)
attribute to check for special-casing.I have opened a draft fix in #3741 that simply looks for
symbol'Kywd'
instead ofklabel
in these cases (the only such placesklabel
is used). With this fix applied, I can pass the K regression test suite. However, there is now a dependency loop between the frontend and backend that we need to resolve to merge the fix. If there's a way to first look atklabel
, thensymbol'Kywd'
if there's noklabel
, then I think that would address the issue. We would then be able to update the K dependency for the integration tests and immediately remove the backwards compatibility.The text was updated successfully, but these errors were encountered: