Files
linuxcncWebWASM/coverage/userkins-kinematics.report.json

226 lines
6.4 KiB
JSON

{
"configuration_candidates": [
{
"coordinates": "XYZCAB",
"id": "shipped-scara-userk-slot",
"implementation": "identity template",
"kind": "real",
"path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini",
"scan": true
},
{
"coordinates": "XYZABC",
"id": "shipped-puma560-genser",
"implementation": "ugenser static adapter over genser",
"kind": "real",
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini",
"scan": true
},
{
"id": "static-descriptor-regression",
"implementations": [
"userk.identity",
"ugenser.static"
],
"kind": "derived",
"path": "wasm-core/tests/sim_userkins_test.c",
"purpose": "ABI/capability checks, FK/IK calls, switch slot binding, and native/WASM comparison"
}
],
"error_boundaries": {
"abi_version": -710,
"capability": -711,
"dynamic_module": -712,
"missing_or_uninitialized_module": -708
},
"implementation_status": "verified",
"native_wasm": {
"native_command": "build-native/sim_userkins_test",
"status": "passed",
"wasm_command": "node build-wasm/sim_userkins_wasm_test.js"
},
"oracle": {
"blocked_samples": [
"userk identity template",
"ugenser static adapter",
"ABI mismatch",
"capability mismatch",
"dynamic module rejection",
"uninitialized module"
],
"reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; the deprecated ugenser CLI is not an approved replacement",
"status": "blocked"
},
"report_sha256": "43f7a1918c7f09cea97e0ac400f6572ff9b9051fccc22cde5b70765dd1e735f1",
"samples": {
"byte_identical_json": true,
"native": {
"abi_error": -710,
"abi_version": 1,
"active_mode": 2,
"capabilities": 7,
"capability_error": -711,
"dynamic_path_error": -712,
"identity": {
"forward_calls": 1,
"inverse_calls": 1,
"joints": [
10.0,
20.0,
30.0,
5.0,
15.0
],
"pose": [
10.0,
20.0,
30.0,
5.0,
15.0
],
"repeat_hash": 7729967891798573724,
"state_hash": 7729967891798573724
},
"missing_implementation": -708,
"path_name_error": -712,
"schema": "userkins-samples.v1",
"switch_to_user": 0,
"ugenser": {
"forward_calls": 2,
"inverse_calls": 1,
"iterations": 0,
"pose": [
619.051467462,
30.4112378,
-349.855537721,
-173.973089253,
5.329608876,
-19.06581641
],
"repeat_hash": 1161289569922079659,
"residual": 0.0,
"state_hash": 1161289569922079659
},
"uninitialized_error": -708
},
"state_hash_identical": true,
"state_hash_stable": true,
"wasm": {
"abi_error": -710,
"abi_version": 1,
"active_mode": 2,
"capabilities": 7,
"capability_error": -711,
"dynamic_path_error": -712,
"identity": {
"forward_calls": 1,
"inverse_calls": 1,
"joints": [
10.0,
20.0,
30.0,
5.0,
15.0
],
"pose": [
10.0,
20.0,
30.0,
5.0,
15.0
],
"repeat_hash": 7729967891798573724,
"state_hash": 7729967891798573724
},
"missing_implementation": -708,
"path_name_error": -712,
"schema": "userkins-samples.v1",
"switch_to_user": 0,
"ugenser": {
"forward_calls": 2,
"inverse_calls": 1,
"iterations": 0,
"pose": [
619.051467462,
30.4112378,
-349.855537721,
-173.973089253,
5.329608876,
-19.06581641
],
"repeat_hash": 1161289569922079659,
"residual": 0.0,
"state_hash": 1161289569922079659
},
"uninitialized_error": -708
}
},
"schema": "userkins-kinematics-report.v1",
"source_records": {
"genser_functions": {
"path": "linuxcnc/src/emc/kinematics/genserfuncs.c",
"sha256": "e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781"
},
"genser_source": {
"path": "linuxcnc/src/emc/kinematics/genserkins.c",
"sha256": "cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075"
},
"header": {
"path": "wasm-core/include/sim_kinematics.h",
"sha256": "34b08db612056432e08705951032418bf6f6cd2c285bde5743515588fbe484ec"
},
"implementation": {
"path": "wasm-core/src/sim_userkins.c",
"sha256": "cf3a0f3fea81fb63abf3336b87de1971391d7798b4eed3ec826c07bfd300ed0e"
},
"test": {
"path": "wasm-core/tests/sim_userkins_test.c",
"sha256": "13ecf5d2405a0e4c706cde25d93424655108779188c310f75ed36683abed624e"
},
"ugenser_config": {
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini",
"sha256": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c"
},
"ugenser_dh": {
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal",
"sha256": "23758eb7a6a4abe116e1de88140d04e6c9a910d1c378f019d76843a5a3fb6141"
},
"ugenser_source": {
"path": "linuxcnc/src/emc/kinematics/ugenserkins.c",
"sha256": "dee63aebaa11f2867657bc4b9052f6a8e8bd875e06bd8a9df2d3edac9eb1c31d"
},
"userk_config": {
"path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini",
"sha256": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce"
},
"userk_source": {
"path": "linuxcnc/src/emc/kinematics/userkfuncs.c",
"sha256": "146238645955f8d4e2cb0cd34ff44db3a9dad01e149f81c08f8a53c19f1609bc"
}
},
"static_contract": {
"abi_version": 1,
"capabilities": {
"forward": 1,
"inverse": 2,
"sample_mask": 7,
"static": 4
},
"dynamic_host_loading": "forbidden; paths, slash-delimited names, and host shared libraries return SIM_KIN_ERR_DYNAMIC_MODULE",
"implementations": {
"1": "identity",
"2": "genser"
},
"switch_binding": {
"active_after_select": 2,
"slot": 2
}
},
"status": "partial",
"ugenser_scope": {
"adaptation": "reuse the verified statically linked genser FK/IK implementation; do not port gettimeofday, stdin, or HAL process lifecycle",
"legacy_cli_status": "excluded",
"source_warning_present": true
}
}