ruvector-dither uses `std`-only float methods without feature gate
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 83/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust
- Domain
- operating-systems
Research direction
Start with crates/ruvector-dither/src/lib.rs to understand the conditional no_std setup, then inspect the listed uses in channel.rs, quantize.rs, and golden.rs. Check the crate's no_std compilation path and confirm that all float operations used there compile without std on the supported target.
Written by the indexing model from the issue text.
Description
The ruvector-dither supports no_std conditionally:
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/lib.rs#L41
However it uses f32::round, which is only available with std, without feature gate:
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/channel.rs#L50
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/quantize.rs#L29
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/quantize.rs#L59
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/quantize.rs#L72
It also uses f32::fract, which is only available with std, without feature gate:
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/golden.rs#L30
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/golden.rs#L37
https://github.com/ruvnet/RuVector/blob/5356a84e2f784a33fa497da2e73440d469eb5542/crates/ruvector-dither/src/golden.rs#L52
This breaks no_std builds and prevents compilation on bare-metal or other no_std-only targets.
- Dominant language
- Rust
- Stars
- 4.5k
- Forks
- 603
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 56
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ruvnet/RuVector
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
adr phase-w4-3 pir stretch wave-4
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
trezor/trezor-firmware#7997 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
smol-machines/smolvm#1489 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day