|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
| 5 | +## [4.1.0] - 2026-02-12 |
| 6 | + |
| 7 | +### 99MODE-S9: 100% Convergence Milestone |
| 8 | + |
| 9 | +**Perfect transpilation convergence achieved across all test corpora.** |
| 10 | + |
| 11 | +| Corpus | Compile Rate | Previous | Improvement | |
| 12 | +|--------|--------------|----------|-------------| |
| 13 | +| hard_wave3 (100 files) | 100% | N/A | New corpus | |
| 14 | +| semantic tests (178 files) | 100% | 97.4% | +2.6 pp | |
| 15 | +| Internal corpus (1410 files) | 97.4% | 80% | +17.4 pp | |
| 16 | + |
| 17 | +351 commits of sustained convergence engineering since v3.25.0. |
| 18 | + |
| 19 | +### Architecture: Workspace Crate Extraction |
| 20 | + |
| 21 | +Extracted 4 new crates from `depyler-core` for better modularity: |
| 22 | + |
| 23 | +- **depyler-hir** - HIR types, error types, decision trace |
| 24 | +- **depyler-lambda** - Lambda codegen, errors, inference, optimizer, testing, types |
| 25 | +- **depyler-analysis** - Type analysis, borrowing, inference, optimization, container element inference |
| 26 | +- **depyler-tooling** - Chaos, debug, doctest, documentation, hunt mode, IDE, infrastructure, library mapping |
| 27 | + |
| 28 | +### Container Element Type Inference |
| 29 | + |
| 30 | +New inference pass resolves `DepylerValue` for unparameterized generics: |
| 31 | +- `def f(numbers: list)` now infers `Vec<i32>` from usage patterns (e.g., `n > 0` in loop body) |
| 32 | +- Covers for-loop element usage, `.append()` arguments, `sum()`/`max()`/`join()` builtins, dict value assignment |
| 33 | +- Delegates to existing `infer_param_type_from_body` for loop variable inference |
| 34 | + |
| 35 | +### Code Quality: expr_methods.rs Refactoring |
| 36 | + |
| 37 | +Reduced `convert_method_call` cognitive complexity from 101 to ~25: |
| 38 | +- Extracted 9 module handler methods (`try_convert_{sys,re,colorsys,base64,hashlib,json,math,random,time}_method`) |
| 39 | +- Extracted `convert_instance_method` for list/set/string/dict dispatch |
| 40 | +- 9 additional `re`-module helpers and `make_hashlib_expr` |
| 41 | +- 1718 lines reduced to 1647 with zero behavior change |
| 42 | + |
| 43 | +### Test Suite |
| 44 | + |
| 45 | +- **1,469 workspace tests passing** (0 failures) |
| 46 | +- Fixed 5 stale test assertions for `In`/`NotIn` operators and array multiplication |
| 47 | +- 28 tests ignored (feature-gated) |
| 48 | + |
| 49 | +### Convergence Campaign Highlights (99MODE-S9) |
| 50 | + |
| 51 | +- 1,410+ corpus files across security, compilers, databases, ML, distributed systems, science, competitive programming |
| 52 | +- Fixed module-vs-variable name collision in method routing |
| 53 | +- Added `random.triangular` and fixed `itertools.groupby` arity |
| 54 | +- Fixed `contains_key` heuristic for set variables |
| 55 | +- Propagated typed local annotations to `param_types` for tuple codegen |
| 56 | +- Fixed `DepylerValue::Str` E0308 missing `.to_string()` |
| 57 | + |
5 | 58 | ## [3.25.0] - 2026-02-02 |
6 | 59 |
|
7 | 60 | ### 🎯 Multi-Corpus Convergence Milestone |
|
0 commit comments