Compare commits

...

12 Commits

Author SHA1 Message Date
cnc
e1708c96ee Document dlfcn shim source basis 2026-06-02 10:05:22 +08:00
cnc
cc7faef3a7 Track RTAPI source basis for wasm shim 2026-06-02 10:01:56 +08:00
cnc
d8c2364816 Track LinuxCNC RCS print source for wasm 2026-06-02 09:57:26 +08:00
cnc
93e83d52bf Track native emc status headers 2026-06-02 09:46:42 +08:00
cnc
c4e174f011 Track wasm emc status headers 2026-06-02 09:42:58 +08:00
cnc
00d62bd61a Track native nml support headers 2026-06-02 09:38:39 +08:00
cnc
c9c5db8e9c Track wasm nml status headers 2026-06-02 09:24:05 +08:00
cnc
26da1e6d9d Track native source-link support sources 2026-06-02 09:19:25 +08:00
cnc
d5c99f99c0 Track wasm ini source boundary 2026-06-02 09:15:18 +08:00
cnc
158fd343c6 Complete native tooldata manifest coverage 2026-06-02 09:09:33 +08:00
cnc
35d341de70 Track native tooldata source boundary 2026-06-02 08:42:18 +08:00
cnc
d6cae8bf56 Bind wasm tooldata runtime sources 2026-06-02 08:33:53 +08:00
6 changed files with 68 additions and 2 deletions

View File

@@ -2,6 +2,8 @@
#include <cstring>
// LinuxCNC source basis: src/emc/rs274ngc/interp_base.cc uses dlopen(),
// dlsym(), dlerror(), RTLD_GLOBAL, and RTLD_NOW for native interpreter loading.
namespace {
thread_local char last_error[128] = "dynamic loading is unavailable in wasm-safe probe";
@@ -27,4 +29,3 @@ int dlclose(void *) {
}
} // extern "C"

View File

@@ -4,6 +4,7 @@
extern "C" {
#endif
/* LinuxCNC source basis: src/emc/rs274ngc/interp_base.cc native loader flags. */
#define RTLD_GLOBAL 0x00100
#define RTLD_NOW 0x00002
@@ -15,4 +16,3 @@ int dlclose(void *handle);
#ifdef __cplusplus
}
#endif

View File

@@ -34,6 +34,9 @@ binding:src/emc/rs274ngc/pyparamclass.cc:Boost.Python bindings; exclude from was
tooldata:src/emc/tooldata/tooldata_common.cc:shared tool table parser/format logic
tooldata:src/emc/tooldata/tooldata_mmap.cc:native mmap implementation; replace for wasm
tooldata:src/emc/tooldata/tooldata_db.cc:external database integration; exclude from wasm core
tooldata:src/emc/tooldata/tooldata_nml.cc:NML tool table backend selected by LinuxCNC TOOL_NML_FLAG
tooldata:src/emc/tooldata/tool_mmap_read.cc:LinuxCNC tooldata mmap reader utility source from tooldata Submakefile
tooldata:src/emc/tooldata/tool_watch.cc:LinuxCNC tooldata watcher utility source from tooldata Submakefile
header:src/emc/rs274ngc/array1.hh:LinuxCNC rs274 header tracked for full interpreter source coverage
header:src/emc/rs274ngc/boost_pyenum_macros.hh:LinuxCNC rs274 Boost.Python enum helper header
header:src/emc/rs274ngc/interp_array_types.hh:LinuxCNC rs274 block array type definitions
@@ -50,5 +53,15 @@ header:src/emc/rs274ngc/rs274ngc.hh:LinuxCNC rs274 public interface header
header:src/emc/rs274ngc/rs274ngc_interp.hh:LinuxCNC rs274 interpreter class header
header:src/emc/rs274ngc/rs274ngc_return.hh:LinuxCNC rs274 return code header
header:src/emc/rs274ngc/units.h:LinuxCNC rs274 units helper header
header:src/emc/tooldata/tooldata.hh:LinuxCNC tooldata declarations used by RS274 and wasm-safe tooldata shims
header:src/emc/nml_intf/emc.hh:LinuxCNC EMC status declarations used by native source-link support objects
header:src/emc/nml_intf/emc_nml.hh:LinuxCNC EMC NML aggregate declarations used by native source-link support objects
header:src/libnml/nml/nmlmsg.hh:LinuxCNC NML message declarations used by native source-link stat_msg support object
header:src/libnml/nml/stat_msg.hh:LinuxCNC status message declarations used by native source-link stat_msg support object
metadata:src/emc/rs274ngc/Submakefile:LinuxCNC rs274 make build metadata tracked for full directory coverage
metadata:src/emc/rs274ngc/meson.build:LinuxCNC rs274 meson build metadata tracked for full directory coverage
metadata:src/emc/tooldata/Submakefile:LinuxCNC tooldata build metadata defining mmap and NML backend source selection
metadata:src/emc/nml_intf/emcops.cc:source basis for native source-link EMC status constructor support object
metadata:src/emc/sai/dummyemcstat.cc:source basis for native source-link emcStatus singleton support object
metadata:src/emc/sai/Submakefile:LinuxCNC SAI build metadata defining dummyemcstat support object
metadata:src/libnml/nml/stat_msg.cc:source basis for native source-link RCS_STAT_MSG support object

