|
1 | | -## Description |
2 | | -Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. |
| 1 | +## Summary |
3 | 2 |
|
4 | | -Fixes # (issue) |
| 3 | +<!-- One paragraph: what does this PR do and why? --> |
| 4 | + |
| 5 | +Closes #<!-- issue number --> |
| 6 | + |
| 7 | +--- |
5 | 8 |
|
6 | 9 | ## Type of change |
7 | | -Please delete options that are not relevant. |
8 | | - |
9 | | -- [ ] Bug fix (non-breaking change which fixes an issue) |
10 | | -- [ ] New feature (non-breaking change which adds functionality) |
11 | | -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) |
12 | | -- [ ] Documentation update |
13 | | -- [ ] Code refactoring (no functional changes) |
14 | | -- [ ] Performance improvement |
15 | | - |
16 | | -## How Has This Been Tested? |
17 | | -Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. |
18 | | - |
19 | | -- [ ] Test A |
20 | | -- [ ] Test B |
21 | | - |
22 | | -## Checklist: |
23 | | -- [ ] My code follows the style guidelines of this project |
24 | | -- [ ] I have performed a self-review of my own code |
25 | | -- [ ] I have commented my code, particularly in hard-to-understand areas |
26 | | -- [ ] I have made corresponding changes to the documentation |
27 | | -- [ ] My changes generate no new warnings |
28 | | -- [ ] I have added tests that prove my fix is effective or that my feature works |
29 | | -- [ ] New and existing unit tests pass locally with my changes |
30 | | -- [ ] Any dependent changes have been merged and published in downstream modules |
| 10 | + |
| 11 | +- [ ] Bug fix — correctness issue in critical path (ECC, FTL, GC, WL) |
| 12 | +- [ ] Feature — new module or algorithm |
| 13 | +- [ ] Performance improvement — same correctness, faster |
| 14 | +- [ ] Refactor — no behavior change |
| 15 | +- [ ] Documentation |
| 16 | +- [ ] CI / tooling |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +## Correctness checklist |
| 21 | + |
| 22 | +For any change touching the simulator's critical path (write_page, read_page, GC, ECC): |
| 23 | + |
| 24 | +- [ ] `write_page → read_page` round-trip returns original data |
| 25 | +- [ ] WAF ≥ 1.0 on all workloads |
| 26 | +- [ ] BCH corrects exactly t errors (not t-1, not t+1) |
| 27 | +- [ ] Wear leveling stddev decreases or stays flat over time |
| 28 | +- [ ] No placeholder comments (`# TODO`, `# ... (no implementation)`) in critical paths |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## Test coverage |
| 33 | + |
| 34 | +- [ ] Unit tests added for all changed modules |
| 35 | +- [ ] Hypothesis property tests added if this touches ECC, FTL, or WL |
| 36 | +- [ ] Integration test updated if the write/read pipeline changed |
| 37 | +- [ ] `pytest --cov` still reports ≥ 80% |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## Code quality |
| 42 | + |
| 43 | +- [ ] `mypy src/` passes with 0 errors |
| 44 | +- [ ] `ruff check src/ tests/` reports 0 issues |
| 45 | +- [ ] All new public APIs have NumPy-style docstrings |
| 46 | +- [ ] CHANGELOG.md updated under `[Unreleased]` |
| 47 | +- [ ] ARCHITECTURE.md updated if the internal design changed |
| 48 | +- [ ] BENCHMARKS.md updated if new metrics or results are introduced |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +## Performance impact |
| 53 | + |
| 54 | +<!-- If this changes any data structure or algorithm, fill this in. |
| 55 | + Otherwise delete this section. --> |
| 56 | + |
| 57 | +| Operation | Before | After | Notes | |
| 58 | +|---|---|---|---| |
| 59 | +| Wear leveling select | O(N) | O(log N) | min-heap | |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## Screenshots / plots |
| 64 | + |
| 65 | +<!-- For visualization or dashboard changes, include a screenshot. --> |
| 66 | +<!-- For ECC or reliability changes, include a BLER or RBER curve if possible. --> |
0 commit comments