Development
Development, building, testing, and documentation aids.

Editor/IDE support

  • Cross-editor plugins
    • Parinfer is a mode that helps keeping both indentation and parens balanced. It is easy to start with and yet it offers advanced features à la Paredit. It is available on many editors (Emacs, Vim, Atom, Sublime Text, Visual Studio Code, LightTable, CodeMirror,…).
  • Emacs
    • SLIME is the Superior Lisp Interaction Mode, Extended
    • PORTACLE is a portable and multiplatform development environment, pre-configured with SBCL, Quicklisp, Emacs, Slime and Git. Download, extract and use, no installation needed.
  • vi/vim
    • VLIME is a Common Lisp dev environment for Vim (and Neovim), similar to SLIME for Emacs and SLIMV for Vim. (Also look for some newer forks.)
    • Slimv provides SLIME-like Lisp and Clojure REPL inside Vim with profiling, Hyperspec lookup, Paredit-like structured editing
    • Nekthuth is a vim plugin and CL library which gives vim users some interactive Lisp development/IDE features akin to SLIME
    • VIlisp, an (inferior) inferior lisp mode for vim.
    • Limp, another (slightly less inferior) inferior lisp mode for Vim.
    • Using vi with Lisp
  • Atom
    • SLIMA is an Atom plugin for Common Lisp development.
  • Eclipse
    • Cusp An Eclipse plugin that comes out of the box with SBCL and Swank for Windows, Linux, and OSX
    • Dandelion Another Eclipse plugin, currently available with CLISP (for WinXP, MacosX, Linux). It supports the developer with syntax analyses as you type (limited), syntax highlighting, code completion, parenthesis matching, apropos and a listener.
  • Other
    • MCLIDE is an open source Mac OS X IDE for Lisp implementations using the SWANK protocol of SLIME. It supports Common Lisp, Clojure, and Scheme.
    • Climacs is an Emacs-like text editor written in Common Lisp using McCLIM.
    • Hemlock is an Emacs-like editor written in CL not using CLIM.
    • Able a IDE written in CL itself, for Mac/Windows/Linux, also with interaction mode.
    • LispIDE is a basic editor for several Lisp and Scheme implementations available for Windows.
    • Clcon is a cross-platform Lisp IDE with permissive license. It uses SWANK protocol of SLIME to connect to server. Under construction, no releases yet.

Build/make tools (main topic: build) see also: tools to Obtain libraries.

  • asdf - ASDF (Another System Definition Facility) is an extensible build facility for Common Lisp software
  • ASDlite - ASDlite is a light-weight version of ASDF, a popular build facility for Common Lisp
  • corona - Corona is a library for building and controlling virtual machines
  • evol - evol - entrenched virtues of lisp (love reversed) aims to be a compatible and full-fledged replacement for the GNU autotools stack targeted at coping with the autotools' shortcomings while not repeating the mistakes made and still being made at comparable build tool projects
  • mk-defsystem - MK-defsystem is a system definition utility; it fills a similar role for CL as make(1) does for C
  • poiu - poiu is an asdf extension that builds in parallel
  • XCVB - XCVB, an eXtensible Component Verifier and Builder for Lisp is an attempt to replace asdf

Deployment (main topic: deployment)

  • cl-daemonize - cl-daemonize is a tool to daemonize a Lisp process without the need for screen/detachtty
  • cl-launch - cl-launch is a unix utility to make your Lisp software easily invokable from the shell command-line
  • Creating Executables - Most Common Lisp implementations support creating native-format executable files
  • lispx-proxy - lispx-proxy (Lisp Execution Proxy) is a Lisp application launcher for Windows (A *nix port with limited functionality is also available)
  • Unix shell scripting - This is a guide for writing Unix shell scripts in various Common Lisp implementations

Testing (main topic: test framework)

Configuration (main topic: configuration)

