Introducing a lightweight, data first Clojure interpreter for tracing code
summary
A lightweight Clojure tool called Paper Trail interprets source (reader + macroexpand) into an event-sourced interpreter that emits a trace report as data instead of printing, aiming for data-first zero-touch, REPL-driven tracing without swapping the clojure.jar. Implementation maps Clojure primitives to command sequences, uses a call-stack replay model, and tests by comparing results to Clojure eval. Repo is open but demo is not finished: try/catch/finally, destructuring port, and multi-threaded/REPL source handling remain work in progress.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 4:00Motivation for tracing tool
- 6:32Existing tracing limits
- 11:33Design goals
- 13:18Interpreter internals
- 18:21Architecture evolution
- 21:58Interpreter data structures
- 25:38Primitives and commands
- 28:51Macros and metadata
- 32:44Testing against Clojure
- 36:39Why not reuse interpreters
- 38:04Current challenges
- 39:49Roadmap
related talks
30mProto REPL, a New Clojure Development and Visualization Tool
25mUnleash the Power of the REPL
40mProgramming Clojure, Smalltalk-Style
31mDebugging Clojure Code
40mRunning With Scissors: Live Coding With Data
34mBecoming Omniscient with Sayid
40mDebuggers for Clojure
15mLive Programming a Live Programming Environment: An Experience Report
