Skip to content

Tags: cyyeh/ccc

Tags

phase3-complete

Toggle phase3-complete's commit message
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>

phase2-complete

Toggle phase2-complete's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

phase1-complete

Toggle phase1-complete's commit message
chore: add GitHub link overlay to deck

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>