diff options
Diffstat (limited to 'js/scripting-lang/baba-yaga-c/ROADMAP.md')
-rw-r--r-- | js/scripting-lang/baba-yaga-c/ROADMAP.md | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/js/scripting-lang/baba-yaga-c/ROADMAP.md b/js/scripting-lang/baba-yaga-c/ROADMAP.md deleted file mode 100644 index aba5e4d..0000000 --- a/js/scripting-lang/baba-yaga-c/ROADMAP.md +++ /dev/null @@ -1,83 +0,0 @@ -# Baba Yaga C Implementation - Focused Roadmap - -## Current Status -- ✅ **Core Language**: Complete and stable (24/27 tests passing) -- ✅ **Table Pattern Matching**: Fixed and working -- ✅ **When Expressions**: Fixed and working -- ✅ **Computed Table Keys**: Fixed and working (Task 1.1 complete) -- ❌ **3 Remaining Issues**: Pattern expressions, table namespace, memory fixes needed - -## Implementation Plan - -### **Phase 1: Parser Extensions (High Impact)** - -#### **Task 1.1: Computed Table Keys** (Test 15) ✅ **COMPLETE** -**Issue**: `{(1 + 1): "two"}` not supported -**Solution**: Extended table key parsing with expression support -**Implementation**: Added `TOKEN_LPAREN` detection and expression parsing logic -**Result**: Test 15 now passes, 24/27 tests passing - -#### **Task 1.2: Multi-value Pattern Expressions** (Test 22) 🔄 **IN PROGRESS** -**Issue**: `when (x % 2) (y % 2) is` not supported -**Current**: Parse error - expression parsing consumes too many tokens -**Next**: Implement bounded expression parsing or sequence pattern matching - -#### **Task 1.2: Multi-value Pattern Expressions** (Test 22) -**Issue**: `when (x % 2) (y % 2) is` not supported -**Current**: Only literal patterns in multi-value -**Fix**: Extend pattern parsing in `parser_parse_when_pattern` - -**Implementation Steps**: -1. Modify pattern detection logic (lines ~2640-2670 in parser.c) -2. Add support for `TOKEN_LPAREN` as valid pattern start -3. Parse expression patterns using `parser_parse_expression` -4. Test with `when (x % 2) (y % 2) is` - -### **Phase 2: Runtime Fixes (Medium Impact)** - -#### **Task 2.1: Table Namespace Debugging** (Test 17) -**Issue**: `Error: Execution failed` in table operations -**Current**: `t.*` functions implemented but failing -**Fix**: Debug existing implementation - -**Implementation Steps**: -1. Add debug output to `stdlib_t_map`, `stdlib_t_filter`, etc. -2. Run test 17 with `DEBUG=4` to identify specific failure -3. Fix parameter validation or table iteration logic -4. Test with table enhancement operations - -#### **Task 2.2: Pattern Matching Memory** (Integration Test 02) -**Issue**: Segmentation fault in complex patterns -**Current**: Memory corruption in pattern matching -**Fix**: Add memory debugging and fix recursion - -**Implementation Steps**: -1. Add memory debugging to `interpreter_evaluate_when_expression` -2. Check for infinite recursion in pattern matching -3. Fix memory allocation/deallocation in pattern evaluation -4. Test with complex pattern matching scenarios - -### **Phase 3: Validation** -- Re-run comprehensive test suite -- Target: 27/27 tests passing -- Verify no regressions - -## Technical Notes - -### **Parser Architecture** -- Table parsing: `parser_parse_primary` → `TOKEN_LBRACE` case -- Pattern parsing: `parser_parse_when_pattern` → multi-parameter detection -- Both need expression support in parentheses - -### **Standard Library** -- `t.*` functions: Already implemented in `stdlib.c` (lines ~804-950) -- Functions: `t.map`, `t.filter`, `t.reduce`, `t.set`, `t.delete`, `t.merge`, `t.length`, `t.has` -- Issue: Likely parameter validation or table iteration - -### **Memory Management** -- Pattern matching: Uses recursion for nested patterns -- Potential: Stack overflow or memory corruption -- Solution: Add bounds checking and memory debugging - -## Next Action -**Proceed with Task 1.2** (Multi-value Pattern Expressions) - next high-impact parser extension. \ No newline at end of file |