Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide an API for checking if assets have changed since they were last fetched #16817

Closed
blois opened this issue Feb 13, 2014 · 3 comments
Closed
Labels
area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams.

Comments

@blois
Copy link
Contributor

blois commented Feb 13, 2014

When maintaining a resolved AST it's important to know what assets changed since the code was last processed in order to do incremental updates.

Currently in order to get this change list the resolving code walks every referenced Dart file, requests the contents then checks if that string has changed.

We can share the resolved AST between multiple transformers for the same package, but when one AST is doing code-gen that feeds into the next the resolver needs to update changed assets for each step. I can have some back-channel communication notify the changed assets, but naive approach of just re-calculating changes adds a bit of overhead.

For the Angular Todo application (2 user-code files + Angular) this appears to take about 2.5s to do a naive 'dirty check' on all assets. Doing this for each transformer which needs a resolved AST from the previous transformer takes ~10s of the total 30s compilation time. (For comparison, dart2js from the console takes ~13s).

@blois
Copy link
Contributor Author

blois commented Feb 13, 2014

Update- actual dirty-check time appears to be ~.5s- I was including the re-resolving time in there as well.

@munificent
Copy link
Member

Issue #18301 has been merged into this issue.


cc @blois.
cc @bwilkerson.

@DartBot
Copy link

DartBot commented Jun 5, 2015

This issue has been moved to dart-archive/barback#35.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams.
Projects
None yet
Development

No branches or pull requests

4 participants