Skip to content

Prepare fixup for lazy deserialization#21170

Merged
ilevkivskyi merged 5 commits intopython:masterfrom
ilevkivskyi:lazy-2
Apr 9, 2026
Merged

Prepare fixup for lazy deserialization#21170
ilevkivskyi merged 5 commits intopython:masterfrom
ilevkivskyi:lazy-2

Conversation

@ilevkivskyi
Copy link
Copy Markdown
Member

Together with #21158, this gets us 95% there for lazy desrialization. Implementation is generally straightforward. At some point I wanted to unify the new global state with (parts of) the checker state, and potentially get rid of a bunch of named_type callbacks we pass around, but decided to do this later in a separate PR, since this is not strictly necessary for parallel checking.

Although this PR itself only makes fixup phase (which is the smaller part of deserialization) lazy, it already shows small performance improvements:

  • ~net zero on self-check
  • few percent faster cold torch with 4 workers
  • ~15% faster warm torch

cc @JukkaL

@github-actions

This comment has been minimized.

self.kind, self._node, self.module_public, self.implicit, self.module_hidden
)
new.cross_ref = self.cross_ref
new.unfixed = self.unfixed
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we need to copy stored_info here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good catch! I think that although it is a "short lived" attribute, for consistency we should.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅

@ilevkivskyi
Copy link
Copy Markdown
Member Author

I am going to merge this now and will enable proper lazy deserialization after #21158 is merged as well.

@ilevkivskyi ilevkivskyi merged commit 4c85ff0 into python:master Apr 9, 2026
24 checks passed
@ilevkivskyi ilevkivskyi deleted the lazy-2 branch April 9, 2026 16:13
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.

2 participants