Split the OS out to ecto/fxos; add loon run --unchecked - #94
Merged
Conversation
The OS — the os/ library, the RISC-V unikernel (crates/loon-kernel), and the design doc — now lives at https://github.com/ecto/fxos, with history. Loon keeps the seam: `loon image` and the boot-image format (eir/image.rs), pinned by tests/boot_image.rs. That format is the ABI fxos consumes; fxos depends on Loon as an installed tool, not a crate. Removed here: crates/loon-kernel, os/, samples/os-handlers.oo, tests/loon_os.rs (ported 1:1 to fxos as os/tests/*.oo + os/test.sh) and tests/unikernel_boot.rs (now fxos CI). The old design-doc path is left as a pointer. `loon run --unchecked` skips the static pass and goes straight to the VM, which still fails loudly at runtime. Added because the split surfaced that the OS library does not pass the checker (~110 errors: heterogeneous maps used as records, effect ops declared in a `use`d module invisible to the checker, a few infinite types) even though it is dynamically correct — the old Rust harness only aborted on module errors, so nobody noticed. The flag is the honest interim; the checker gap is the real bug and stays tracked here (docs/plans/2026-07-01-loon-os.md). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #93 (merge that first — it lands the framebuffer commit this removes).
The OS moved to its own repo: https://github.com/ecto/fxos — the
os/library, the RISC-V unikernel (
crates/loon-kernel, nowfxk), and thedesign doc, with full history via
git filter-repo.What Loon keeps
The seam:
loon imageand the boot-image format (eir/image.rs), pinned bytests/boot_image.rs. That's the ABI fxos consumes. fxos depends on Loon as aninstalled tool (
cargo install loon-cli), not a crate — itsbuild.rsshells out to
loon image.What leaves
crates/loon-kernel/,os/,samples/os-handlers.oo,tests/loon_os.rs(ported 1:1 to fxos as
os/tests/*.oowith; expect:assertions + adependency-free
os/test.sh— all 15 pass there),tests/unikernel_boot.rs(now fxos CI). The old design-doc path stays as a pointer.
loon run --unchecked— and whySkips the static checker and goes straight to the VM (which still fails loudly
at runtime). Added because the split surfaced something the old harness hid:
The OS library does not pass Loon's checker. ~110 errors — heterogeneous
maps used as records (
{:pid 1 :value v}vs{:pid 1 :step n}→ E0207),effect ops declared in a
used module invisible to the checker (Rand has no operation int→ E0402), a few infinite types. It is dynamically correct;every demo and all 15 tests pass.
tests/loon_os.rscalledeval_eir_with_base_dirdirectly, which only aborts on module errors, sothis was never visible.
loon run os/demo-anything.oohas never worked.The flag is the honest interim so fxos can run its suite. The checker gap is
the real bug and it belongs here — I've left it documented in
docs/plans/2026-07-01-loon-os.mdrather than papering over it. Happy to takeit on next; it's not small.
Reviewer notes
boot_image.rscomments now point at fxos's decoder.CLAUDE.mdupdated: kernel section removed, fxos pointer added.🤖 Generated with Claude Code