Skip to content

bhyde/heroku-buildpack-ccl64

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heroku Buildpack for OpenMCL's Common Lisp

Recall that each Heroku application consists of the application source and a buildpack. The buildpack is used each time you push your sources to Heroku to create the appliation slug(s). As your application runs Heroku will instantiate instance of the slug(s).

This buildpack assumes you'd like to run a Common Lisp application. It uses the 64 bit version Clozure Common Lisp (aka CCL) to load your application's heroku-compile.lisp file; that file will typically do little more use quickload to (re)compile your application. The buildpack then dumps an executable (./lispapp), and executable goes into the slug along with all your sources.

An example application using this buildpack can be found here: https://github.com/bhyde/heroku-buildpack-ccl64-example1#readme

This buildpack is decendant from Mike Traver's heroku-buildpack-cl2, which in turn is decendant from ??? Fork of Mike's original heroku-buildpack-cl. No doubt as soon as your application gets a bit more serious you'll want to fork this and customize the build to your unique preferences.

Usage

  • Sign up for heroku, and install their tools.
  • Fork the example.
  • CD into that directory, and create a new application using this buildpack
  • Push your sources (well the example's sources) to heroku, watch it build the slug.
  • Visit your running application.

Notes.

Disabling ASDF output tranlastions is necessary becuse Heroku performs the compile step on one machine/directory, and then copies the result into another machine/directory. With default output translations ASDF caches .fasl files according to the full path of their source files. When the sources are moved to another location, ASDF can not match them to the cached .fasls. In result full recompilation will hapen at start time of your application.

With ASDF output translations disabled the .fasl files are placed near the sources, and when copied together, ASDF still matches them.

Notes

  • Heroku does not have a persistent file system. Applications should use S3 for storage; ZS3 is a useful CL library for doing that.
  • There are more notes in the example application.

Credits

About

A revised version of the Common Lisp Heroku Buildpack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Common Lisp 95.9%
  • Shell 4.1%