v0.0.1: Backend Protocol — abstraction layer + simple backend #2
Reference in New Issue
Block a user
Delete Branch "feature/v0.0.1-backend-protocol"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements: v0.0.1 from ROADMAP.org
Backend protocol — 18 generic functions for terminal rendering. Two backend classes:
backend(abstract base) andsimple-backend(ASCII, universal compatibility). Modern backend (raw escape sequences) deferred to a follow-up.9 FiveAM tests, all GREEN.
Adds:
org/backend-protocol.org— literate source filedocs/ARCHITECTURE.org— full architecture doccl-tui.asd— ASDF system definitionsbackend/package.lisp,backend/classes.lisp,backend/simple.lisp,backend/tests.lispTo review: Check the generic function signatures in
classes.lispand the simple backend implementation insimple.lisp. The protocol is meant to be minimal — every function is something a real TUI needs. If anything looks missing or wrong, I can adjust before merging.Next up: modern-backend (raw escape sequences, truecolor, DECICM sync).
B1: modern-backend now inherits from backend (was standalone class) B2: draw-rect y-position bug — loop now tracks row offset B3: Layout module added to ASDF system definition I1: 6 smoke tests replaced with behavioral tests (captured output) I3: 6 edge case tests: empty, single-child, zero-size, deep nesting, large padding, negative grow Also fixed: - Added missing make-simple-backend constructor to simple.lisp - Added in-package to classes.lisp and simple.lisp (SBCL's load restores *package* after each load, breaking batch-mode loading)