参考所有分组,完成尽量多的内容。禁止顺手扩功能 smoke:锁定WASM阻塞替换集合

This commit is contained in:
cnc
2026-06-04 19:07:21 +08:00
parent 0b387db8ca
commit a46910b6c0
2 changed files with 29 additions and 7 deletions

View File

@@ -102,22 +102,38 @@ if sections.get("dlopen") != ["(none)"]:
if sections.get("tooldata-users") != ["(none)"]: if sections.get("tooldata-users") != ["(none)"]:
raise SystemExit("blocked tooldata-users section is no longer empty") raise SystemExit("blocked tooldata-users section is no longer empty")
required_entries = [ required_tracked_entries = [
"src/emc/rs274ngc/gcodemodule.cc", "src/emc/rs274ngc/gcodemodule.cc",
"src/emc/rs274ngc/interpmodule.cc", "src/emc/rs274ngc/interpmodule.cc",
"src/emc/tooldata/tooldata_mmap.cc", "src/emc/tooldata/tooldata_mmap.cc",
"src/emc/rs274ngc/interp_base.cc", "src/emc/rs274ngc/interp_base.cc",
"src/emc/rs274ngc/interp_o_word.cc", "src/emc/rs274ngc/interp_o_word.cc",
"src/emc/rs274ngc/rs274ngc_pre.cc", "src/emc/rs274ngc/rs274ngc_pre.cc",
"src/emc/tooldata/tooldata_mmap.cc -> core/wasm_shims/tooldata/tooldata_mmap_backend.cc",
"src/emc/rs274ngc/gcodemodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc",
"src/emc/rs274ngc/pyparamclass.cc -> core/wasm_shims/python_c_api_shim.cc",
] ]
for entry in required_entries: required_replacements = [
"src/emc/rs274ngc/canonmodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc",
"src/emc/rs274ngc/gcodemodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc",
"src/emc/rs274ngc/interpmodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc",
"src/emc/rs274ngc/pyarrays.cc -> core/wasm_shims/python_c_api_shim.cc",
"src/emc/rs274ngc/pyblock.cc -> core/wasm_shims/python_c_api_shim.cc",
"src/emc/rs274ngc/pyemctypes.cc -> core/wasm_shims/python_c_api_shim.cc",
"src/emc/rs274ngc/pyinterp1.cc -> core/wasm_shims/python_c_api_shim.cc",
"src/emc/rs274ngc/pyparamclass.cc -> core/wasm_shims/python_c_api_shim.cc",
"src/emc/tooldata/tooldata_mmap.cc -> core/wasm_shims/tooldata/tooldata_mmap_backend.cc",
]
for entry in required_tracked_entries:
if entry not in output: if entry not in output:
raise SystemExit(f"WASM blocker analyzer output missing required entry: {entry}") raise SystemExit(f"WASM blocker analyzer output missing required entry: {entry}")
if entry not in source_map: if entry not in source_map:
raise SystemExit(f"docs/linuxcnc-wasm-blockers-source-map.md missing required entry: {entry}") raise SystemExit(f"docs/linuxcnc-wasm-blockers-source-map.md missing required entry: {entry}")
replacement_entries = [entry for entry in sections.get("blocked-replacements", []) if entry != "(none)"]
if replacement_entries != required_replacements:
raise SystemExit(f"WASM blocker replacement set changed: {replacement_entries}")
if "Required replacement set:" not in source_map:
raise SystemExit("docs/linuxcnc-wasm-blockers-source-map.md must document the complete replacement set")
for entry in required_replacements:
if entry not in source_map:
raise SystemExit(f"docs/linuxcnc-wasm-blockers-source-map.md missing required replacement: {entry}")
shim_paths = set(Path(line).as_posix() for line in subprocess.check_output( shim_paths = set(Path(line).as_posix() for line in subprocess.check_output(
["./list-linuxcnc-wasm-safe-shims.sh"], ["./list-linuxcnc-wasm-safe-shims.sh"],

View File

@@ -46,11 +46,17 @@ a source-link/build guard only; it does not add CNC behavior and must not become
| `core-tooldata-users-shimmed` | 2 | Core RS274/NML users of tooldata declarations. | | `core-tooldata-users-shimmed` | 2 | Core RS274/NML users of tooldata declarations. |
| `core-native-fs-shimmed` | 16 | Core sources with native filesystem includes or calls covered by WASM shims. | | `core-native-fs-shimmed` | 16 | Core sources with native filesystem includes or calls covered by WASM shims. |
Required replacement examples: Required replacement set:
- `src/emc/tooldata/tooldata_mmap.cc -> core/wasm_shims/tooldata/tooldata_mmap_backend.cc` - `src/emc/rs274ngc/canonmodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc`
- `src/emc/rs274ngc/gcodemodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc` - `src/emc/rs274ngc/gcodemodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc`
- `src/emc/rs274ngc/interpmodule.cc -> core/wasm_shims/linuxcnc_runtime_shim.cc`
- `src/emc/rs274ngc/pyarrays.cc -> core/wasm_shims/python_c_api_shim.cc`
- `src/emc/rs274ngc/pyblock.cc -> core/wasm_shims/python_c_api_shim.cc`
- `src/emc/rs274ngc/pyemctypes.cc -> core/wasm_shims/python_c_api_shim.cc`
- `src/emc/rs274ngc/pyinterp1.cc -> core/wasm_shims/python_c_api_shim.cc`
- `src/emc/rs274ngc/pyparamclass.cc -> core/wasm_shims/python_c_api_shim.cc` - `src/emc/rs274ngc/pyparamclass.cc -> core/wasm_shims/python_c_api_shim.cc`
- `src/emc/tooldata/tooldata_mmap.cc -> core/wasm_shims/tooldata/tooldata_mmap_backend.cc`
Required tracked core examples: Required tracked core examples: