Static multi-bank buffer planning and independent layout verification
. ./scripts/use-sdk.ps1 -SdkHome '你的 MoonBit SDK 绝对路径'
moon update
moon check --deny-warn
moon build --release --deny-warn
moon test --deny-warnmoon run cmd/arenaplan -- plan examples/reuse.json
moon run cmd/arenaplan -- plan examples/dma_banks.json
moon run cmd/arenaplan -- plan examples/budget_failure.json# layout 命令只输出布局,可把 stdout 保存为 layout.json
moon run cmd/arenaplan -- layout examples/reuse.json
moon run cmd/arenaplan -- verify examples/reuse.json layout.json
moon run cmd/arenaplan -- header examples/reuse.json layout.json
moon run cmd/arenaplan -- lifetimes examples/graph.jsonpython scripts/verify.py --exe _build/native/release/build/cmd/arenaplan/arenaplan.exe
moon run examples/c_replay
moon test --target js -p SongYZZZ/moon-arena-plan --deny-warn
moon test --target wasm-gc -p SongYZZZ/moon-arena-plan --deny-warn# 区分贪心失败、有界穷举无解和搜索预算耗尽
moon run cmd/arenaplan -- exact examples/exact_alignment_kib.json
moon run cmd/arenaplan -- explain examples/exact_alignment_kib.json
# explain 在上述贪心布局下预期退出 1;exact 找到 9 KiB 的可行见证
# CI 回归:16 KiB 升级为 32 KiB,显式允许每 bank 增长 16 KiB
moon run cmd/arenaplan -- compare examples/regression_before.json examples/regression_after.json 16384
# C 例程输出调用点轨迹,保存其 stdout 后导入
moon run examples/trace_capture
moon run cmd/arenaplan -- trace trace.jsonpython scripts/verify_extensions.py --exe _build/native/release/build/cmd/arenaplan/arenaplan.exe --trace-exe _build/native/release/build/examples/trace_capture/trace_capture.exepub(all) struct BankDelta {
bank : String
change : String
before_capacity : Int64?
after_capacity : Int64?
before_highwater : Int64
after_highwater : Int64
highwater_delta : Int64
before_peak_live_bytes : Int64
after_peak_live_bytes : Int64
peak_live_delta : Int64
growth_exceeded : Bool
candidate_over_budget : Bool
} derive(Eq, ToJson, Debug)pub(all) struct ExecutionTrace {
schema : Int
banks : Array[Bank]
buffers : Array[TrackedBuffer]
events : Array[TraceEvent]
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct PeakExplanation {
bank : String
capacity : Int64
highwater : Int64
peak_live_bytes : Int64
peak_step : Int
layout_over_budget_by : Int64
live_over_budget_by : Int64
highwater_minus_peak : Int64
live_buffers : Array[PeakBuffer]
} derive(Eq, ToJson, Debug)Install
Download zipStatic multi-bank buffer planning and independent layout verification