-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Non-idempotent compilation #29952
Comments
Note that with #29957 merged, one needs to revert that change in order to have recursion with the |
Fixed by #29957 Edit: Or well, maybe the non-idempotence is still an issue |
Annoyingly, this seems precompilation/sysimg related. Can't reproduce with similar functions that are defined in the file itself, only by calling eg. |
Probably not relevant anymore after the codegen refactor. |
Reduced from JuliaGPU/CUDAnative.jl#278, where a simple CUDAnative kernel that calls
print_to_string
doesn't work anymore since #28876 due to unsupported recursion. Although the recursion itself is problematic, which #25984 is supposed to fix, there seems to be a greater issue here, where multiple invocations of the compiler yield different results. Maybe that falls under the known problem of order-dependent inference, but I'm not sure so putting it out here anyway.MWE without CUDAnative:
Calling
codegen()
twice yields different results, where the second one results in recursive codegen forprint_to_string
:The part of #28876 that has resulted in this behavior, is the removal of a keyword argument. Adding an unused one back fixes the recursion:
This is on latest 1.0.2 (b196720).
Another possible clue:
The text was updated successfully, but these errors were encountered: