3 ms·
I actually submitted a pull request to Ninja adding a daemon mode, knowing that not being a daemon was an intentional choice in the original design. The optimal
by modeless 7y ago
I actually submitted a pull request to Ninja adding a daemon mode, knowing that not being a daemon was an intentional choice in the original design. The optimal design can change as a project matures. I think it makes sense to pay the complexity cost for the startup time optimization now that ninja is so widely used.
I'm still using the crash-only principle as much as possible; the daemon simply exits if build files or arguments change, rather than attempting to update its state. Although cross-platform IPC is complex, once that's abstracted away the changes to ninja itself are small and non-invasive. I think it's less complex than other proposals to speed up ninja startup, like a new binary input format.
Anyway, if anyone is working on a very large project and wishes ninja started faster, try this PR: https://github.com/ninja-build/ninja/pull/1438 https://github.com/ninja-build/ninja/pull/1438
- The_rationalist 7y agoInteresting, did you take inspiration from gradle daemon?