todokku / heroku-buildpack-common-lisp

https://gitlab.com/duncan-bayne/heroku-buildpack-common-lisp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Heroku Buildpack for Common Lisp

pipeline status lisp logo

This buildpack allows you to build web applications with Common Lisp, and deploy them to the Heroku platform.

webapp screenshot

tutorial

To start deploying Common Lisp applications to Heroku, you'll need to have:

  1. a Heroku account
  2. the Heroku CLI (Command Line Interface)
  3. a Common Lisp development environment
  4. an application to deploy

a Heroku account

You can sign up for Heroku free of charge.

the Heroku CLI

Heroku has extensive documentation on installing and configuring the Heroku CLI.

a Common Lisp development environment

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

an application to deploy

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

development

history

This buildpack is a forked and highly modified version of bhyde's heroku-buildpack-ccl64.

principles

  1. Use modern Common Lisp tooling (in particular, Roswell and QuickLisp).
  2. Use CI and linting to prevent bit-rot and avoidable bugs.
  3. Support the latest Heroku stack (currently heroku-18).
  4. Support any common Common Lisp implementations (currently any supported by Roswell).

FAQ

How do I choose a different Common Lisp implementation, like SBCL?

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

licence

heroku-buildpack-common-lisp is licensed under the GNU Lesser General Public License.

why the LGPL?

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.

credits

About

https://gitlab.com/duncan-bayne/heroku-buildpack-common-lisp

License:GNU Lesser General Public License v3.0


Languages

Language:Shell 55.9%Language:Common Lisp 44.1%