[Haskell-cafe] [ANN] cabal-clean (new tool)

Andreas Abel andreas.abel at ifi.lmu.de
Fri Sep 24 17:09:49 UTC 2021


=== Wondering where your disk space goes with too many Haskell projects 
compiled with too many GHC versions? ===

   https://hackage.haskell.org/package/cabal-clean
   https://github.com/andreasabel/cabal-clean

`cabal-clean` is a small executable that removes outdated cabal build 
artifacts from `dist-newstyle`.

A build tree is considered outdated if there is one with either

   - a newer version of the package you are building, or
   - a newer minor version of the GHC compiler.

In contrast to `cabal clean`, the tool `cabal-clean` retains the latest 
build trees for each GHC major version.  Thus, it is geared towards 
multi-GHC development.

Example: (self-applied to cabal-clean's build directory)

     ---	3.7M	ghc-8.8.4 /cabal-clean-0.1.20210815
     ---	3.5M	ghc-8.10.6/cabal-clean-0.1.20210815
     ---	3.7M	ghc-9.0.1 /cabal-clean-0.1.20210815
     ---	3.5M	ghc-8.10.6/cabal-clean-0.1.20210924
     +++	3.6M	ghc-8.10.7/cabal-clean-0.1.20210924
     +++	3.7M	ghc-9.0.1 /cabal-clean-0.1.20210924

The directories prefixed with --- will be deleted, the ones with +++ 
retained.

Disclaimers:

   1. cabal-clean does not check whether deletion will cause dangling 
references like broken symlinks etc.  (Could happen if you created a 
symlink to an executable that resides in one of the deleted build 
directories.)

   2. cabal-clean does not read nor utilize information from the .cabal 
file.

   3. Calls `du` ("disk usage"), so, might not work on Windows.

Enjoy,
Andreas


More information about the Haskell-Cafe mailing list