满庭芳·源流归一
结论:LinuxCNC rs274ngc 源码移植边界继续收拢。已将 rs274ngc 头文件纳入 manifest 跟踪,core 编译组仍只包含可编译源文件;启用 CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND 时 API 默认使用 LinuxCNC rs274 后端;M428/M429/M430 与 5axis/TRT/TDR/RTCP 相关路径继续保持来自 LinuxCNC 源码或 remap 配置的薄桥接。 验证:./test-linuxcnc-source-syntax.sh;./test-linuxcnc-api-native.sh;./test-native.sh;./test-linuxcnc-source-link.sh。
This commit is contained in:
32
docs/linuxcnc-source-policy.md
Normal file
32
docs/linuxcnc-source-policy.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# LinuxCNC Source Policy
|
||||
|
||||
The simulator must not grow independently designed functional behavior.
|
||||
Functional behavior must come from LinuxCNC source code.
|
||||
|
||||
Allowed project code:
|
||||
|
||||
- Thin adapters between LinuxCNC source code and the simulator C API.
|
||||
- Platform shims needed to compile LinuxCNC code for native tests or wasm.
|
||||
- Event serialization, test fixtures, build scripts, and documentation.
|
||||
- Temporary smoke scaffolding only when it is explicitly marked as temporary.
|
||||
|
||||
Not allowed as final behavior:
|
||||
|
||||
- Hand-written G-code interpretation semantics.
|
||||
- Hand-derived kinematics, RTCP, coordinate transform, cutter compensation, canned cycle, modal, parameter, or expression behavior.
|
||||
- Behavior copied from documentation, controller intuition, or examples without checking the LinuxCNC implementation.
|
||||
|
||||
Required workflow for every functional change:
|
||||
|
||||
1. Identify the LinuxCNC source file and function that defines the behavior.
|
||||
2. Add or update a test that demonstrates the LinuxCNC behavior.
|
||||
3. Port, wrap, or route to that LinuxCNC implementation.
|
||||
4. Record the source file/function in code comments or nearby documentation when the mapping is not obvious.
|
||||
5. Run `./test-native.sh` and `./test-linuxcnc-source-link.sh`.
|
||||
|
||||
Current temporary exceptions:
|
||||
|
||||
- The smoke parser exists only to exercise the public API and UI while the LinuxCNC RS274 backend is being wired in.
|
||||
- RTCP pivot behavior is limited to LinuxCNC source-backed switchkins paths; unsupported switchkins types must not fall back to hand-derived geometry.
|
||||
|
||||
Both exceptions should shrink over time. New functional behavior should not be added to them unless it is directly copied from, or routed to, LinuxCNC source code.
|
||||
Reference in New Issue
Block a user