build(deps): bump tract to ^0.21.15#685
Open
czoli1976 wants to merge 1 commit intoRikorose:mainfrom
Open
Conversation
Bumps libDF's tract pin from ^0.21.4 to ^0.21.15, picking up the
WASM f32 4x4 kernel (0.21.6), MMM kits (0.21.8), reduce optimisations
(0.21.10), slice-bubbling improvements (0.21.11), and the
multithread-mm feature flag (0.21.12).
Two minimum-viable libDF source patches accompany the manifest bump
because tract introduced two non-semver-compatible API changes within
the 0.21.x patch line:
* Graph::symbol_table -> Graph::symbols (introduced 0.21.6)
— 3 call sites in libDF/src/tract.rs.
* tract-core re-exports a newer ndarray than the standalone ndarray
crate at libDF's current pin. Fixed by routing the ndarray import
through tract_core::ndarray (with the `self` alias) in five files,
keeping libDF aligned with whatever ndarray version tract-core
chooses internally. Avoids E0308 type-mismatch errors at the libDF
↔ tract API boundary (Axis, prelude::*, ShapeError).
Validated against the 0.21.4 baseline on a 30-clip VoiceBank+DEMAND
subset:
* DNSMOS P.835 scores BIT-IDENTICAL across native + WASM
(SIG / BAK / OVR / P808 all match to all reported decimals)
* Native CLI mean RTF: 0.184 (0.21.15) vs 0.195 (0.21.4) — modest
native gain
* WASM size delta: 8.28 MiB -> 9.13 MiB (+10.3%, expected — MMM
kits + first WASM SIMD kernel codegen)
Refs Rikorose#682.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps libDF's tract pin from
^0.21.4to^0.21.15. Picks up the items called out in #682:multithread-mmfeature flag in tract-linalgWhy two source patches alongside the manifest bump
tract introduced two non-semver-compatible API changes within the 0.21.x patch line, so this can't be a manifest-only bump:
Graph::symbol_table→Graph::symbols(introduced 0.21.6) — 3 call sites inlibDF/src/tract.rs.ndarray re-export drift —
tract-corere-exports a newerndarraythan the standalonendarraycrate at libDF's current pin. Fixed by routing thendarrayimport throughtract_core::ndarray(usinguse tract_core::ndarray::{self, prelude::*, …};so theselfalias keeps every laterndarray::*reference resolving against tract's re-export). Five files:tract.rs,wasm.rs,transforms.rs,wav_utils.rs,bin/enhance_wav.rs. Avoids E0308 type-mismatch errors at the libDF ↔ tract API boundary (Axis,prelude::*,ShapeError).Both renames are mechanical and bit-equivalent.
Test plan — addresses the validation framing in #682
cargo check -p deep_filter --features tract,default-modelclean on macOS + cargo 1.95.0. Pre-existing warnings only — no errors, no new warnings.wasm-pack build libDF --target no-modules --release --features wasmsucceeds. Final wasm-opt -Oz output is 9.13 MiB vs 8.28 MiB on the 0.21.4 baseline (+10.3%; expected, MMM kits + first WASM SIMD kernel codegen).SIG=2.9947 BAK=3.6512 OVR=2.6339 P808=3.5753, all four match to all reported decimals.deep-filterbinary on the same 30-clip subset produces DNSMOS P.835 scores bit-identical to 0.21.4 —SIG=3.5662 BAK=4.1302 OVR=3.3237 P808=3.8365.The validation gates this PR matches #682's ask: DNSMOS-based quality validation on a representative corpus, no audio-quality regression (the concern from the 2023 0.19 → 0.20 revert in #405), conservative caret pin (
^0.21.15) so the minimum-version bound stays in 0.21.x.Caveats
symbol_tablerename / Cargo.toml + lockfile bump) if you prefer that shape for review.Refs #682.