Understanding Common Lisp's Packaging System: ASDF and Quicklisp Explained
By
todsacerdoti
Front-window bakery material. Catches the eye, delivers the goods.
Summary
This article explains the packaging ecosystem for Common Lisp, focusing on the relationship between the language's built-in functionality, ASDF (Another System Definition Facility), and Quicklisp. It addresses the confusion newcomers face due to Common Lisp's historical development during a time of incompatible operating systems and file systems, which led to terminology that differs from modern languages. The article clarifies what these tools are, how they work together, and provides practical guidance for using them effectively.
Key quotes
· 4 pulledIf there is one thing that confuses newcomers to Common Lisp, it is the interplay of built-in CL functionality, add-ons like Quicklisp and ASDF, and what all the words mean.
Common Lisp is old, and its inspiration is even older. It was developed when there was zero consensus on how file systems worked, operating systems were more incompatible than you can probably imagine, and that age shows.
It pinned down terminology way before other languages got to the same point, and, as it happens so often, the late arrivals decided that they needed different words and these words stuck.
Common Lisp has good packaging tools, but they're different. Here we explain the what and how.
You might also wanna read
Dynamic Borrow-Checking in a Toy Programming Language: Implementing Rust-like Memory Safety Without Static Types
This article presents a demonstration of a toy programming language that implements borrow-checking without static type-checking. The langua
C++26 Standard Draft Finalized with Reflection, Memory Safety, Contracts, and New Concurrency Framework
The C++26 standard draft has been completed, introducing major new features including reflection capabilities that allow C++ to describe its
Understanding Fil-C: A Simplified Model of Memory-Safe C/C++ Implementation
The article presents a simplified model of Fil-C, a memory-safe implementation of C/C++. It explains that while the real Fil-C uses a compil
Sky: An Experimental Elm-Inspired Programming Language That Compiles to Go
Sky is an experimental programming language that combines Go's pragmatism with Elm's elegance to create a fullstack functional programming l
Analyzing Rust's Coherence and Orphan Rules: Ecosystem Development Challenges and Proposed Solutions
This article critiques Rust programming language's coherence rules and orphan rules, which prevent implementing traits for types defined in
SBCL Fibers: Implementation Design for Lightweight Cooperative Threads
This is a draft design document describing the implementation of lightweight userland cooperative threads (called 'fibers') for SBCL (Steel
