Skip to content

Convert build parallelism to a more synchronous model - #3569

Open
peterebden wants to merge 13 commits into
thought-machine:masterfrom
peterebden:peter/sync-push-final
Open

Convert build parallelism to a more synchronous model#3569
peterebden wants to merge 13 commits into
thought-machine:masterfrom
peterebden:peter/sync-push-final

Conversation

@peterebden

@peterebden peterebden commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

This will (hopefully) make the parallelism easier to understand and avoids some of the weird edge cases we had before. The fan-out logic is now all in src/plz and has been cut out of src/core. The model there is quite a lot more synchronous - essentially it calls a function like Build or Test which builds all a target's dependencies, then that target, blocking until it's done.

We can drop a few of the concepts we had before (like "parse mode", "resolving dependencies" and things like that) and we can lose the maps of "pending things" on the build state. It's simpler around things like subincludes because when we get there we just ask to build the thing, we don't have to ask it to parse then figure out at the end of that whether we should trigger things to build or not.

I ran the in-repo perf tests and they are actually faster than before. That's nice to see although it was not expected - it appears to be that we have fewer concurrently live goroutines because all the dependency resolution stuff is gone. I think it's a bit of a parse-only effect though.

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