Summary
Complete the remaining polish tasks for the special variables implementation.
Branch: 002-special-vars-compiler
Spec: specs/002-special-vars-compiler/tasks.md (Phase 8)
Priority: P3 (polish)
Prerequisites
Tasks
From specs/002-special-vars-compiler/tasks.md:
Details
T059: Update Placeholder Tests
Current tests for US4/US5 are placeholders that always pass. Once US4 and US5 are implemented, these need to be converted to real integration tests.
T060: UNBOUND Check
Add optional UNBOUND sentinel checking when accessing special variables:
- Generate code to check if symbol-value equals UNBOUND sentinel
- Signal an error for unbound variable access
- Make this configurable (for performance vs safety trade-off)
T061: Closure + Special Variable Test
Test the interaction between closures and special variables:
(defvar *x* 10)
(let ((f (lambda () *x*)))
(let ((*x* 20))
(funcall f))) ; Should return 20 (dynamic binding)
Related
Summary
Complete the remaining polish tasks for the special variables implementation.
Branch:
002-special-vars-compilerSpec:
specs/002-special-vars-compiler/tasks.md(Phase 8)Priority: P3 (polish)
Prerequisites
Tasks
From
specs/002-special-vars-compiler/tasks.md:tests/integration/special-var-test.lispto real implementationstests/integration/special-var-test.lispDetails
T059: Update Placeholder Tests
Current tests for US4/US5 are placeholders that always pass. Once US4 and US5 are implemented, these need to be converted to real integration tests.
T060: UNBOUND Check
Add optional UNBOUND sentinel checking when accessing special variables:
T061: Closure + Special Variable Test
Test the interaction between closures and special variables:
Related