Common Lisp Development Tooling
4 hours ago
- #Common Lisp
- #Development Tools
- #Programming
- Common Lisp development environments are complex and layered, designed to manage dependencies and interactive development.
- The development stack includes six layers: Machine, Compiler/Runtime (e.g., SBCL), Build System (ASDF), Package Repository (Quicklisp), Per-Project Isolation (optional, e.g., Qlot), and Editor (e.g., Emacs with SLIME).
- Common Lisp's interactive development model allows live introspection, redefinition of functions, and debugging without restarting the process.
- Quicklisp is the central package repository for Common Lisp, providing curated monthly releases of libraries.
- Per-project isolation tools like Qlot help manage dependencies for individual projects, though many developers use global Quicklisp setups.
- The Swank wire protocol enables real-time communication between the editor and the running Lisp process, facilitating interactive development.
- Editor choices are crucial in Common Lisp, with Emacs + SLIME/SLY being the most mature and feature-rich option.
- Alternative editors include Vim/Neovim with Vlime, VSCode with Alive, and Lem, a Lisp-native editor.
- Roswell is a tool that simplifies Common Lisp development by managing implementations, Quicklisp, and other tools in a unified way.
- Docker can provide a quick-start environment but lacks the flexibility and understanding of a local setup.