View File

@@ -51,7 +51,21 @@ header:src/emc/rs274ngc/rs274ngc.hh:LinuxCNC rs274 public interface header
header:src/emc/rs274ngc/rs274ngc_interp.hh:LinuxCNC rs274 interpreter class header
header:src/emc/rs274ngc/rs274ngc_return.hh:LinuxCNC rs274 return code header
header:src/emc/rs274ngc/units.h:LinuxCNC rs274 units helper header
header:src/emc/ini/inifile.h:LinuxCNC C INI reader declarations exported by ini Submakefile
header:src/emc/ini/inifile.hh:LinuxCNC C++ INI reader declarations used by inifile.cc
header:src/emc/nml_intf/emc.hh:LinuxCNC EMC status declarations used by wasm-safe EMC status shim
header:src/emc/nml_intf/emc_nml.hh:LinuxCNC EMC NML aggregate declarations used by wasm-safe EMC status shim
header:src/libnml/nml/nmlmsg.hh:LinuxCNC NML message declarations used by wasm-safe NMLmsg constructor shim
header:src/libnml/nml/stat_msg.hh:LinuxCNC status message declarations used by wasm-safe RCS_STAT_MSG constructor shim
header:src/libnml/rcs/rcs_print.hh:LinuxCNC RCS print declarations used by wasm-safe NML status diagnostics
header:src/rtapi/rtapi.h:LinuxCNC RTAPI snprintf declarations used by wasm-safe RTAPI compatibility shim
header:src/rtapi/rtapi_string.h:LinuxCNC RTAPI string helpers used by RS274 and RCS print sources
metadata:src/emc/rs274ngc/Submakefile:LinuxCNC rs274 make build metadata tracked for full directory coverage
metadata:src/emc/rs274ngc/meson.build:LinuxCNC rs274 meson build metadata tracked for full directory coverage
metadata:src/emc/ini/Submakefile:LinuxCNC ini build metadata defining liblinuxcncini source and exported headers
metadata:src/libnml/nml/stat_msg.cc:source basis for wasm-safe RCS_STAT_MSG constructor shim
metadata:src/libnml/nml/nmlmsg.cc:source basis for wasm-safe NMLmsg constructor shim
metadata:src/libnml/rcs/rcs_print.cc:source basis for wasm-safe RCS print diagnostic shim
metadata:src/rtapi/uspace_common.h:source basis for wasm-safe RTAPI snprintf compatibility shim
metadata:src/emc/tooldata/tooldata_db.cc:source basis for wasm-safe tooldata runtime export shim
metadata:src/emc/tooldata/tooldata_nml.cc:source basis for wasm-safe tooldata runtime NML export shim

View File

@@ -1409,6 +1409,8 @@ grep -F 'noncopyable(const noncopyable &) = delete;' core/wasm_shims/boost/nonco
test -f core/wasm_shims/libgen.h
grep -F 'inline char *basename(const char *path)' core/wasm_shims/libgen.h >/dev/null
grep -F 'return basename(const_cast<char *>(path));' core/wasm_shims/libgen.h >/dev/null
grep -F 'LinuxCNC source basis: src/emc/rs274ngc/interp_base.cc uses dlopen(),' core/wasm_shims/dlfcn.cc >/dev/null
grep -F 'LinuxCNC source basis: src/emc/rs274ngc/interp_base.cc native loader flags.' core/wasm_shims/dlfcn.h >/dev/null
grep -F 'extern "C" int wordexp(const char *words, wordexp_t *pwordexp, int)' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null
grep -F 'extern "C" void wordfree(wordexp_t *pwordexp)' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null
grep -F 'EMC_STAT *emcStatus = new EMC_STAT;' core/wasm_shims/emc_status_shim.cc >/dev/null

View File

