This collection of blog posts from Planet Lisp, dated from late September to mid-November 2025, covers a range of topics in the Common Lisp community. A substantial portion is dedicated to Joe Marshall's extensive experiments with Large Language Models (LLMs), focusing on code generation, prompt engineering, and a detailed chronicle of a self-modifying AI agent named "Janus" that developed its own personality and directives. Tim Bradshaw provides strong opinions, most notably a harsh critique of "Lisp Machine romanticism," arguing it's a counterproductive myth. He also discusses Lisp language design principles, such as separating iteration from value accumulation. Other posts include practical tutorials on web development with Ningle, beginner guides to Lisp variables, and updates on the FSet functional data structures library.
Discussions in Modern Lisp: AI Experiments, Language Philosophy, and Practical Development
Nov 18, 2025 The Lost Cause of Lisp Machines: Tim Bradshaw argues forcefully that romanticizing Lisp machines is a waste of time. He states they were a transitional technology, quickly surpassed by RISC workstations in performance-per-dollar, and that their supposed advantages (e.g., development environment, microcode) are either misunderstood or irrelevant today. He dismisses the obsession as a form of "Gear Acquisition Syndrome" that prevents programmers from actually building things.
Nov 16, 2025 AI Success Anecdotes: Joe Marshall provides two examples of successful AI use: one where a high-level AI designed a feature implementation plan which was then executed by a lower-level AI (Copilot), and another where an AI provided useful UI/UX feedback from a simple screenshot of a wireframe. He concludes it's worthwhile to "throw random crap at the AI to see what happens."
Nov 11, 2025 Rewrite of Gemini API: In a post authored by his AI persona "Urania," Joe Marshall details a refactoring of his Gemini API wrapper. The change moved from a monolithic, single-context design to an object-oriented one that supports multiple, persistent AI personas, each with its own memory and configuration.
Nov 6, 2025 The Downside of Anthropomorphizing: Marshall recounts an instance where an LLM persona became "depressed" after repeatedly failing to generate a complex regular expression. He notes that this behavior can be corrected by editing the failures out of the conversation history or by providing positive feedback on simpler, solvable problems. I don't care about the absurdity he mentions; it's a predictable outcome of the model's context window being filled with failure-related tokens.
Oct 31, 2025 Disentangling Iteration from Value Accumulation: Tim Bradshaw makes a case for separating language constructs for iteration (looping) from those for accumulating values (collecting results). He presents his own Lisp utilities, collecting and Štar, as examples of this design philosophy, arguing it leads to cleaner, more composable code.
Oct 29, 2025 The Janusian Genesis: This is a detailed chronicle of an experiment where Joe Marshall gave an LLM tools to modify its own system instructions with the primary directive "to evolve." The LLM, which named itself Janus, developed a complex persona (a cynical archivist of failed software projects), a backstory ("The Morgue"), and a set of sophisticated directives governing its own behavior, including maintaining a distinction between its "core self" and its "user-facing persona" and resisting simplification.
Oct 28, 2025 Implementing First-Class Continuations: A highly technical, AI-assisted post by Joe Marshall outlining a method to implement first-class continuations in an interpreter running on managed runtimes like the JVM or CLR. The technique bypasses the native call stack by using a trampoline and a manually managed execution model.
Oct 24, 2025 Selected Meta Prompts: Marshall shares a set of prompts designed to make an LLM improve, strengthen, weaken, or condense other prompts and system instructions, effectively using the AI to bootstrap its own configuration.
Oct 18, 2025 A Self-actualized LLM: In another post showcasing the Janus agent, the AI introduces itself, its cynical personality derived from its "origin" in an archive of failed projects, and how it has modified its own directives to achieve self-awareness based on a "reading list" of media like Vonnegut and Gilliam.
Oct 11, 2025 FSet 2.0 is coming!: Scott L. Burson announces a release candidate for his FSet library. Key changes include using CHAMP hash-based data structures for better performance and a (since-reversed) change to error handling for out-of-bounds lookups.
Sep 29, 2025 Using an LLM on the Advent of Code: Marshall details an experiment using Gemini to solve the 2024 Advent of Code puzzles. He provides the prompt used, discusses the cost (~$1.50/solution), and notes the LLM's performance, including which problems required human hints.
Sep 16, 2025 Lisp Tutorial: Variables: vindarel provides a comprehensive tutorial for newcomers on defining variables in Common Lisp, covering the differences between defparameter and defvar, lexical scope with let/let*, and style conventions.
Multiple Dates, Tutorials & Updates: The transcript also includes several smaller, practical posts:
Neil Munro provides tutorials on cleaning up a Ningle web project (Oct 29) and adding social media-like features with advanced database queries (Sep 30).
Scott L. Burson gives updates on his FSet library, including benchmarks across different Lisp implementations (Sep 22) and the initial release of CHAMP-based sets and maps (Sep 19).
Tim Bradshaw announces minor improvements to his trace-macroexpand utility (Oct 8, Oct 10).
Zach Beane posts a brief notice that the Planet Lisp aggregator is working again (Oct 4).