Skip to content

v0.16.1: Tech Debt Remediation

Choose a tag to compare

@doublegate doublegate released this 06 Mar 03:42
· 705 commits to main since this release

v0.16.1: Tech Debt Remediation

Comprehensive tech debt remediation addressing structural debt from rapid Phase 7.5 feature expansion (80 enhancements, 8 waves, ~33K new lines).

52 files changed, ~2,428 insertions, ~19,666 deletions (net -17,238 lines)

Changes

Phase 1: Safe Global State Conversion (11 static mut eliminated)

  • drivers/mouse.rs: MOUSE_BUFFER, PACKET_BUF, PACKET_IDX → spin::Mutex<T>
  • drivers/keyboard.rs: KEY_BUFFER → spin::Mutex<KeyBuffer>
  • drivers/input_event.rs: EVENT_BUFFER → spin::Mutex, PREV_BUTTONS → AtomicU8
  • sched/process_compat.rs: CURRENT_PROCESS, DUMMY_PROCESS → SyncCell(UnsafeCell<T>)
  • perf/pmu.rs: NUM_COUNTERS → AtomicU8
  • perf/trace.rs: TRACE_RINGS → PerCpuTraceRings([UnsafeCell<TraceRing>; N])

Phase 2: Type Consolidation

  • PixelFormat: 4 definitions → 1 canonical in graphics/mod.rs
  • MemoryRegion: Duplicate removed, replaced with pub use re-export

Phase 3: Oversized File Splitting (5 files → submodules)

  • commands.rs (4,356 lines) → 9 submodules
  • userland_ext.rs (4,630 lines) → 7 submodules
  • desktop_ext.rs (3,491 lines) → 7 submodules
  • tls.rs (3,364 lines) → 5 submodules
  • codecs.rs (3,319 lines) → 3 submodules

Phase 4: Production unwrap() Reduction

  • Critical paths in ipc/shared_memory.rs, mm/vas.rs, net/quic.rs

Phase 5: pkg/ Module Test Coverage

  • 125 new unit tests across 5 files (2,356 total host-target tests)

Phase 6: Dead Code Audit

  • #[allow(dead_code)] reduced from 321 → 193 annotations (40% reduction)

Verification

  • All 3 architectures build (x86_64, AArch64, RISC-V)
  • Clippy: 0 warnings on all 4 targets (3 bare-metal + host)
  • Host-target tests: 2,356 passed, 0 failed