How dotcl/playground works
dotcl playground teaches Common Lisp through runnable browser examples, with a separate optional Lem editor page and a canvas-oriented Lisp runner. The main workflow is chapter code → browser editor → .NET/WASM host → Lisp evaluation → rendered result. README and sampled source establish the boot, evaluation, sharing, bridge, and Lem paths; unsampled details of the canvas page and Lisp internals are represented only at their documented entry points.
Main entry points: Program.cs .NET Host · lem.js Grid Frontend · main.js Runnable Blocks · playground.html Tutorial Material
Components 16
Learning Pages
- Tutorial Material
src/wwwroot/playground.html - Front Page
src/wwwroot/index.html - Runnable Blocks
src/wwwroot/main.js - Canvas Page
src/wwwroot/canvas.html - Canvas Runner
src/wwwroot/canvas.js
Playground Runtime
- .NET Host
src/Program.cs - Run Handler
src/prelude.lisp - dotcl Runtime
Browser Interop
- JS Bridge
src/wwwroot/js-bridge.js - Lisp JS API
src/js.lisp
Lem Editor
- Lem Page
src/wwwroot/lem.html - Grid Frontend
src/wwwroot/lem.js - Lem Adapter
src/lem-page.lisp - Optional Editor Core
Other components
- Reader
- Browser APIs
Connections 25
- Reader → Front Page: opens
- Front Page → Tutorial Material: links to
- Reader → Tutorial Material: reads
- Tutorial Material → Runnable Blocks: provides blocks
- Runnable Blocks → .NET Host: boots and runs
- .NET Host → dotcl Runtime: loads and evaluates
- .NET Host → Run Handler: loads
- Run Handler → dotcl Runtime: reads and evaluates
- .NET Host → JS Bridge: imports
- .NET Host → Lisp JS API: fetches and loads
- Lisp JS API → JS Bridge: calls through
- Runnable Blocks → Browser APIs: renders results
- Reader → Canvas Page: opens
- Canvas Page → Canvas Runner: starts
- Canvas Runner → .NET Host: boots and runs
- Reader → Lem Page: opens
- Lem Page → Grid Frontend: starts
- Grid Frontend → .NET Host: boots and starts
- Grid Frontend → Optional Editor Core: fetches optionally
- Grid Frontend → .NET Host: loads core
- .NET Host → Lem Adapter: dispatches editor actions
- Lem Adapter → dotcl Runtime: starts and drives
- Grid Frontend → .NET Host: sends input; polls output
- Grid Frontend → Browser APIs: draws screen
- JS Bridge → Browser APIs: forwards calls