尽快推进:收紧RTAPI格式化shim源码锚点
This commit is contained in:
@@ -57,7 +57,18 @@ grep -F 'int set_print_rcs_error_info(const char *file, int line)' \
|
|||||||
grep -F 'print_rcs_error_new' "$linuxcnc_root/src/libnml/rcs/rcs_print.cc" >/dev/null
|
grep -F 'print_rcs_error_new' "$linuxcnc_root/src/libnml/rcs/rcs_print.cc" >/dev/null
|
||||||
grep -F 'retval = rcs_vprint(_fmt, args, 1);' \
|
grep -F 'retval = rcs_vprint(_fmt, args, 1);' \
|
||||||
"$linuxcnc_root/src/libnml/rcs/rcs_print.cc" >/dev/null
|
"$linuxcnc_root/src/libnml/rcs/rcs_print.cc" >/dev/null
|
||||||
grep -F 'rtapi_snprintf' "$linuxcnc_root/src/rtapi/uspace_common.h" >/dev/null
|
grep -F 'extern int rtapi_snprintf(char *buf, unsigned long int size,' \
|
||||||
|
"$linuxcnc_root/src/rtapi/rtapi.h" >/dev/null
|
||||||
|
grep -F 'extern int rtapi_vsnprintf(char *buf, unsigned long size,' \
|
||||||
|
"$linuxcnc_root/src/rtapi/rtapi.h" >/dev/null
|
||||||
|
grep -F 'int rtapi_snprintf(char *buffer, unsigned long int size, const char *msg, ...) {' \
|
||||||
|
"$linuxcnc_root/src/rtapi/uspace_common.h" >/dev/null
|
||||||
|
grep -F 'result = vsnprintf(buffer, size, msg, args);' \
|
||||||
|
"$linuxcnc_root/src/rtapi/uspace_common.h" >/dev/null
|
||||||
|
grep -F 'int rtapi_vsnprintf(char *buffer, unsigned long int size, const char *fmt,' \
|
||||||
|
"$linuxcnc_root/src/rtapi/uspace_common.h" >/dev/null
|
||||||
|
grep -F 'return vsnprintf(buffer, size, fmt, args);' \
|
||||||
|
"$linuxcnc_root/src/rtapi/uspace_common.h" >/dev/null
|
||||||
grep -F 'class PythonPlugin' "$linuxcnc_root/src/emc/pythonplugin/python_plugin.hh" >/dev/null
|
grep -F 'class PythonPlugin' "$linuxcnc_root/src/emc/pythonplugin/python_plugin.hh" >/dev/null
|
||||||
grep -F 'PLUGIN_PYTHON_NOT_INITIALIZED = -12,' "$linuxcnc_root/src/emc/pythonplugin/python_plugin.hh" >/dev/null
|
grep -F 'PLUGIN_PYTHON_NOT_INITIALIZED = -12,' "$linuxcnc_root/src/emc/pythonplugin/python_plugin.hh" >/dev/null
|
||||||
grep -F 'PLUGIN_NO_CALLABLE = 1,' "$linuxcnc_root/src/emc/pythonplugin/python_plugin.hh" >/dev/null
|
grep -F 'PLUGIN_NO_CALLABLE = 1,' "$linuxcnc_root/src/emc/pythonplugin/python_plugin.hh" >/dev/null
|
||||||
@@ -223,6 +234,14 @@ for needle in [
|
|||||||
if needle not in rcs_print_shim:
|
if needle not in rcs_print_shim:
|
||||||
raise SystemExit(f"RCS print shim missing split print-error boundary: {needle}")
|
raise SystemExit(f"RCS print shim missing split print-error boundary: {needle}")
|
||||||
|
|
||||||
|
rtapi_compat_shim = Path("core/wasm_shims/rtapi_compat.cc").read_text(encoding="utf-8")
|
||||||
|
for needle in [
|
||||||
|
"rtapi_snprintf",
|
||||||
|
"std::vsnprintf(buf, static_cast<std::size_t>(size), fmt, ap)",
|
||||||
|
]:
|
||||||
|
if needle not in rtapi_compat_shim:
|
||||||
|
raise SystemExit(f"RTAPI compatibility shim missing userspace snprintf boundary: {needle}")
|
||||||
|
|
||||||
for phrase in [
|
for phrase in [
|
||||||
"must not add CNC behavior",
|
"must not add CNC behavior",
|
||||||
"must not expand the temporary smoke parser",
|
"must not expand the temporary smoke parser",
|
||||||
@@ -241,6 +260,8 @@ for phrase in [
|
|||||||
"negative-status short-circuit behavior",
|
"negative-status short-circuit behavior",
|
||||||
"LinuxCNC `rcs_print_error` split entry points",
|
"LinuxCNC `rcs_print_error` split entry points",
|
||||||
"without native print routing",
|
"without native print routing",
|
||||||
|
"LinuxCNC userspace `rtapi_snprintf()` formatting",
|
||||||
|
"`uspace_common.h` `vsnprintf()` implementation path",
|
||||||
"./check-linuxcnc-wasm-shims-source-map.sh",
|
"./check-linuxcnc-wasm-shims-source-map.sh",
|
||||||
"does not interpret G-code",
|
"does not interpret G-code",
|
||||||
]:
|
]:
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ only; it must not add CNC behavior and must not expand the temporary smoke parse
|
|||||||
| `core/wasm_shims/nml_status_shim.cc` | `src/libnml/nml/nmlmsg.cc`, `src/libnml/nml/stat_msg.cc` | Provides NML status constructors needed by source-linked EMC status objects. |
|
| `core/wasm_shims/nml_status_shim.cc` | `src/libnml/nml/nmlmsg.cc`, `src/libnml/nml/stat_msg.cc` | Provides NML status constructors needed by source-linked EMC status objects. |
|
||||||
| `core/wasm_shims/python_c_api_shim.cc` | `src/emc/rs274ngc/interp_python.cc`, `src/emc/rs274ngc/interp_namedparams.cc`, `src/emc/rs274ngc/gcodemodule.cc`, `src/emc/pythonplugin/python_plugin.cc` | Satisfies Python C API symbols while Python/Boost.Python remap paths remain tracked blockers. |
|
| `core/wasm_shims/python_c_api_shim.cc` | `src/emc/rs274ngc/interp_python.cc`, `src/emc/rs274ngc/interp_namedparams.cc`, `src/emc/rs274ngc/gcodemodule.cc`, `src/emc/pythonplugin/python_plugin.cc` | Satisfies Python C API symbols while Python/Boost.Python remap paths remain tracked blockers. |
|
||||||
| `core/wasm_shims/rcs_print_shim.cc` | `src/libnml/rcs/rcs_print.cc`, `src/libnml/rcs/rcs_print.hh` | Provides the LinuxCNC `rcs_print_error` split entry points used by NML validation without native print routing. |
|
| `core/wasm_shims/rcs_print_shim.cc` | `src/libnml/rcs/rcs_print.cc`, `src/libnml/rcs/rcs_print.hh` | Provides the LinuxCNC `rcs_print_error` split entry points used by NML validation without native print routing. |
|
||||||
| `core/wasm_shims/rtapi_compat.cc` | `src/rtapi/uspace_common.h`, `src/rtapi/rtapi.h` | Provides userspace RTAPI formatting declarations used by RS274/NML code. |
|
| `core/wasm_shims/rtapi_compat.cc` | `src/rtapi/uspace_common.h`, `src/rtapi/rtapi.h` | Provides LinuxCNC userspace `rtapi_snprintf()` formatting by following the `rtapi.h` declaration and `uspace_common.h` `vsnprintf()` implementation path. |
|
||||||
| `core/wasm_shims/tooldata/tooldata_mmap_backend.cc` | `src/emc/tooldata/tooldata_mmap.cc` | Replaces native mmap storage with an in-memory WASM-safe backend for probes. |
|
| `core/wasm_shims/tooldata/tooldata_mmap_backend.cc` | `src/emc/tooldata/tooldata_mmap.cc` | Replaces native mmap storage with an in-memory WASM-safe backend for probes. |
|
||||||
| `core/wasm_shims/tooldata/tooldata_runtime_stubs.cc` | `src/emc/tooldata/tooldata_nml.cc`, `src/emc/tooldata/tooldata_db.cc` | Satisfies NML and external tool database entry points without native services, preserving inactive-DB return values. |
|
| `core/wasm_shims/tooldata/tooldata_runtime_stubs.cc` | `src/emc/tooldata/tooldata_nml.cc`, `src/emc/tooldata/tooldata_db.cc` | Satisfies NML and external tool database entry points without native services, preserving inactive-DB return values. |
|
||||||
| `core/wasm_shims/pythonplugin/python_plugin.cc` | `src/emc/pythonplugin/python_plugin.cc`, `src/emc/pythonplugin/python_plugin.hh` | Keeps LinuxCNC PythonPlugin API and negative-status short-circuit behavior available while Python execution is disabled for browser-safe probes. |
|
| `core/wasm_shims/pythonplugin/python_plugin.cc` | `src/emc/pythonplugin/python_plugin.cc`, `src/emc/pythonplugin/python_plugin.hh` | Keeps LinuxCNC PythonPlugin API and negative-status short-circuit behavior available while Python execution is disabled for browser-safe probes. |
|
||||||
|
|||||||
Reference in New Issue
Block a user