From c4d5f261663a82db15dec92b6bb912b3f612471e Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sun, 7 Jun 2026 16:58:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E6=8E=A8=E8=8D=90=E5=BB=BA=E8=AE=AE?= =?UTF-8?q?=EF=BC=8C=E7=BB=A7=E7=BB=AD=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:将 standalone harness 使用的剩余 rs274ngc 解释器核心源文件纳入 vendored LinuxCNC 直接编译探针,验证迁移边界继续来源于 LinuxCNC 源程序。 --- wasm-port/docs/porting-steps-standalone.md | 9 +++ .../tests/native/verify_native_probes.sh | 13 ++++ wasm-port/tools/build_native_probes.sh | 78 +++++++++++++++++++ 3 files changed, 100 insertions(+) diff --git a/wasm-port/docs/porting-steps-standalone.md b/wasm-port/docs/porting-steps-standalone.md index 50f6f5b..8696265 100644 --- a/wasm-port/docs/porting-steps-standalone.md +++ b/wasm-port/docs/porting-steps-standalone.md @@ -450,6 +450,15 @@ Current verified progress: `interp_execute.cc`. These probes keep the next interpreter-core migration work focused on LinuxCNC source entry points and expose missing standalone runtime shims before wrapper behavior is expanded. +- The direct source compile probes now cover the remaining vendored + `rs274ngc` interpreter core files used by the standalone harness: + `modal_state.cc`, `interp_array.cc`, `interp_internal.cc`, + `interp_arc.cc`, `interp_inverse.cc`, `interp_cycles.cc`, + `interp_g7x.cc`, `interp_queue.cc`, `interp_find.cc`, + `interp_namedparams.cc`, `interp_write.cc`, `interp_o_word.cc`, and + `rs274ngc_pre.cc`. `rs274ngc_pre.cc` is compiled with the existing + standalone `UNIT_TEST`/`LINUXCNC_STANDALONE_USE_RS274_PRE_STATE` boundary + that isolates Python runtime integration from the browser simulation core. ## Phase 4: Port INI Parsing Without Editing Upstream diff --git a/wasm-port/tests/native/verify_native_probes.sh b/wasm-port/tests/native/verify_native_probes.sh index 725f9fb..d1b4102 100755 --- a/wasm-port/tests/native/verify_native_probes.sh +++ b/wasm-port/tests/native/verify_native_probes.sh @@ -45,6 +45,19 @@ check_exitcode linuxcnc_interp_convert_source_probe check_exitcode linuxcnc_interp_read_source_probe check_exitcode linuxcnc_interp_check_source_probe check_exitcode linuxcnc_interp_execute_source_probe +check_exitcode linuxcnc_modal_state_source_probe +check_exitcode linuxcnc_interp_array_source_probe +check_exitcode linuxcnc_interp_internal_source_probe +check_exitcode linuxcnc_interp_arc_source_probe +check_exitcode linuxcnc_interp_inverse_source_probe +check_exitcode linuxcnc_interp_cycles_source_probe +check_exitcode linuxcnc_interp_g7x_source_probe +check_exitcode linuxcnc_interp_queue_source_probe +check_exitcode linuxcnc_interp_find_source_probe +check_exitcode linuxcnc_interp_namedparams_source_probe +check_exitcode linuxcnc_interp_write_source_probe +check_exitcode linuxcnc_interp_o_word_source_probe +check_exitcode linuxcnc_rs274ngc_pre_source_probe NAMEDPARAM_STDOUT="$BUILD_DIR/linuxcnc_namedparam_harness.run.stdout.log" grep -Fq "init_named_parameters=0" "$NAMEDPARAM_STDOUT" diff --git a/wasm-port/tools/build_native_probes.sh b/wasm-port/tools/build_native_probes.sh index c3a6e96..d61e183 100755 --- a/wasm-port/tools/build_native_probes.sh +++ b/wasm-port/tools/build_native_probes.sh @@ -477,4 +477,82 @@ build_object_target \ "$VENDOR_DIR/src/emc/rs274ngc/interp_execute.cc" \ COMMON_FLAGS +build_object_target \ + linuxcnc_modal_state_source_probe \ + "$BUILD_DIR/linuxcnc_modal_state_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/modal_state.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_array_source_probe \ + "$BUILD_DIR/linuxcnc_interp_array_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_array.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_internal_source_probe \ + "$BUILD_DIR/linuxcnc_interp_internal_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_internal.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_arc_source_probe \ + "$BUILD_DIR/linuxcnc_interp_arc_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_arc.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_inverse_source_probe \ + "$BUILD_DIR/linuxcnc_interp_inverse_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_inverse.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_cycles_source_probe \ + "$BUILD_DIR/linuxcnc_interp_cycles_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_cycles.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_g7x_source_probe \ + "$BUILD_DIR/linuxcnc_interp_g7x_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_g7x.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_queue_source_probe \ + "$BUILD_DIR/linuxcnc_interp_queue_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_queue.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_find_source_probe \ + "$BUILD_DIR/linuxcnc_interp_find_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_find.cc" \ + COMMON_FLAGS + +build_object_target \ + linuxcnc_interp_namedparams_source_probe \ + "$BUILD_DIR/linuxcnc_interp_namedparams_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_namedparams.cc" \ + COMMON_INI_FLAGS + +build_object_target \ + linuxcnc_interp_write_source_probe \ + "$BUILD_DIR/linuxcnc_interp_write_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_write.cc" \ + COMMON_INI_FLAGS + +build_object_target \ + linuxcnc_interp_o_word_source_probe \ + "$BUILD_DIR/linuxcnc_interp_o_word_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/interp_o_word.cc" \ + COMMON_INI_FLAGS + +build_object_target \ + linuxcnc_rs274ngc_pre_source_probe \ + "$BUILD_DIR/linuxcnc_rs274ngc_pre_source_probe.o" \ + "$VENDOR_DIR/src/emc/rs274ngc/rs274ngc_pre.cc" \ + MINIMAL_FLAGS + echo "native probes complete"