Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Common Lisp Shell
branch: master

This branch is 34 commits ahead, 14 commits behind mtravers:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
setup
.gitignore starting to be real
README.md

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

  • 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

Notes

  • 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.

Status

Notes

  • 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.

Todos

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

Credits

Mike Travers, mt@hyperphor.com

Something went wrong with that request. Please try again.