julia
9dc35c80 - reinfer: trust an image's edges whose methods come from its dependencies (#63655)

Commit
5 days ago
reinfer: trust an image's edges whose methods come from its dependencies (#63655) An edge whose expected methods neither dominate its signature nor survive the interference scan goes to the full `methods` lookup. However, often all the methods are only those that the worker already saw when being precompiled, so the match set is still exactly that set. So before the interference scan, check whether every method under the signature's typenames was already present when the `CodeInstance` was precompiled. If so, the worker's verdict stands with no upper bound. Without an ambiguity the edge is valid from the newest expected method, as the lookup would date it: the methods matched now win in every older world in which they are all present. An ambiguous edge, or one that matched nothing, is conservatively valid only from the youngest contributor, since a lookup can drop an ambiguous pair of which one was the sole match in an older world (we can only refine this by computing the full `methods`). An invoke edge is trusted while its target is still the latest method of its signature, and is dated from that method. A session definition or deletion under those typenames, a method of an image outside the dependencies, a kind or `Type{Union{}}` method, code of no image and the invalidation debugger all refuse the trust, and the edge falls through to the interference scan, which then passes over the dependencies' own methods, and then to the lookup. Assisted-by: Claude Code (Fable 5.1) Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit af8da45cdb540e8d90cbc624f6eed209de8e715b)
Committer
Parents
Loading