Thursday, January 1, 2009

Upgrading SBCL

Recently I upgraded SBCL from version 1.0.22 to 1.0.23. Then my window manager, Stumpwm refused to start. I have to solve the issue, otherwise I will start using console exclusively starting from 2009.

My first reaction was to reinstall stumpwm package. But when compiling, SBCL is complaining that there are version mismatch for stumpwm dependencies. I tried to solve the issue by reinstalling that package, but I met the same problem for its dependencies. I realized that I just stumbled upon dependency hell. I don't want to go through the same process of installing every CL package when I upgrade SBCL. So I need to find one simple solution. Indeed it exists: just delete all *.fasl files in SBCL's site directory (which is /usr/lib/sbcl/site under Arch Linux.), and then SBCL will rebuild all the installed packages. So the following command just solves the problem (assuming Arch Linux).

find /usr/lib/sbcl/site -name "*.fasl" -delete

Update (2009-2-11): do NOT run above command on the parent directory /usr/lib/sbcl, otherwise the fasl files bundled with SBCL will be deleted and many functionalities (e.g. ASDF) will break.