From 62511d2c658c288584e8845c9c758f2c8e609d66 Mon Sep 17 00:00:00 2001 From: ubugeeei Date: Tue, 21 Jul 2026 16:24:10 +0900 Subject: [PATCH 1/3] fix(ci): raise fuzz RSS budget --- .github/workflows/fuzz.yml | 6 ++++++ tests/tooling/fuzz-setup.test.ts | 2 ++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 86c6ad081..b9326dbee 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -124,11 +124,17 @@ jobs: env: FUZZ_MAX_TOTAL_TIME: ${{ steps.budget.outputs.seconds }} FUZZ_TARGET: ${{ matrix.target }} + # Long corpus runs retain sanitizer allocator high-water memory even + # when no individual input allocates excessively. Keep the per-call + # allocation guard strict while giving the instrumented process room + # to finish the 30-minute scheduled evidence run. run: >- cargo +nightly fuzz run --fuzz-dir tests/fuzz "$FUZZ_TARGET" -- "-max_total_time=$FUZZ_MAX_TOTAL_TIME" -max_len=65536 -timeout=25 + -rss_limit_mb=4096 + -malloc_limit_mb=2048 - name: Upload reproducers when libFuzzer crashed id: upload-reproducers diff --git a/tests/tooling/fuzz-setup.test.ts b/tests/tooling/fuzz-setup.test.ts index 808f1370f..a45b3330d 100644 --- a/tests/tooling/fuzz-setup.test.ts +++ b/tests/tooling/fuzz-setup.test.ts @@ -120,6 +120,8 @@ test("fuzz CI workflow gates short PR fuzz and schedules long nightly fuzz", () fuzzStep?.run ?? "", /cargo \+nightly fuzz run --fuzz-dir tests\/fuzz "\$FUZZ_TARGET"/, ); + assert.match(fuzzStep?.run ?? "", /-rss_limit_mb=4096/); + assert.match(fuzzStep?.run ?? "", /-malloc_limit_mb=2048/); assert.deepEqual(fuzzStep?.env, { FUZZ_MAX_TOTAL_TIME: "${{ steps.budget.outputs.seconds }}", FUZZ_TARGET: "${{ matrix.target }}", From f7927e14e5efd3d725eec42e80b693aafd556d42 Mon Sep 17 00:00:00 2001 From: ubugeeei Date: Tue, 21 Jul 2026 07:26:58 +0000 Subject: [PATCH 2/3] fix(ci): update pinned MoonBit installer hashes Co-authored-by: Codesmith --- .github/actions/setup-moonbit/install-moonbit.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/setup-moonbit/install-moonbit.mjs b/.github/actions/setup-moonbit/install-moonbit.mjs index 9b13b6e45..63a8c7b7d 100644 --- a/.github/actions/setup-moonbit/install-moonbit.mjs +++ b/.github/actions/setup-moonbit/install-moonbit.mjs @@ -24,8 +24,8 @@ const shimMoon = os.type() === "Windows_NT" ? shimMoonCmd : shimMoonShell; const moonInstallerScript = path.join(runnerTemp, "moonbit-install.ps1"); const moonInstallerUnixScript = path.join(runnerTemp, "moonbit-install.sh"); const moonInstallerSha256 = { - unix: "802ea2310c13e2a6b447050a2c82e60b4d5f222ec7c6a8e55b77df09d4b4da7d", - windows: "e1b22bd41363ca8cdb1480b523a8c61ce57ffcb4a581375369ff16c5afd5c5b7", + unix: "46495f8cdc0050f79b6cb195d66478d101cb3601d68506568fbe377fcdf2a9fe", + windows: "a5101e91ffa9905fb25cd009b9a4aa942971a294bd055c89836e3af89b710c64", }; function run(command, args, env) { From 0446c0b3b9de082f4020e320f1a557d2092a425f Mon Sep 17 00:00:00 2001 From: ubugeeei Date: Tue, 21 Jul 2026 07:45:48 +0000 Subject: [PATCH 3/3] fix(ci): disambiguate empty MoonBit map literals Co-authored-by: Codesmith --- tools/moon/cmd/build_vitrine_wasm/main.mbt | 2 +- tools/moon/cmd/dev_app/main.mbt | 2 +- tools/moon/cmd/prepare_npm_publish_manifest/main.mbt | 4 ++-- tools/moon/cmd/source_file_lengths/main.mbt | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/moon/cmd/build_vitrine_wasm/main.mbt b/tools/moon/cmd/build_vitrine_wasm/main.mbt index f0cfbe016..bca52a0b0 100644 --- a/tools/moon/cmd/build_vitrine_wasm/main.mbt +++ b/tools/moon/cmd/build_vitrine_wasm/main.mbt @@ -94,7 +94,7 @@ fn args_include_wasm_target(args : Array[String]) -> Bool { } async fn run_cargo(root : String, args : Array[String]) -> Int { - let extra_env : Map[String, String] = {} + let extra_env : Map[String, String] = Map([]) if args_include_wasm_target(args) { extra_env["RUSTFLAGS"] = wasm_rustflags() } diff --git a/tools/moon/cmd/dev_app/main.mbt b/tools/moon/cmd/dev_app/main.mbt index 53d231846..6624a0fe5 100644 --- a/tools/moon/cmd/dev_app/main.mbt +++ b/tools/moon/cmd/dev_app/main.mbt @@ -5,7 +5,7 @@ async fn run_app() -> Int { println("Usage: moon run --target native tools/moon/cmd/dev_app -- [target]") return 1 } - let extra_env : Map[String, String] = {} + let extra_env : Map[String, String] = Map([]) if args.length() == 1 { extra_env["usage_target"] = args[0] } diff --git a/tools/moon/cmd/prepare_npm_publish_manifest/main.mbt b/tools/moon/cmd/prepare_npm_publish_manifest/main.mbt index 4c254a213..b7b909c0a 100644 --- a/tools/moon/cmd/prepare_npm_publish_manifest/main.mbt +++ b/tools/moon/cmd/prepare_npm_publish_manifest/main.mbt @@ -86,7 +86,7 @@ fn collect_workspace_packages(directory : String, versions : Map[String, String] /// Flattens catalog pins into a lookup keyed by `\0`. fn parse_catalog_versions(content : String) -> Map[String, String] { - let versions : Map[String, String] = {} + let versions : Map[String, String] = Map([]) let mut in_catalogs = false let mut current_catalog = "" let lines : Array[String] = content.split("\n").map(view => view.to_owned()).collect() @@ -264,7 +264,7 @@ async fn run_app() -> Int { } } - let workspace_versions : Map[String, String] = {} + let workspace_versions : Map[String, String] = Map([]) collect_workspace_packages(@tool.join_path(repo_root, "npm"), workspace_versions) let workspace_yaml_path = @tool.join_path(repo_root, "pnpm-workspace.yaml") let workspace_yaml = match @tool.read_file_to_string(workspace_yaml_path) { diff --git a/tools/moon/cmd/source_file_lengths/main.mbt b/tools/moon/cmd/source_file_lengths/main.mbt index c21d9a4e7..007316966 100644 --- a/tools/moon/cmd/source_file_lengths/main.mbt +++ b/tools/moon/cmd/source_file_lengths/main.mbt @@ -129,7 +129,7 @@ async fn git_ref_exists(ref_name : String) -> Bool { } async fn base_rename_paths(base_ref : String) -> Map[String, String] { - let renames : Map[String, String] = {} + let renames : Map[String, String] = Map([]) let (exit_code, output) = @process.collect_stdout( "git", ["diff", "--name-status", "--find-renames", base_ref, "--"],