Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On fc8247a (good) or earlier or this PR, doing two consecutive builds in a row I see:
On #8905 / 102393f (bad) or
master
, I see:This regression causes all documents to be rewritten in the
writing output...
stage, which takes the incremental build from ~10 seconds to ~2 minutes, which is a tough efficiency regression when trying to iteratively write docs.I think this is due to
object()
not having a stablerepr
across runs because the memory location /id
can change, andid
is in the__repr__
ofobject
instances. So this PR ensures thatUNSET
has a stable__repr__
, and fixes my incremental doc builds.I went to add a test and realized it's not so easy because you actually need multiple Python processes to get this effect, because within a given process the
UNSET
will have a stable repr. So that's why there is no test. And maybe this is why it escaped existing tests if there are any that check to make sure things are not unnecessarily rebuilt.