尽快推进:收紧runtime shim源码锚点

This commit is contained in:
cnc
2026-06-05 09:28:22 +08:00
parent a89c107676
commit 3c72356c92
2 changed files with 46 additions and 4 deletions

View File

@@ -17,7 +17,7 @@ only; it must not add CNC behavior and must not expand the temporary smoke parse
| `core/wasm_shims/dlfcn.cc` | `src/emc/rs274ngc/interp_base.cc` | Satisfies LinuxCNC `interp_base.cc` dynamic loader calls and RTLD flags for browser-safe probes while keeping dynamic loading unavailable. |
| `core/wasm_shims/emc_status_shim.cc` | `src/emc/sai/dummyemcstat.cc` | Provides the detached LinuxCNC `EMC_STAT` singleton shape without task/NML startup. |
| `core/wasm_shims/gettext_shim.cc` | `src/emc/rs274ngc/interp_internal.hh` | Preserves LinuxCNC `_()` diagnostic call sites by satisfying `gettext()` while leaving browser gettext catalogs unavailable. |
| `core/wasm_shims/linuxcnc_runtime_shim.cc` | `src/emc/rs274ngc/gcodemodule.cc`, `src/emc/task/emctaskmain.cc`, `src/emc/task/taskclass.cc`, `src/emc/rs274ngc/interp_namedparams.cc`, `include/hal.h`, `src/hal/hal_lib.c`, `src/emc/rs274ngc/rs274ngc_pre.cc` | Keeps preview/task, builtin Python module, unavailable HAL lookup, and `wordexp()` edges compile-safe. |
| `core/wasm_shims/linuxcnc_runtime_shim.cc` | `src/emc/rs274ngc/gcodemodule.cc`, `src/emc/task/emctaskmain.cc`, `src/emc/task/taskclass.cc`, `src/emc/rs274ngc/interp_namedparams.cc`, `include/hal.h`, `src/hal/hal_lib.c`, `src/emc/rs274ngc/rs274ngc_pre.cc` | Keeps preview/task, builtin module stubs, unavailable HAL lookup, and `wordexp()` edges compile-safe. |
| `core/wasm_shims/nml_status_shim.cc` | `src/libnml/nml/nmlmsg.cc`, `src/libnml/nml/stat_msg.cc` | Provides LinuxCNC NML status constructors, clear behavior, and `RCS_STAT_MSG` default status fields 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/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. |
@@ -36,15 +36,20 @@ only; it must not add CNC behavior and must not expand the temporary smoke parse
- `core/wasm_shims/emc_status_shim.cc` must stay limited to the detached
LinuxCNC `EMC_STAT` singleton from `src/emc/sai/dummyemcstat.cc`; it must not
pull in task startup, NML channels, or operator callback behavior.
- `core/wasm_shims/linuxcnc_runtime_shim.cc` must keep `_task=0` for preview,
- `core/wasm_shims/linuxcnc_runtime_shim.cc` must keep preview `_task=0`,
matching `src/emc/rs274ngc/gcodemodule.cc`; it must not switch browser-safe probes into task mode.
- The runtime shim's builtin module stubs must match LinuxCNC's
`interpreter`/`emccanon` inittab shape from `gcodemodule.cc` and
`taskclass.cc` while returning null module pointers; they must not become
Python execution.
- The HAL lookup shim covers `hal_get_pin_value_by_name()`,
`hal_get_signal_value_by_name()`, and `hal_get_param_value_by_name()` from
`src/emc/rs274ngc/interp_namedparams.cc`, `include/hal.h`, and
`src/hal/hal_lib.c`; it must leave HAL values unavailable by returning `-1`,
`HAL_TYPE_UNINITIALIZED`, and null data pointers.
- `wordexp()` support is limited to the browser-safe path expansion needed by
`src/emc/rs274ngc/rs274ngc_pre.cc`; it must not become a shell expansion feature.
- `wordexp()` support is limited to the single-word `wordexp()` path expansion
and `wordfree()` cleanup needed by `src/emc/rs274ngc/rs274ngc_pre.cc` for
basename, program prefix, and subroutine-directory lookups; it must not become a shell expansion feature.
## Python Shim Boundaries