| | 539 | |
| | 540 | |
| | 541 | === Packages === |
| | 542 | |
| | 543 | We need to record usage information about package modules too, so that we |
| | 544 | can correctly trigger recompilation if we depend on a package that has changed. But |
| | 545 | packages change rarely, so it would be wasteful to record detailed usage information for |
| | 546 | every entity that we use from an external package (imagine recording the fingerprints for |
| | 547 | `Bool`, `Int`, etc.). Instead, we simply record the ABI fingerprint for every package |
| | 548 | module that was imported by the current module. That way, if anything about the ABI of |
| | 549 | that package module has changed, then we can trigger a recompilation. |
| | 550 | |
| | 551 | (Correctly triggering recompilation when packages change was one of the things we fixed when implementing fingerprints, see #1372). |