Please merge dart2js changes into stable channel 2.7.* #40217
Labels
area-infrastructure
Use area-infrastructure for SDK infrastructure issues, like continuous integration bot changes.
merge-to-stable
commit(s) to merge: aa56cd3 1103d9f b050a59 a57a977 75fc15c b233061 4bc9c8b 529913f a92a9f1
merge instructions:
Together these merged cleanly on my client and I was able to build the sdk and manually run dart2js.
reason: considerable compile-time performance improvements for external apps (details below). We iterated on these changes for a while with one our customers, they have tried dev releases and patches with these changes and and they saw a huge reduction in memory utilization on their apps (from 20G to 12G of RAM), and compilation time (from 35 minutes, down to 11 minutes). These changes were designed to be generally helpful to other apps as well.
/cc @dgrove @vsm @kevmoo @mit-mit @whesse @athomas
/cc @rakudrama
Details
We have been iterating for a long time on reducing the total memory used and total compilation time spent on some large apps. Some apps have more pathological cases than others (see #27883).
We made several changes to help with this, and some small refactoring in between that unfortunately we need to also cherry-pick in order to make the merge clean.
a92a9f1 (dart2js) initialize the receiver type to its static type during inference:
529913f (dart2js) remove unnecessary uses of receiverMask:
4bc9c8b (dart2js) rename typeOfSend, delete unused typeOfGetter:
b233061 Ensure native methods default to have all side-effects:
4eae396 (dart2js) release some data-structures after resolution:
75fc15c [dart2js] Use cache in CommonMasks.isInterceptor:
a57a977 [dart2js] Make repeated 'usedAsVariable' tests faster:
b050a59 (dart2js) merge inferrer-engine interface and implementation:
1103d9f (dart2js): seal-in members used only within the inferrer_engine class:
aa56cd3 (dart2js): rename 'assignments' to 'inputs' in global analysis:
The text was updated successfully, but these errors were encountered: