This buildpack allows you to build web applications with Common Lisp, and deploy them to the Heroku platform.
To start deploying Common Lisp applications to Heroku, you'll need to have:
- a Heroku account
- the Heroku CLI (Command Line Interface)
- a Common Lisp development environment
- an application to deploy
You can sign up for Heroku free of charge.
Heroku has extensive documentation on installing and configuring the Heroku CLI.
These days, the best way of setting up your Common Lisp development environment is Roswell. If you've used Clojure before, it's analogous to Leiningen. Rubyists, think rbenv.
For the purposes of this tutorial, once you've installed Roswell, you'll need to install Clozure Common Lisp with:
ros install ccl-bin
ros use ccl-bin
The easiest way of getting started is to clone a template application, create a Heroku app for it, and deploy.
# Clone the sample application.
git clone https://gitlab.com/duncan-bayne/heroku-app-clozure-common-lisp
# Create a Heroku app for it, using the heroku-18 stack and this buildpack.
cd heroku-app-clozure-common-lisp
heroku create -s heroku-18 --buildpack https://gitlab.com/duncan-bayne/heroku-buildpack-common-lisp
# Deploy it.
git push heroku master
# Open it in a browser.
heroku open
This buildpack is a forked and highly modified version of bhyde's heroku-buildpack-ccl64.
- Use modern Common Lisp tooling (in particular, Roswell and QuickLisp).
- Use CI and linting to prevent bit-rot and avoidable bugs.
- Support the latest Heroku stack (currently heroku-18).
- Support any common Common Lisp implementations (currently any supported by Roswell).
This buildpack supports any Common Lisp implementation supported by Roswell. To set the implementation to something other than Clozure Common Lisp, set the CL_IMPL
setting on your application.
For example, to use Steel Bank Common Lisp:
cd heroku-app-clozure-common-lisp
heroku config:set CL_IMPL=sbcl-bin
heroku-buildpack-common-lisp is licensed under the GNU Lesser General Public License.
The GPL is specifically designed to reduce the usefulness of GPL-licensed code to closed-source, proprietary software. The BSD license (and similar) do not mandate code-sharing if the BSD-licensed code is modified by licensees. The LGPL achieves the best of both worlds: an LGPL-licensed library can be incorporated within closed-source proprietary code, and yet those using an LGPL-licensed library are required to release source code to that library if they change it.
- bhyde for heroku-buildpack-ccl64.
- The author and contributors of Roswell.
- Mike Travers for heroku-buildpack-cl2.
- Anton Vodonosov for his fork of heroku-buildpack-cl.
- Mike Travers for heroku-buildpack-cl.
- Heroku and their new Buildpack-capable stack.
- Zach Beane for QuickLisp library manager.
- Clozure Common Lisp.
- azzamsa for the SVG Lisp Logo, Manfred Spiller for the original design, and Xah Lee for the background.
- All other countless lispers and developers of all generations who made this possible.