October 11th, 2011

SBCL now supports compressed cores

SBCL 1.0.52 just came out and includes support for compressed cores thanks to Paul Khuong.

Compressed cores don't reduce memory usage, and they cost some startup time, but they can significantly reduce the on-disk footprint of cores or executables with embedded cores. If that's a tradeoff you want to make, it's now pretty easily available.

To enable it, you have to build SBCL with the :sb-core-compress feature added. My customize-target-features.lisp looks like this:

(lambda (list) (list* :sb-core-compression list))

After that, you can pass a :compression option to sb-ext:save-lisp-and-die to produce a compressed core.

A quick test on my Linux/AMD64 system showed a 43MB vanilla core was reduced to about 9MB.

I plan to add support for compressed cores to buildapp very soon.