Context
The home-lang repo currently contains substantial OS-level packages (~56k LOC) that conceptually 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 |
Living in the language repo, they bloat clone size, blur the language's scope, and force every language contributor to wade through OS code. The right home for them is here.
Blocker
- home-lang/home #6 — Split kernel/OS packages out to home-os (https://github.com/home-lang/home/issues/6)
- That issue handles the source-side of the split. This issue handles the receiving side.
Scope (once unblocked)
- Receive the imported packages under a sensible layout (likely under
kernel/packages/orlib/) - Reconcile any duplication with what already exists in
kernel/src/(e.g. is the importedkernelpackage competing with ourkernel/src/modules, or complementary?) - Update import paths everywhere — anywhere we currently
import "..../home/packages/kernel/..."becomes a local import - Update CLAUDE.md
Kernel Featuressection to reflect that those packages now live here, not at~/Code/home/packages/kernel/ - Update
scripts/build-rpi5.shand friends — they currentlycpboot.s out of the home repo's kernel package - Verify CI still builds after the move
Risks
- Significant import-path churn across both repos at once — coordinate with the home-lang side to land within the same window
- Duplication: we may discover the imported
kernelpackage and our ownkernel/src/overlap heavily (e.g. both define memory management). Need to dedupe before / during the move, not after.
Why this matters
- Single source of truth: kernel code lives in the OS repo, language code lives in the language repo
- Reduces home-lang's clone size by ~50% (per LOC) and makes each repo's purpose obvious