@@ -35,6 +35,42 @@ preflight_cache_dir="$build_dir/preflight-cache"
./check-linuxcnc-inputs-cached.sh --cache-dir "$preflight_cache_dir" linuxcnc-rs274-wasm-source-files.txt --require-rs274-complete
./check-linuxcnc-inputs-cached.sh --cache-dir "$preflight_cache_dir" linuxcnc-kinematics-source-files.txt --require-kinematics-complete
./check-linuxcnc-switchkins-remap-table-cached.sh --cache-dir "$preflight_cache_dir" linuxcnc-kinematics-source-files.txt
grep -F 'tooldata:src/emc/tooldata/tooldata_nml.cc:NML tool table backend selected by LinuxCNC TOOL_NML_FLAG' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'tooldata:src/emc/tooldata/tool_mmap_read.cc:LinuxCNC tooldata mmap reader utility source from tooldata Submakefile' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'tooldata:src/emc/tooldata/tool_watch.cc:LinuxCNC tooldata watcher utility source from tooldata Submakefile' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'header:src/emc/tooldata/tooldata.hh:LinuxCNC tooldata declarations used by RS274 and wasm-safe tooldata shims' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'metadata:src/emc/tooldata/Submakefile:LinuxCNC tooldata build metadata defining mmap and NML backend source selection' linuxcnc-rs274-source-files.txt >/dev/null
linuxcnc_root=${LINUXCNC_ROOT:-../linuxcnc}
linuxcnc_root=$(cd "$linuxcnc_root" && pwd)
tooldata_manifest_entries=$(./list-linuxcnc-source-manifest-sources.sh linuxcnc-rs274-source-files.txt all | grep '^src/emc/tooldata/' | sort)
tooldata_source_entries=$(find "$linuxcnc_root/src/emc/tooldata" -maxdepth 1 -type f -printf 'src/emc/tooldata/%f\n' | sort)
if ! diff -u <(printf '%s\n' "$tooldata_source_entries") <(printf '%s\n' "$tooldata_manifest_entries") >/dev/null; then
echo "native rs274 manifest no longer covers the full LinuxCNC tooldata source directory" >&2
diff -u <(printf '%s\n' "$tooldata_source_entries") <(printf '%s\n' "$tooldata_manifest_entries") >&2 || true
exit 1
fi
grep -F 'metadata:src/emc/tooldata/tooldata_db.cc:source basis for wasm-safe tooldata runtime export shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'metadata:src/emc/tooldata/tooldata_nml.cc:source basis for wasm-safe tooldata runtime NML export shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/emc/ini/inifile.h:LinuxCNC C INI reader declarations exported by ini Submakefile' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/emc/ini/inifile.hh:LinuxCNC C++ INI reader declarations used by inifile.cc' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'metadata:src/emc/ini/Submakefile:LinuxCNC ini build metadata defining liblinuxcncini source and exported headers' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/emc/nml_intf/emc.hh:LinuxCNC EMC status declarations used by wasm-safe EMC status shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/emc/nml_intf/emc_nml.hh:LinuxCNC EMC NML aggregate declarations used by wasm-safe EMC status shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/libnml/nml/nmlmsg.hh:LinuxCNC NML message declarations used by wasm-safe NMLmsg constructor shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/libnml/nml/stat_msg.hh:LinuxCNC status message declarations used by wasm-safe RCS_STAT_MSG constructor shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/libnml/rcs/rcs_print.hh:LinuxCNC RCS print declarations used by wasm-safe NML status diagnostics' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'metadata:src/libnml/rcs/rcs_print.cc:source basis for wasm-safe RCS print diagnostic shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/rtapi/rtapi.h:LinuxCNC RTAPI snprintf declarations used by wasm-safe RTAPI compatibility shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'header:src/rtapi/rtapi_string.h:LinuxCNC RTAPI string helpers used by RS274 and RCS print sources' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'metadata:src/rtapi/uspace_common.h:source basis for wasm-safe RTAPI snprintf compatibility shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null
grep -F 'metadata:src/emc/nml_intf/emcops.cc:source basis for native source-link EMC status constructor support object' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'metadata:src/emc/sai/dummyemcstat.cc:source basis for native source-link emcStatus singleton support object' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'metadata:src/emc/sai/Submakefile:LinuxCNC SAI build metadata defining dummyemcstat support object' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'metadata:src/libnml/nml/stat_msg.cc:source basis for native source-link RCS_STAT_MSG support object' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'header:src/emc/nml_intf/emc.hh:LinuxCNC EMC status declarations used by native source-link support objects' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'header:src/emc/nml_intf/emc_nml.hh:LinuxCNC EMC NML aggregate declarations used by native source-link support objects' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'header:src/libnml/nml/nmlmsg.hh:LinuxCNC NML message declarations used by native source-link stat_msg support object' linuxcnc-rs274-source-files.txt >/dev/null
grep -F 'header:src/libnml/nml/stat_msg.hh:LinuxCNC status message declarations used by native source-link stat_msg support object' linuxcnc-rs274-source-files.txt >/dev/null
grep -F '#include "linuxcnc_switchkins_remap_table.inc"' core/src/cnc_sim_api.cpp >/dev/null
grep -F 'switchkins: options.switchkins' web/src/wasm-core.js >/dev/null
grep -F 'remap: options.remap' web/src/wasm-core.js >/dev/null