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

Faster dependency reload #138

Merged
merged 18 commits into from
Nov 22, 2024
Merged

Conversation

piercefreeman
Copy link
Owner

@piercefreeman piercefreeman commented Nov 22, 2024

Our initial implementation of hot reloading worked in most cases, but there were some edge cases where it failed to update nested closures (including typehint schema changes for new controllers). It was also a bit slow on large projects since it needed to traverse modules that were in memory dynamically during every reload. Our new approach constructs a DAG of dependencies based on traversal of the project's AST. When we detect that a file has changed we just need to consult the current graph of file dependencies and traverse them in order to resolve all modifications. This also has the benefit of making our logic easier to unit test because it separates out dependency construction from the reload process.

@piercefreeman piercefreeman force-pushed the feature/nested-dependency-hot-reloading branch 2 times, most recently from 6050300 to 4446bf8 Compare November 22, 2024 15:11
@piercefreeman piercefreeman force-pushed the feature/nested-dependency-hot-reloading branch from 8e95326 to 4e85ef5 Compare November 22, 2024 15:49
@piercefreeman piercefreeman force-pushed the feature/nested-dependency-hot-reloading branch from 4e85ef5 to 801c61f Compare November 22, 2024 16:28
@piercefreeman piercefreeman force-pushed the feature/nested-dependency-hot-reloading branch from 82b74ad to 27cfdce Compare November 22, 2024 17:26
@piercefreeman piercefreeman force-pushed the feature/nested-dependency-hot-reloading branch from 20411f8 to 04da0e9 Compare November 22, 2024 17:41
@piercefreeman piercefreeman merged commit b14afad into main Nov 22, 2024
20 checks passed
@piercefreeman piercefreeman deleted the feature/nested-dependency-hot-reloading branch November 22, 2024 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant