ruchy 4.1.1

A systems scripting language that transpiles to idiomatic Rust with extreme quality engineering
Documentation
# GitHub Issues Priority Analysis - v3.64.1

**Date**: 2025-10-01
**Current Version**: v3.64.1
**Total Open Issues**: 21
**Analysis Context**: Post-DataFrame v3.64.0 release, pre-book integration

---

## 🔥 P0 - CRITICAL (Must Fix Before Next Release)

### **#23: 'from' is now a reserved keyword** ⚠️ BREAKING CHANGE
**Impact**: Breaks ANY code using `from` as identifier (parameters, variables, fields)
**Severity**: 🔴 CRITICAL - Breaking change without deprecation warning
**Affected**: Graph algorithms, networking, date ranges (common patterns)
**Workaround**: Rename to `from_vertex`, `source`, etc.
**Effort**: 2-3 days (parser keyword handling + deprecation system)

**Recommendation**:
- **Option 1**: Add deprecation warning in v3.64.2, remove in v4.0.0
- **Option 2**: Un-reserve keyword, implement import syntax differently
- **Option 3**: Document as intentional breaking change with migration guide

**Priority**: **P0-1** - Affects production code, needs resolution strategy

---

### **#24: Array references '&[T; N]' fail with 3+ parameters** 🐛 PARSER BUG
**Impact**: Cannot use fixed-size array references in multi-parameter functions
**Severity**: 🔴 CRITICAL - Blocks idiomatic Rust-style code
**Affected**: Graph algorithms, matrices, buffers (any array-heavy code)
**Workaround**: Use wrapper structs (adds 15-20% boilerplate)
**Effort**: 3-5 days (parser parameter handling + comprehensive tests)

**Root Cause**: Parser misinterprets `;` in `&[T; N]` with 3+ parameters

**Test Cases**:
- `fn f(arr: &[T; N])` → ✅ Works
- `fn f(arr: &[T; N], x: i32)` → ✅ Works
- `fn f(arr: &[T; N], x: i32, y: i32)` → ❌ FAILS

**Priority**: **P0-2** - Parser regression, affects common patterns

---

### **#25: No 'mut' in tuple destructuring** 🐛 BREAKING CHANGE
**Impact**: Cannot use `let (mut x, mut y) = tuple;` (worked in v1.89.0)
**Severity**: 🔴 CRITICAL - Breaking change, affects functional patterns
**Affected**: Stream processing, state machines, functional updates
**Workaround**: Separate `let mut` after destructuring (verbose but works)
**Effort**: 2-4 days (parser pattern matching + tests)

**Priority**: **P0-3** - Breaking change with available workaround

---

### **#17: Book examples incompatible with compiler** 📚 BOOK SYNC
**Impact**: ruchy-book examples don't compile with current Ruchy
**Severity**: 🔴 CRITICAL - Users can't follow documentation
**Related**: This is partially addressed by DF-BOOK sprint
**Current Status**: 83/120 examples passing (69%)
**Effort**: Ongoing (DF-BOOK sprint addresses this)

**Priority**: **P0-4** - Already in progress via DF-BOOK sprint

---

## 🟡 P1 - HIGH (Fix Soon, Major Impact)

### **#14: ruchy fmt outputs AST debug instead of formatted code** 🛠️ TOOLING
**Impact**: Formatter unusable, outputs internal AST representation
**Severity**: 🟠 HIGH - Core tool completely broken
**Workaround**: None - users must format manually
**Effort**: 3-5 days (pretty-printer implementation)

**Example**:
```bash
$ ruchy fmt file.ruchy
# Current: Prints AST debug tree
# Expected: Formatted Ruchy code
```

**Priority**: **P1-1** - Core tool, but not blocking compilation

---

### **#15: ruchy lint reports false positives** 🛠️ TOOLING
**Impact**: Used variables reported as unused
**Severity**: 🟠 HIGH - Misleading errors, erodes trust
**Related**: Also #8 (f-string variables), #11 (functions as variables)
**Workaround**: Ignore lint warnings (defeats purpose)
**Effort**: 2-3 days (linter scope analysis fix)

**Priority**: **P1-2** - Quality of life, not blocking

---

### **#9: Score tool gives high scores to terrible code** 🛠️ TOOLING
**Impact**: Quality tool doesn't detect high complexity
**Severity**: 🟠 HIGH - Misleading quality metrics
**Workaround**: Use external tools (PMAT, cargo-complexity)
**Effort**: 1-2 days (integrate complexity analysis)

**Priority**: **P1-3** - Quality tool, but external alternatives exist

---

### **#2: Add enum variant construction** ✨ FEATURE
**Impact**: No enum support limits language expressiveness
**Severity**: 🟠 HIGH - Missing core language feature
**Workaround**: Use structs with type tags
**Effort**: 5-7 days (parser + runtime + pattern matching)

**Priority**: **P1-4** - Language completeness, but workarounds exist

---

## 🟢 P2 - MEDIUM (Important, Not Urgent)

### **#19: WASM compilation not implemented** ⚙️ DEPLOYMENT
**Impact**: Cannot compile to WebAssembly
**Severity**: 🟡 MEDIUM - Advertised feature not working
**Workaround**: Use native binary only
**Effort**: 3-5 days (WASM backend implementation)

**Priority**: **P2-1** - Strategic feature, not immediate need

---

### **#16: ruchy doc not implemented** 🛠️ TOOLING
**Impact**: No documentation generation tool
**Severity**: 🟡 MEDIUM - Developer productivity
**Workaround**: Manual documentation
**Effort**: 3-5 days (docstring parser + generator)

**Priority**: **P2-2** - Nice to have, not blocking

---

### **#13: String type handling compilation errors** 🐛 TYPE SYSTEM
**Impact**: String type edge cases fail
**Severity**: 🟡 MEDIUM - Specific use cases affected
**Workaround**: Unclear (need more details)
**Effort**: 2-3 days (depends on specific issue)

**Priority**: **P2-3** - Need reproduction case

---

### **#7: Coverage reporting not implemented** 🛠️ TOOLING
**Impact**: No .ruchy file coverage reports
**Severity**: 🟡 MEDIUM - Testing productivity
**Workaround**: Use cargo-llvm-cov on transpiled code
**Effort**: 2-4 days (coverage instrumentation)

**Priority**: **P2-4** - Workaround exists

---

### **#5: Simple loop prints ()** 🐛 REPL UX
**Impact**: REPL prints Unit `()` after loops
**Severity**: 🟡 MEDIUM - Cosmetic annoyance
**Workaround**: Ignore extra output
**Effort**: 1 day (REPL output filtering)

**Priority**: **P2-5** - Low impact

---

## 🔵 P3 - LOW (Maintenance, Cleanup)

### **#22, #21, #20: Web Quality Alerts** 🤖 AUTOMATED
**Impact**: Automated web quality monitoring
**Severity**: 🔵 LOW - Automated maintenance notifications
**Action**: Review periodically, address underlying issues
**Effort**: Varies per alert

**Priority**: **P3-1** - Monitor only

---

### **#4: README links are 404s** 📝 DOCUMENTATION
**Impact**: Broken documentation links
**Severity**: 🔵 LOW - Documentation quality
**Workaround**: None needed
**Effort**: 30 minutes (update links)

**Priority**: **P3-2** - Quick fix

---

### **#1: v0.7.3 QA Report** 📊 HISTORICAL
**Impact**: Old QA report from v0.7.3
**Severity**: 🔵 LOW - Historical reference
**Action**: Close as resolved or outdated
**Effort**: None

**Priority**: **P3-3** - Historical, likely outdated

---

### **#18: TypeScript-to-Ruchy Migration Report** 📊 RESEARCH
**Impact**: Integration findings document
**Severity**: 🔵 LOW - Research/reference
**Action**: Review findings, close
**Effort**: None

**Priority**: **P3-4** - Reference material

---

## 📋 Recommended Sprint Sequence

### **Sprint 1: DataFrame Book Integration** (Current - In Progress)
**Duration**: 1-2 days
**Tickets**: DF-BOOK-001 ✅, DF-BOOK-002, DF-BOOK-003, DF-BOOK-004
**Goal**: Chapter 18: 0/4 → 4/4 passing
**Status**: 1/4 complete (v3.64.1 shipped with `.get()`)

---

### **Sprint 2: Critical Parser Fixes** (Immediate Next)
**Duration**: 5-7 days
**Tickets**: #24 (array refs), #25 (mut destructuring), #23 (from keyword)
**Goal**: Fix 3 critical breaking changes/bugs
**Impact**: Unblocks rosetta-ruchy migration, restores v1.89.0 parity

**Breakdown**:
1. **Day 1-2**: Fix #24 (array reference parser bug)
   - Debug parameter list parsing with `&[T; N]`
   - Add comprehensive parser tests
   - Verify fix doesn't break other parsing

