|
| 1 | +# Contributing to LinxCoreModel |
| 2 | + |
| 3 | +LinxCoreModel is the Rust modeling workspace under `tools/LinxCoreModel` in the |
| 4 | +larger `linx-isa` superproject. |
| 5 | + |
| 6 | +## Scope and Ownership |
| 7 | + |
| 8 | +- Keep repository-local changes inside this workspace unless the work explicitly |
| 9 | + requires a superproject integration change. |
| 10 | +- Do not reintroduce `linxcore-*` crate names inside this workspace. The crate |
| 11 | + graph is now `camodel`, `funcmodel`, `cosim`, `isa`, `elf`, `runtime`, |
| 12 | + `trace`, `dse`, and `lx-tools`. |
| 13 | +- Keep owner boundaries explicit. In particular: |
| 14 | + - `camodel` uses domain/stage modules |
| 15 | + - `funcmodel` uses engine/memory/syscall/trace domains |
| 16 | + - shared CLI logic belongs in `crates/lx-tools/src/cli/` |
| 17 | + |
| 18 | +## Required Local Checks |
| 19 | + |
| 20 | +Run these before opening or updating a pull request: |
| 21 | + |
| 22 | +```bash |
| 23 | +bash tools/ci/check_repo_layout.sh |
| 24 | +bash tools/regression/run_crosschecks.sh --require-smoke |
| 25 | +``` |
| 26 | + |
| 27 | +If you do not have a local bring-up ELF under |
| 28 | +`out/bringup/linux_user_compiler_smoke_O0.elf`, you can still run the non-smoke |
| 29 | +gates: |
| 30 | + |
| 31 | +```bash |
| 32 | +bash tools/regression/run_crosschecks.sh |
| 33 | +``` |
| 34 | + |
| 35 | +## Pull Requests |
| 36 | + |
| 37 | +- Keep changes focused. Do not mix workspace refactors, behavior changes, and |
| 38 | + unrelated superproject edits in one PR. |
| 39 | +- Include validation evidence and note whether the smoke/crosscheck gates were |
| 40 | + run with a local ELF or in test-only mode. |
| 41 | +- Update docs when you change public crate names, verification commands, or |
| 42 | + owner/module boundaries. |
| 43 | + |
| 44 | +## Superproject Relationship |
| 45 | + |
| 46 | +This repository is intentionally narrower than the `linx-isa` superproject. Use |
| 47 | +superproject governance only where it directly applies here: |
| 48 | + |
| 49 | +- mirror reusable patterns like `tools/ci`, `tools/regression`, and |
| 50 | + `docs/bringup/gates` |
| 51 | +- do not copy unrelated kernel/compiler/emulator process into this repo |
| 52 | +- do not rename architectural references to “LinxCore” or “LinxISA” in the |
| 53 | + wider superproject just because this workspace dropped redundant crate |
| 54 | + prefixes |
0 commit comments