Skip to content
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

Fix generator-invocation legality check for varargs generators #47739

Merged
merged 1 commit into from
Nov 29, 2022

Conversation

Keno
Copy link
Member

@Keno Keno commented Nov 29, 2022

This code was introduced by me back in #31025 to speed up evaluation of generated functions that didn't make use of all of their arguments to make generation decisions. However, it neglected to take into account the possibility that the generator could be varargs. As a result, an unfortunate coincidence of an unused slot in the correct position could have allowed expansion of generators that were not supposed to be expandable. This can cause incorrect inference with all the usual consequences. However, fortunately this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

@Keno Keno requested a review from aviatesk November 29, 2022 15:41
@Keno Keno added backport 1.6 Change should be backported to release-1.6 backport 1.8 Change should be backported to release-1.8 backport 1.9 Change should be backported to release-1.9 compiler:inference Type inference bugfix This change fixes an existing bug labels Nov 29, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12
@Keno Keno force-pushed the kf/ovlcassettebug branch from d4151d2 to 1a48687 Compare November 29, 2022 18:41
@Keno Keno merged commit 328dd57 into master Nov 29, 2022
@Keno Keno deleted the kf/ovlcassettebug branch November 29, 2022 23:48
aviatesk added a commit that referenced this pull request Nov 30, 2022
Copy link
Member

@aviatesk aviatesk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LTGM. Submitted a minor follow up PR at #47746.

aviatesk added a commit that referenced this pull request Nov 30, 2022
KristofferC pushed a commit that referenced this pull request Dec 8, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
KristofferC pushed a commit that referenced this pull request Dec 14, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
@KristofferC KristofferC mentioned this pull request Dec 14, 2022
26 tasks
KristofferC pushed a commit that referenced this pull request Dec 14, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
@KristofferC KristofferC removed the backport 1.8 Change should be backported to release-1.8 label Dec 16, 2022
KristofferC pushed a commit that referenced this pull request Dec 21, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
KristofferC pushed a commit that referenced this pull request Dec 21, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
KristofferC pushed a commit that referenced this pull request Dec 21, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
staticfloat pushed a commit that referenced this pull request Dec 23, 2022
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
@KristofferC KristofferC removed the backport 1.9 Change should be backported to release-1.9 label Dec 27, 2022
KristofferC pushed a commit that referenced this pull request Oct 10, 2023
This code was introduced by me back in #31025 to speed up evaluation
of generated functions that didn't make use of all of their arguments to
make generation decisions. However, it neglected to take into account the
possibility that the generator could be varargs. As a result, an unfortunate
coincidence of an unused slot in the correct position could have allowed
expansion of generators that were not supposed to be expandable. This can
cause incorrect inference with all the usual consequences. However, fortunately
this coincidence appears to be pretty rare.

Fixes JuliaDebug/CassetteOverlay.jl#12

(cherry picked from commit 328dd57)
KristofferC pushed a commit that referenced this pull request Oct 11, 2023
(cherry picked from commit c46834b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 1.6 Change should be backported to release-1.6 bugfix This change fixes an existing bug compiler:inference Type inference
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Segfault due to bad inference of overlayed merge
4 participants