by jsmpereira

GitHub Readme.md

Heroku Buildpack for Common Lisp

A Buildpack that allows you to deploy Common Lisp applications on the Heroku infrastructure.

Original work by Mike Travers, mt@hyperphor.com

Changes in this fork

  • Updated SBCL and Clozure CL binary distributions (1.5.1 and 1.11.5, respectively)

Admittedly, I know nothing about getting machines to download from SourceForge, but as long as the JAIST mirror is around, this should work fine.

Changes (by jsmpereira)

  • Support for SBCL and Hunchentoot.

Example app at https://github.com/jsmpereira/heroku-cl-example

  • Implementation choice via env variables.

You need this first: http://devcenter.heroku.com/articles/labs-user-env-compile. It will allow the config vars to be present at build time.

Then you can do heroku config:add CL_IMPL=sbcl or heroku config:add CL_IMPL=ccl

  • Web server choice heroku config:add CL_WEBSERVER=hunchentoot or heroku config:add CL_WEBSERVER=aserve


  • To avoid trouble with SBCL source encoding use: heroku config:add LANG=en_US.UTF-8

  • Hunchentoot working with SBCL and CCL. AllegroServe working with CCL. There's however an issue with AllegroServe in SBCL. acl-compat bundled in https://github.com/mtravers/portableaserve seems to be using some SBCL deprecated sb-thread functions.

José Santos, jsmpereira@gmail.com

######I've kept the original readme for reference.



  • The scripts bin/test-compile and bin/test-run simulate as far as possible the Heroku build and run environments on your local machine.
  • Heroku does not have a persistent file system. Applications should use S3 for storage; ZS3 is a useful CL library for doing that.


  • parameterizing/forking for other Lisp implementations and web servers (see Github forks)
  • support for Heroku's database infrastructure (DONE -- see the example application).


Mike Travers, mt@hyperphor.com