DescriptionThis adds a mechanism to invalidate code that was generated in the background. The invalidation can happen if a relevant event was invoked between background compilation start and installation of code (e.g, field type invalidatet, subclasses added, deferred loading).
We introduce 3 invalidation generation counters: CHA, field and library prefixes. If one of the counters was incremented during compilation, and is relevant for that compilation, the code installation is skipped since that code may have become invalid in the meantime.
Add BackgroundCompilationResult that remembers the 3 invalidation generations.
The generational counter can rollover, which is OK.
BUG=
R=asiva@google.com
Committed: https://github.com/dart-lang/sdk/commit/fe4a5d7672b878555b357005273877c8d71e91f0
Patch Set 1 #Patch Set 2 : cleanup #Patch Set 3 : f #
Total comments: 2
Patch Set 4 : Restructure #
Total comments: 2
Patch Set 5 : Add tracing of dropping code #
Total comments: 10
Patch Set 6 : Address comments #Patch Set 7 : sync #
Messages
Total messages: 7 (3 generated)
|