Files
wasm-simulator/docs/linuxcnc-opfs-source-map.md
cnc b3b1117ec9 参考所有分组,完成尽量多的内容:锁定OPFS源码映射结论
结论:新增 OPFS source-map 文档和同步守卫,绑定 interp_internal.hh 默认参数文件、rs274ngc_pre.cc restore/save 语义与浏览器 OPFS 边界;未扩展 smoke 功能。
2026-06-04 14:48:07 +08:00

42 lines
1.5 KiB
Markdown

# LinuxCNC OPFS source map
This map records the source basis for browser-side LinuxCNC parameter-file
persistence. It is a policy and bridge map only; it must not add independent filesystem behavior or expand the temporary smoke parser.
## LinuxCNC Source Basis
- `src/emc/rs274ngc/interp_internal.hh` defines
`RS274NGC_PARAMETER_FILE_NAME_DEFAULT` as `rs274ngc.var`.
- `src/emc/rs274ngc/interp_internal.hh` defines
`RS274NGC_PARAMETER_FILE_BACKUP_SUFFIX` as `.bak`.
- `src/emc/rs274ngc/rs274ngc_pre.cc` implements
`Interp::restore_parameters()` for parameter-file reads.
- `src/emc/rs274ngc/rs274ngc_pre.cc` implements
`Interp::save_parameters()` for `filename + ".new"`, backup, and replacement
writes.
## Browser Bridge Boundary
- `web/src/wasm-core.js` must keep LinuxCNC parameter persistence routed
through an OPFS workspace.
- Browser contexts with OPFS support must not disable OPFS.
- Browser app and wasm bridge code must not use Local Storage, IndexedDB,
File Picker, Directory Picker, WebKit filesystem, or FileReader persistence
paths for CNC programs, LinuxCNC parameter files, or mirrored workspace files.
- `web/src/app.js` must parse browser programs through
`parseFileWithParameterFile()` so the program file and LinuxCNC parameter
state both live under OPFS.
## Checks
Run:
```bash
./check-linuxcnc-opfs-source-map.sh
./test-native.sh
./test-linuxcnc-source-link.sh
```
`check-linuxcnc-opfs-source-map.sh` keeps this document, the LinuxCNC source
anchors, and the browser bridge guardrails synchronized.