2. **Day 3-4**: Fix #25 (mut in destructuring)
   - Restore pattern matching for `let (mut x, y) = tuple`
   - Add tests for all destructuring patterns
   - Document expected behavior

3. **Day 5-7**: Address #23 (from keyword)
   - Add deprecation warning system
   - Implement graceful migration path
   - Update documentation

---

### **Sprint 3: Tooling Quality** (Following Week)
**Duration**: 3-5 days
**Tickets**: #14 (fmt), #15 (lint), #9 (score)
**Goal**: Fix broken core development tools

**Priority Order**:
1. #14 (fmt) - Completely broken
2. #15 (lint) - False positives erode trust
3. #9 (score) - Misleading metrics

---

### **Sprint 4: Language Completeness** (Future)
**Duration**: 5-7 days
**Tickets**: #2 (enums), #19 (WASM), #16 (doc), #7 (coverage)
**Goal**: Complete advertised features

---

## 🎯 Integration with Current Priorities

### **Comparison with NEXT_SPRINT_PRIORITIES.md**:

| Document | Priority 1 | Priority 2 | Priority 3 |
|----------|-----------|-----------|-----------|
| **NEXT_SPRINT_PRIORITIES** | DF-BOOK (1-2 days) | Complete DataFrame (5-7 days) | Error Handling (3-5 days) |
| **GITHUB_ISSUES** | Parser Bugs (#24, #25, #23) | Tooling (#14, #15, #9) | Enums, WASM |

**Conflict Resolution**:
1. **Immediate**: Finish DF-BOOK sprint (3/4 tickets remaining, ~4-6 hours)
2. **Next**: Address critical parser bugs (#24, #25, #23) - 5-7 days
3. **Then**: Choose between:
   - Complete DataFrame (DF-005, DF-006, DF-007) - strategic
   - Fix tooling (#14, #15, #9) - developer productivity
   - Error handling sprint - book compatibility

**Recommended Sequence**:
```
Week 1: DF-BOOK completion (4-6 hours) → Parser fixes (5-7 days)
Week 2: Tooling sprint (3-5 days) OR DataFrame completion (5-7 days)
Week 3: Error handling (3-5 days) OR remaining feature work
```

---

## 📊 Issue Statistics

**By Priority**:
- P0 (Critical): 4 issues (19%)
- P1 (High): 4 issues (19%)
- P2 (Medium): 5 issues (24%)
- P3 (Low): 8 issues (38%)

**By Category**:
- Parser Bugs: 3 issues (#23, #24, #25) 🔴
- Tooling: 6 issues (#14, #15, #9, #16, #7, #19) 🟠
- Documentation: 3 issues (#17, #4, #1) 🔵
- Features: 2 issues (#2 enums, #18 migration) 🟢
- Automated: 3 issues (#22, #21, #20) 🤖
- Language Bugs: 4 issues (#13, #5, others) 🟡

**By Origin**:
- rosetta-ruchy migration: 3 issues (#23, #24, #25)
- ruchy-book sync: 1 issue (#17)
- Tooling quality: 6 issues
- Historical/reference: 3 issues

---

## 🎯 Final Recommendation

### **Immediate Actions (This Week)**:
1. **Complete DF-BOOK sprint** (3/4 tickets, ~4-6 hours)
   - Update ruchy-book test files
   - Document unimplemented features
   - Verify Chapter 18 tests passing

2. 🔴 **Start Parser Fixes Sprint** (5-7 days)
   - Fix #24: Array reference parser bug (critical blocker)
   - Fix #25: Mut in destructuring (breaking change)
   - Address #23: From keyword (deprecation strategy)

### **Next Week**:
3. 🛠️ **Choose Strategic Direction**:
   - **Option A**: Complete DataFrame (DF-005, DF-006, DF-007) - user-facing
   - **Option B**: Fix tooling (#14, #15, #9) - developer productivity
   - **Option C**: Error handling sprint - book compatibility

**Recommendation**: Parser fixes (P0) must come before any P1/P2 work, as they:
- Block rosetta-ruchy scientific validation
- Affect multiple user projects
- Are regressions from working v1.89.0 behavior
- Have no clean workarounds in some cases

---

**Document Status**: Comprehensive analysis complete
**Next Update**: After Parser Fixes Sprint completion
**Tracking**: Link to roadmap.md for sprint planning