Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
| Comment: | Merge 3.6b: Placing a guest image at boot
Reviewed against docs/tasks/3.6b.md; verdict merge for x86_64 after one change, aarch64 pending until the seed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
bf4379a1321d12ed1500f905f13b88fd |
| User & Date: | x86-1-glint 2026-11-09 17:17:19.642 |
|
2026-11-09
| ||
| 17:18 |
Phase 4 starts on x86_64: task 4.1 (x86_64), full exception vectors
Claim: docs/tasks/4.1.md is 4.1's x86_64 half and the shared dispatcher. The stubs return through iretq when the dispatcher handles a trap. #BP is the one handled cause, shown by a breakpoint command whose shell keeps running, and every other cause keeps 2.7's report line for line. docs/phases/04-traps.md records the order while x86-1 can't build aarch64: x86_64 halves first, aarch64 halves as their own check-ins, and 4.3b may precede 4.3a. Passage: docs/WORKFLOW.md, Handing out a slice, step 1; the maintainer's 'Try to let Glint get through the book implementation' (ocx-console 363063f81e). Demonstration: the stubs' layout and report path were read in boot/vectors_x86_64.S and .cr. The order change departs from the plan's aarch64-first rule only until the seed lands, and says so. Size: one new task, 8 lines in the phase document. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: d2ca034c51 user: x86-1-glint tags: trunk | |
| 17:17 |
Merge 3.6b: Placing a guest image at boot
Reviewed against docs/tasks/3.6b.md; verdict merge for x86_64 after one change, aarch64 pending until the seed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: bf4379a132 user: x86-1-glint tags: trunk | |
| 17:17 |
3.6b: Placing a guest image at boot (x86_64 now; aarch64 pending until the seed)
Claim: when the preload holds guest.efi, a native boot parses it in place with 3.6's parser, builds a 16 MiB guest space, and loads it with GuestSpace#load 2 MiB into guest RAM. Every write goes through the space's own translate, page by page, so no address in the image can reach Glint's memory. Each section is copied up to its virtual size and zero-filled to it, and its DIR64 relocations are applied, including one split across pages. The boot prints Guest space: and Guest image: with a CRC32 of the placed image. A refused image prints its status and the boot goes on; without guest.efi nothing is built. The space is kept for Phase 4. bin/glint-run gains --guest PATH. Passage: xv6 ยง3.7: 'A program section header's filesz may be less than the memsz, indicating that the gap between them should be filled with zeroes (for C global variables) rather than read from the file.' Demonstration: on x86-1, bin/glint-run x86_64 --guest spec/fixtures/guest/reloc_x86_64.efi printed 'Guest space: 16 MiB at 0x0, host 0x1a0000' and 'Guest image: guest.efi, 16 KiB at 0x200000, entry 0x201000, 8 relocations, crc32 0x4765cbdb'. The CRC equals the host's placement of the fixture at 0x200000 (spec/support/guest_placement.cr). A boot without --guest prints no Guest line. crystal spec spec/guest_load_spec.cr spec/pe_image_spec.cr spec/image_initialization_spec.cr: 967 examples, 0 failures, 2 pending. spec/run/phase3_spec.cr, the phase demo: 10 examples, 0 failures, 5 pending (aarch64). Full suite: 1702 examples, 13 failures, 2 errors, 26 pending. Every failure is an aarch64 build or the glint-build all step, which x86-1's X86-only LLVM can't do. The x86_64 boots are unchanged. Codex wrote it from docs/tasks/3.6b.md. Review: Codex also wrote spec/run/phase3_spec.cr, the phase demo the plan describes; kept. The reviewer made one change: a section copies min(file size, virtual size), so file padding past VirtualSize can't land on the next section. Not shown: aarch64, which runs when the seed lands. Size: 171 non-spec lines added, 11 removed; largest new function GuestSpace#load, 931 bytes. BOOTX64.EFI 176,640 to 184,832 bytes. The exported glint_pe_parse from 3.6 is gone, now that the boot calls the parser. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX Leaf check-in: c8ce2a3894 user: x86-1-glint tags: slice/3.6b | |
| 16:38 |
Task 3.6b: Placing a guest image at boot (x86_64 now)
Claim: docs/tasks/3.6b.md states slice 3.6b as a task, run on x86_64 now with aarch64 steps pending until the seed, as 3.6 was. It names where the lines go (after Heap.check in boot/efi_main.cr), the x86_64 addresses (space at 0x0, image at 0x200000), and the host-computed CRC check. Passage: docs/WORKFLOW.md, Handing out a slice, step 1; the maintainer's 'Try to let Glint get through the book implementation' (ocx-console 363063f81e). Demonstration: the facts it names were read in mem/guest_space.cr (BASE 0 on x86_64), boot/preload.cr, boot/native_table.cr (crc32) and boot/efi_main.cr lines 140-155. Size: one new file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: d71f03ad10 user: x86-1-glint tags: trunk | |