Outcome printer formats the bigint sign by hand instead of `Bigint_utils.to_string`
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 2/5
- 預估耗時
- 1-3 小時
- 新手友好度
- 78/100
- Issue 類型
- 重構
- 描述清晰度
- 描述清楚
- 活躍度
- 活躍
- 技術堆疊
- ocaml
- 領域
- compilers
研究方向
從 compiler/syntax/src/res_outcome_printer.ml 第 486-487 行附近的 bigint 常數分支開始,那裡的符號和數字是手動拼接的。將它與 compiler/ml/bigint_utils.ml 中的 Bigint_utils.to_string 比較,並查看 res_core.ml 如何已經從 syntax 函式庫呼叫 Bigint_utils。完成的標準是:printer 呼叫共用的輔助函式,手寫的符號邏輯被移除,且正數與負數 bigint 的輸出維持不變。
由索引模型根據 Issue 內容生成。
描述
Found by differential semantic drift analysis from ece8b148 to a7721303.
What is broken
res_outcome_printer.ml L486-L487 formats a bigint constant by hand: (if positive then "" else "-") ^ digits ^ "n". The same logic exists as Bigint_utils.to_string, used by printlambda.ml and printtyped.ml. #8732 fixed a sign bug in exactly this hand-written copy. The syntax library already depends on ml and uses Bigint_utils (res_core.ml), so the printer can call the shared helper and keep one definition of the sign convention.
Possible cause (speculation only)
A guess: the fix in #8732 corrected the copy in place, the smallest change, rather than replacing it with the shared helper.
- 主要語言
- OCaml
- 星號
- 7.5k
- 分支
- 484
- 平均合併
- 19 小時 20 分鐘
- 30 天內合併 PR
- 96
環境準備
在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
rescript-lang/rescript 的其他 Issue
-
難度 5/5 一週以上 新手友好度 35/100
rescript-lang/rescript#8806 ·
維護者通常 1 天內回覆
-
難度 5/5 一週以上 新手友好度 35/100
rescript-lang/rescript#8798 ·
維護者通常 1 天內回覆
-
難度 3/5 半天 新手友好度 58/100
rescript-lang/rescript#8757 ·
維護者通常 1 天內回覆
-
難度 3/5 1-2 天 新手友好度 40/100
rescript-lang/rescript#8753 ·
維護者通常 1 天內回覆
-
難度 5/5 一週以上 新手友好度 22/100
rescript-lang/rescript#8733 ·
維護者通常 1 天內回覆
查看 rescript-lang/rescript 的全部 Issue
相似的 Issue
-
Invalid model / false unsat: to_fp of real * 2^int with a symbolic rounding mode treats RTN as RTZ未關閉
難度 2/5 1-3 小時 新手友好度 82/100
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 85/100
KhronosGroup/SPIRV-LLVM-Translator#4082 ·
維護者通常 2 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 85/100
bradcypert/plum#227 ·
維護者通常 1 天內回覆
-
crash mlir
難度 2/5 1-3 小時 新手友好度 68/100
llvm/llvm-project#231201 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
parcel-bundler/lightningcss#1370 ·
維護者通常 1 天內回覆