-
Notifications
You must be signed in to change notification settings - Fork 789
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
Incremental build refactor #10538
Incremental build refactor #10538
Conversation
If it's OK to use arrays and mutation now, would it also make sense to incorporate changes from #9259 somehow? |
The nature of incremental builder is mutable state. The changes made in this PR are implementation details and don't bleed out of the API. Though I would want to make |
This is now ready. :) |
@@ -979,7 +980,7 @@ type IncrementalBuilder(tcGlobals, frameworkTcImports, nonFrameworkAssemblyInput | |||
computeStampedFileName cache ctok slot fileInfo (fun slot fileInfo -> | |||
let prevSemanticModel = | |||
match slot with | |||
| 0 -> initial | |||
| 0 (* first file *) -> initial |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could a named literal work better than a comment here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could, but I think it's fine that we have the comment here. At some point, we will do another round of refactoring here, but it will be much easier to do now.
* Initial incremental build refactor * Get previous slot * Fixed build * Fixed timestamp max * Updating surface area * Fixing last test * Just return true * Add minor TODO * Change value name to something more coherent * Fixing test
This is the second and hopefully the final attempt at refactoring incremental build to simply use arrays and mutations instead of the framework that was built for it.
The goal here is not to gain performance; but to improve the readability and flexibility without being constrained by the previous framework.