- fix(workspace): exclude crates/training/rtx-distributed from workspace members — RNCCL path deps absent in standalone checkout blocked all cargo operations - refactor(rtx-backend-webgpu): split compute.rs (1654 lines) into compute/mod.rs (1040) + compute/conv.rs (628) — both within 1250-line limit - fix(rtx-bench): add missing src/bin/main.rs declared in [[bin]] Cargo.toml entry - fix(gitignore): narrow `bin/` exclusion to /bin/ only; add !**/src/bin/ exception to allow Rust source binary directories - style(rtx-eval): 67x "literal".to_string() → "literal".to_owned() in automation, validation, metrics, lib, core, error modules and build.rs All tests pass (64 tests across rtx-eval + rtx-backend-webgpu, 0 failures). Clippy clean (-D warnings) on all changed crates. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
66 lines
3.3 KiB
Markdown
66 lines
3.3 KiB
Markdown
# Rust Improvement Scan: rustytorch
|
||
**Date:** 2026-04-30 (Iteration 18 — codebase-refactor agent)
|
||
**Rust:** nightly-2025-10-25 (1.92.0-nightly) — Edition 2024
|
||
**Branch:** refactor/clean-20260430-080803
|
||
|
||
---
|
||
|
||
## Iteration 18 Changes (2026-04-30)
|
||
|
||
### Changes Made
|
||
|
||
| # | Category | File(s) | Description |
|
||
|---|----------|---------|-------------|
|
||
| 1 | **CRITICAL fix** | `Cargo.toml` | Excluded `crates/training/rtx-distributed` from workspace members — RNCCL path deps absent in standalone checkout, blocked all `cargo check/clippy/test` invocations |
|
||
| 2 | **File size** | `compute.rs` → `compute/mod.rs` + `compute/conv.rs` | Split 1654-line `rtx-backend-webgpu` compute module: core dispatch (1040 lines) + conv/pool ops (628 lines); both within 1250-line limit |
|
||
| 3 | **Missing file** | `crates/tooling/rtx-bench/src/bin/main.rs` | Created missing binary entry point declared in Cargo.toml `[[bin]]` (file absence caused workspace build failure) |
|
||
| 4 | **Modernisation** | `rtx-eval/src/*.rs`, `build.rs` | 67× `"literal".to_string()` → `"literal".to_owned()` across automation/validation/metrics/lib/core/error + build.rs |
|
||
|
||
### Pass Results (Iteration 18)
|
||
- **Pass 1 Clippy**: CLEAN on rtx-eval, rtx-backend-webgpu (pre-existing ort-sys build failure on x86_64 macOS unrelated to changes)
|
||
- **Pass 2 Tests**: 63 + 1 = 64 tests across rtx-eval + rtx-backend-webgpu — 0 failures
|
||
- **Pass 3 File Size**: compute.rs split 1654 → 1040 + 628 lines ✓
|
||
- **Pass 4 Panics**: No production unwraps found (all in test/bench code)
|
||
- **Pass 5 Blocking**: std::thread::sleep only in #[test] (intentional timing) — no async violations
|
||
- **Pass 6 Modernisation**: 67 .to_string() → .to_owned() replacements
|
||
- **Pass 7 Dead code**: Existing allow(dead_code) justified (FFI/GPU backend interfaces)
|
||
- **Pass 8 Edition**: All crates use edition.workspace = true = "2024" ✓
|
||
|
||
### Not Changed (deferred)
|
||
- `rtx-autograd/src/autodiff/backend.rs` (1375 lines): monolithic impl block — clean split boundary not found
|
||
- `rtx-transformers/src/curriculum/mod.rs` (1279 lines): 29 lines over limit — low risk, deferred
|
||
- `rtx-neuro-artifacts` ort non-optional dep: blocks full workspace build on macOS x86_64 — architectural change required
|
||
- Open issue #10: ring_allreduce() stub — design issue, not a refactor target
|
||
|
||
---
|
||
|
||
## Previous Iteration (17 — 2026-04-29)
|
||
|
||
## Changes Made
|
||
|
||
### Iteration 17 (this iteration, rust-improvement/scan-2026-04-29-lint-fixes branch)
|
||
|
||
Fixed two invalid lint names in [workspace.lints.clippy] that were generating E0602 unknown-lint
|
||
warnings on every clippy invocation:
|
||
|
||
1. **manual_is_ascii** (line 803): Renamed to .
|
||
The clippy lint does not exist; clippy suggested .
|
||
|
||
2. **hidden_glob_reexports** (line 749 in clippy section): Removed from [workspace.lints.clippy].
|
||
This is a *rustc* lint (already correctly present in [workspace.lints.rust] at line 638),
|
||
not a clippy lint. Having it in the clippy section generated a spurious E0602 warning.
|
||
|
||
Result: no longer emits E0602 unknown-lint warnings.
|
||
|
||
## Security Notes
|
||
cargo check --workspace: PASSES.
|
||
No known security advisories.
|
||
|
||
## Files Over Limit
|
||
None -- all files within 1300 line limit.
|
||
|
||
## Remaining Opportunities
|
||
- SAFETY comments on unsafe blocks (Stage 2 safety audit)
|
||
- nalgebra 0.34 already at fleet-leader level
|
||
- tokio workspace deps already using workspace inheritance
|