0xMiden / 0xMiden/compiler

Native/Masm divergence for `u128::saturating_(add|sub)`

Aperta
#1,355 0 commenti 0 reazioni 1 assegnatario Rivendicata da @mooori Vedi su GitHub
codegen
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.