Skip to content

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Sep 13, 2022

This changes the algorithm for walking the backedges graph slightly to correctly resolve cycles, using the algorithm described for inference-convergence at: https://juliacomputing.com/blog/2017/05/inference-converage2/

@vtjnash vtjnash merged commit d4f0567 into master Sep 21, 2022
@vtjnash vtjnash deleted the jn/dump-backedge-cycles branch September 21, 2022 13:01
vtjnash added a commit that referenced this pull request Sep 27, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Sep 27, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Sep 27, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that. This also avoids needing to interact with
backedges at all.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that. This also avoids needing to interact with
backedges at all.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that. This also avoids needing to interact with
backedges at all.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Oct 4, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that. This also avoids needing to interact with
backedges at all.

This uses the same algorithm now as #46749 for cycle convergence.
timholy pushed a commit that referenced this pull request Oct 5, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that. Validation is performed while they are represented
as forward edges, so avoids needing to interact with backedges at all.

This uses the same algorithm now as #46749 for cycle convergence.
vtjnash added a commit that referenced this pull request Nov 29, 2022
vtjnash added a commit that referenced this pull request Nov 29, 2022
Previously, we would flatten the edges graph during serialization, to
simplify the deserialization codes, but that now was adding complexity
and confusion and uncertainty to the code paths. Clean that all up, so
that we do not do that. Validation is performed while they are represented
as forward edges, so avoids needing to interact with backedges at all.

This uses the same algorithm now as #46749 for cycle convergence.

(cherry picked from commit fbd5a72)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant