f09edd1d32
Add an incremental serializer that can be used to avoid re-serializing the same thing again and again. It does this by grouping libraries into Components / bundles, serializing them individually and using the concatenated dill feature to output the wanted data --- just potentially faster if we had the data in cache. Note that the serialized output might contain *more* than the input given if we cached the wanted data into a bigger bundle. The output will always be "closed" though, i.e. if the stuff that is included that is too much added a new dependency, that dependency will be included as well. This should generally make it safe, although one can imagine situations where it could pull in lots of dependencies that it wouldn't otherwise have. It is being driven by the incremental compiler which makes sure to invalidate the cache when the data changes. Except for situations where the libraries are changed externally after being serialized, but before being serialized again, where one then wants the updated library serialized, the feature should be safe. Change-Id: I2a504abe6dbb68434c3b04abff13480ef72a6a6e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120786 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Jens Johansen <jensj@google.com>