Paper Review Detecting Incorrect Build Rules
Potential future work:
- Automatically fixing incorrect build rules
- FIX by human: spreadsheet
Problem:
- Root cause analysis / Fault localization
- dependency graphs
- Unintended dependencies? Random/spurious dependencies
- Are these graph reproducible and deterministic?
- Configuration sensitivity
- How to calculate coverage
- Build system a la carte
- Will a good algebra alleviate the problems above?
- Essentially, this work is based on some mathematical property about a good build system
- Reproducibility?
- Is this dependency graph the best representation?
Key ideas:
- Under-constraining
- Missing dependencies
- over-constraining
- pipes
- Gradle
Limitations:
Projects had to contain a CMakeLists.txt, a Makefile or a SConstruct in the root folder: this excluded some poorly written projects with no documentation, or large projects with complex build instructions
How prevalent is Makefile used?
Doesn’t compare with the related inference systems.
General design guide: over-spec dependencies.
Comparison of generated files. Missing edge.