Cranelift: interpreter traps on `srem INT_MIN, -1` instead of returning 0
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
cranelift/interpreter/ 配下のインタープリタの DataValue::srem 実装から着手し、そのオーバーフロー検査を sdiv と比較する。修正は、剰余について INT_MIN, -1 のトラップを外して 0 を返させる 것이다。Issue の .clif ファイルを clif-util test test.clif で再現する(失敗するのは test interpret のみ)。完了とは、上記のテストケースが test interpret で通り、そのケースが cranelift/filetests/ 配下に filetest として追加されることを指す。
索引モデルが issue の本文から書いたものです。
説明
srem only traps on a zero divisor, and srem INT_MIN, -1 is 0. Native
code agrees, and so does the mid-end rule srem x, -1 => 0. The
interpreter's DataValue::srem, however, copies sdiv's overflow check and
traps with int_ovf.
.clif Test Case
test interpret
test run
target aarch64
function %f(i32, i32) -> i32 {
block0(v0: i32, v1: i32):
v2 = srem v0, v1
return v2
}
; run: %f(0x80000000, -1) == 0
Steps to Reproduce
clif-util test test.clif
Expected Results
Both test interpret and test run pass.
Actual Results
test run passes. test interpret fails:
Unexpected returned control flow: Trap(User(TrapCode(252)))
Versions and Environment
Cranelift version or commit: 73b04cff33
Operating system: macOS 15.8.1
Architecture: aarch64
- 主要言語
- Rust
- スター
- 18.7k
- フォーク
- 1.9k
- 平均マージ
- 19時間 26分
- マージ済み PR(30日)
- 355
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
bytecodealliance/wasmtime のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
bytecodealliance/wasmtime#14894 ·
メンテナーはふだん 1 日以内に返信
-
bug wasm-proposal:exceptions wasmtime:debugging
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
bytecodealliance/wasmtime#14102 ·
メンテナーはふだん 1 日以内に返信
-
wasm-proposal:gc
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
bytecodealliance/wasmtime#13808 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
cranelift cranelift:area:clif cranelift:goal:optimize-speed enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
bytecodealliance/wasmtime#1598 · コメント 9 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
bytecodealliance/wasmtime#14893 ·
メンテナーはふだん 1 日以内に返信
bytecodealliance/wasmtime の issue をすべて見る
似ている issue
-
corro-client drops the last byte of a response line that has no trailing newline対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
proxy: include denial_category in the "proxy request denied" log line対応中かも @sreyas-endor が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
nolabs-ai/nono#2172 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
metasequoiaime/msime#9113 ·
メンテナーはふだん 1 日以内に返信
-
area:desktop priority:p2 type:chore
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
area: supply-chain
難易度 1/5 1時間未満 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信