Native/Masm divergence for `u128::saturating_(add|sub)`
- Lingua principale
- Rust
- Stelle
- 115
- Fork
- 84
- Merge medio
- 1g 8h
- PR unite (30g)
- 15
Descrizione
### Packages versions
N/A
### Bug description
Adding test coverage for saturating arithmetic fails for `u128` due to a divergence between Rust and Miden VM outputs
### How can this be reproduced?
```
cargo make test -E 'package(midenc-integration-tests)' -- end_to_end::arithmetic::saturating_add_u128
```
### Relevant log output
```shell
thread 'end_to_end::arithmetic::saturating_sub_u128' (215234908) panicked at tests/integration/src/end_to_end/arithmetic.rs:649:13:
Found minimal(shrinked) failing case: (340282366920938463463374607431768211455, 340282366920938463463374607431768211455)
Failure: Reason("assertion failed: `(left == right)` \n left: `340282366920938463444927863358058659840`, \n right: `0`: the Miden VM and Rust disagree on the value produced by this operation at tests/integration/src/end_to_end/arithmetic.rs:638")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Il test fallito si trova in tests/integration/src/end_to_end/arithmetic.rs, riga 638. Eseguire il test specifico con il comando cargo fornito per vedere la divergenza tra Rust e Miden VM per le operazioni di saturazione u128. Esaminare la generazione del codice del compilatore per l'aritmetica saturante su u128, probabilmente nel backend Miden o nella gestione delle funzioni intrinseche. L'obiettivo è far sì che l'output di Miden VM corrisponda a saturating_add e saturating_sub di Rust per gli input di valore massimo mostrati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Attiva
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 55/100