-
Notifications
You must be signed in to change notification settings - Fork 54
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
Tail recursion elimination for GenC (#1275) #1626
Conversation
Verification of |
also of |
Could we try to run the tests again? (Apparently it was because we didn't add the |
By the way, I removed the test case TailRecReturnInLoop because apparently this kind of thing is not allowed by Stainless, because the loop will be rewritten into a function, and if we make a recursive call in the loop, it will make the inner function mutually recursive with the enclosing function and Stainless throws an error (which I think is from stainless/core/src/main/scala/stainless/verification/TypeChecker.scala Lines 1236 to 1251 in 88e4de5
|
I rerun the CI 👍
About that: can't we keep the benchmark with the |
Oh sorry, they're all new test cases! My bad! |
I see 3 failed tests, but they are not related to our part. Anyone has any idea why...? |
@vkuncak They're the same failing tests as on the other PR. |
@sankalpgambhir could it be related to some Princess versions? They're not changing anything in the build file though. |
We investigated and these tests failing have nothing to do with your PR. It is happening because of the latest release of the Princess Solver. We will ignore those tests in a soon-to-be-merged PR. |
Co-Authored-By: Zhekai Jiang <[email protected]>
Co-Authored-By: Zhekai Jiang <[email protected]>
…uite Co-Authored-By: Kacper Korban <[email protected]>
… tail recursion elimination
…d (not a "complete" test yet)
…rec tests to tailrec suite
3b01e4d
to
f2a60f9
Compare
This is to address #1275 . We added a new phase to perform tail recursion elimination.
We added test cases in the GenCSuite.
As discussed during the presentation, we may want to take a closer look at ghost elimination and see whether it is doing the job correctly.