Problem
Every @define deep-clones the full scope chain when capturing variables into closures. This creates quadratic behavior when nesting definitions, as each nested definition clones an increasingly large scope.
Scope
This is a refactoring of the ownership model across multiple modules:
src/scope.rs — Wrap FunctionDef in Arc for shared ownership
src/resolver.rs — Update closure capture patterns
src/evaluator.rs — Adjust function invocation logic
Related Tech Debt
- ARCH-4: CapturedScope struct extraction (subsumed by this)
- PERF-4: Arc for cache hits (related ownership model change)
Benefits
- Eliminates quadratic closure capture cloning
- Enables shared ownership of resolver cache via Arc
- Reduces memory pressure in deeply nested @define chains
Acceptance Criteria
Co-Authored-By: Claude noreply@anthropic.com
Problem
Every
@definedeep-clones the full scope chain when capturing variables into closures. This creates quadratic behavior when nesting definitions, as each nested definition clones an increasingly large scope.Scope
This is a refactoring of the ownership model across multiple modules:
src/scope.rs— Wrap FunctionDef in Arc for shared ownershipsrc/resolver.rs— Update closure capture patternssrc/evaluator.rs— Adjust function invocation logicRelated Tech Debt
Benefits
Acceptance Criteria
Co-Authored-By: Claude noreply@anthropic.com