- Clone the args in the CompileContext constructor to bring uniformity
to the way args are accessed
- Compute IO for a project and have it shared between build and compile
- Extract dependency logic into facade
- Add tests for incremental build
- Add precondition checks for compiler IO
add --force-incremental-unsafe flag
Build becomes the new compile. It decides which project to compile and how. It checks for incremental preconditions
Compile's resonsibility is trimmed down to only knowing how to invoke the compiler on a project