Tags: cyyeh/ccc
Tags
docs: align Phase 3 deck status label with Phase 1 and 2 (✓ complete) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Plan 2.D: process + scheduler stub + yield + ticks observed (#8) * feat(kernel): add Process struct and the_process singleton (Plan 2.D Task 1) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(kernel): add scheduler stub (schedule + context_switch_to) (Plan 2.D Task 2) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor(kernel): route kmain + trampoline through proc.the_process (Plan 2.D Task 4) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(kernel): timer ISR bumps ticks_observed and invokes scheduler (Plan 2.D Task 5) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(kernel): sys_yield + ticks_observed output + e2e verifier + TIMESLICE tune (Plan 2.D Tasks 6-9) - syscall.zig: wire real sys_yield (calls sched.schedule); sys_exit now prints "ticks observed: {d}\n" before halting. - userprog.zig: add yield ecall between write and exit; append a 100k busy-loop so wall-clock time accumulates for timer ticks to fire. - verify_e2e.zig: new host-compiled tool that spawns ccc on kernel.elf, captures stdout, asserts the Phase 2 DoD shape (variable N > 0). - build.zig: e2e-kernel now runs verify_e2e instead of expectStdOutEqual (which couldn't express a runtime-varying N). - boot.S/mtimer.S: TIMESLICE 1_000_000 -> 10_000 (~1 ms @ 10 MHz nominal) so the short user program sees several ticks. With these changes, `ccc kernel.elf` emits exactly: hello from u-mode ticks observed: <N> and exits 0, hitting the Phase 2 §Definition of done. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(kernel): qemu-diff-kernel.sh + build step for trace divergence debug (Plan 2.D Task 10) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: Phase 2 complete — update README status + build targets (Plan 2.D Task 11) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: add Phase 2 Plan 2.D implementation plan Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(deck): add Plan 2.D slide + vertical scroll fallback for long slides - New Chapter 2.D slide covers the Process struct + sched stubs, the timer-tick ISR path (M→S increments ticks_observed), user-program yield/busy-loop/exit, and the verify_e2e regex. - TOC status for Phase 2 flipped to complete; epilogue shows 2.D row, Next panel now points at Phase 3. - deck-stage section falls back to a vertical scrollbar when content exceeds the 1080-px design height (overflow-y: auto + safe center so the top stays reachable). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore: add GitHub link overlay to deck Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>