Context
The language repo currently contains substantial OS-level code that doesn't belong here:
| Package | LOC |
|---|---|
packages/kernel | 43,741 |
packages/bootloader | 2,087 |
packages/iommu | 1,814 |
packages/syslog | 1,553 |
packages/coredump | 1,396 |
packages/dtb | 1,384 |
packages/usb | 1,356 |
packages/modsign | 1,240 |
packages/tpm | 1,198 |
packages/syscall | 634 |
| Total | ~56k LOC |
That's roughly 40% of the repo by package count and a huge chunk by LOC. Consequences:
- Clone time and disk usage are inflated for everyone working on the language
- Scope is muddled — contributors can't tell whether they should be reading kernel code to understand the compiler
- Two audiences (language users, OS users) collide in one issue tracker / docs site / CI
Proposal
- Move kernel/bootloader/iommu/syslog/coredump/dtb/usb/modsign/tpm/syscall to
home-lang/home-os - home-os depends on
home-lang/homeas a language toolchain (the way the linux kernel depends on gcc/clang) - Keep small, language-relevant low-level packages in this repo (e.g.
memory,volatile,intrinsics) - Update docs: language repo docs cover the language only; OS docs live in home-os
Risks / open questions
- Do any compiler packages currently
@importthe OS packages? If so we need to invert the dependency cleanly - CI for OS code is heavier (qemu, kernel boot tests) — splitting it out should actually speed up language CI