Logging (main topic: logging)

  • a-cl-logger - A common lisp logging library providing context sensitive logging of more than just strings to more than just local files / output streams
  • cl-grip - cl-grip is a high-level logging system for Common Lisp, focusing on a clear user interface, support for flexible structured logging, and easy extensibility for different backends to support direct logging to various inputs
  • cl-log - CL-LOG is a general purpose logging utility, loosely modelled in some respects after Gary King's Log5
  • cl-syslog - Common Lisp interface to local and remote Syslog facilities
  • flood - Comfortable, powerful and tiny logging library for common lisp
  • hu.dwim.logger - hu,dwim,logger is a logging library
  • journal - A library for logging, tracing, testing and persistence
  • Log4CL - Log4CL is high performance extensible logging library for Common Lisp
  • log5 - Log5 is a logging library organized around five things: categories, outputs, senders, messages and contexts
  • logv - Logv is a cognitively lightweight logging utility for Common Lisp
  • Verbose - Verbose is a logging framework that aims to provide a good default setup as well as an extensible back-end to suit all your logging needs
  • vom - A tiny logging library for Common Lisp

Documentation (main topic: documentation tool)

  • Albert - Albert is a Common Lisp doc-generator, comparable to Javadoc and Doxygen
  • argdoc - simple package documentation library for common lisp
  • atdoc - Atdoc generates documentation for Common Lisp packages
  • CL-API - CL-API is a documentation tool that generates an API in HTML format, given a package name and reading docstrings
  • cl-gendoc - cl-gendoc is a simple but flexible modular document generator for Common Lisp
  • CLDOC - CLDOC reads lisp source files and generates documentation using the selected output driver
  • clod - CLOD is a Common Lisp doc-generator, similar to Albert, Cldoc and so on
  • Declt - Declt (pronounce "dec'let") is a reference manual generator for
  • docudown - Docudown is a Lisp documentation tool built on top of CL-Markdown
  • documentation-template - documentation-template is a documentation tool that automatically produces HTML documentation from the exported symbols of a package
  • hyperdoc - Hyperdoc means mapping symbols to documentation URIs for libraries as well
  • hyperspec-lookup - hyperspec-lookup is an ANSI Common Lisp library that gives the user an interface to mapping symbols to URLs for the Common Lisp Hyperspec and Common Lisp Object System (CLOS) MetaObject Protocol
  • incf-cl - (INCF CL) is a collection of utilities
  • LispDoc - LispDoc is a documentation tool (probably somewhat OpenMCL specific) that automatically generates HTML documentation for all symbols exported from one or more packages from their documentation strings
  • manifest - Manifest is a documentation tool for semi-automatically documenting Common Lisp packages as a set of web pages, using the toot web server
  • MGL-PAX - MGL-PAX is an exploratory programming environment and documentation generator
  • qbook - qbook
  • sb-texinfo - sb-texinfo was originally written for processing the SBCL docstrings by Rudi Sclatte in 2004, and has been maintained as part of SBCL since then
  • Staple - A tool to generate documentation about Lisp projects through an HTML template
  • tinaa - Tinaa is Not An Acronym

Version control software: (main topic: version control)

Literate programming systems: (main topic: literate programming)

  • cl-org-mode has a tangle feature to do literate programming in org-mode.
  • CLWeb A literate programming system for Common Lisp.
  • MGL-PAX: A literate programming system turned inside out.

Miscellaneous

  • Redshank refactoring and editing extensions to SLIME.
  • slime-lispunit for more convenient TDD with SLIME (see also this post).
  • Matthias Holzl's Design by Contract package.
  • TU a hack for reading the translation unit dumps from GCC.
  • cl-heredoc - Common Lisp reader heredoc dispatcher, very useful for testing parsers
  • Step is a portable code single-stepper and debugger.
  • METERING is a portable code profiling tool, for gathering timing and consing statistics while a program is running.
  • Benchmarks: Benchmarking Suites can be used to compare different implementations.

Topic