Possibility of cross context contamination
By default, CLPM creates separate fasl caches for each bundle in order to prevent cross contamination (particularly of macros). However, this precaution is not sufficient to prevent all cross contamination.
The case this does not cover is if a bundle is updated to depend on a release that has already been installed. In such a case, the mtimes may not work out such that ASDF detects a recompilation is necessary.
We should implement two options to mitigate this and let the user override the default if they want.
- Clear the bundle's fasl cache on install or update.
- Unpack dependency tarballs to a path that is bundle dependent.
I think 2 should be the default because disk space is cheaper than time for most people.
An upside of implementing 2 is also that it makes implementing vendoring of dependencies easier.