Skip to content

layout/runtime-rs: kvlang·dump 改名 kvlang·printlib,新增 kvlang·printstack - #348

Merged
miaobyte merged 1 commit into
masterfrom
feat/printlib-printstack
Sep 16, 2026
Merged

miaobyte merged 1 commit into
masterfrom
feat/printlib-printstack

Conversation

@miaobyte

Copy link
Copy Markdown
Contributor

Closes #347

1. kvlang·dumpkvlang·printlib(改名 + 收紧语义)

dump 没表达它在做什么:它做的是把 layout 结果反出来看——签名读参数定义键、
函数体读线性指令槽,不读 .src 源码副本。改名后把这条约束从实现细节升格为
写进名字与测试的保证。

验收(tutorial/13-stdlib/kvlang/02-printlib.kv 已锁):printlib 一次 → 删掉该函数
.src → 再 printlib,两次输出逐字相同

  • rwir:kvlang·dump(lib)kvlang·printlib(lib)
  • C ABI:kvlangLayoutDumpkvlangLayoutPrintlib
  • CLI:kvlang dump / kvlanglayout dumpprintlib

2. 新增 kvlang·printstack(vid) -> text

printlib 覆盖 /lib(静态代码),printstack 覆盖 /vthread(动态执行态)。

渲染内容:status / frames 计数 / error(若有)/ pc,逐帧 frame[i] <‥lib> +
‥callpc / ‥returnpc + 实参槽 [0,±j] 与命名局部(text/total/sz 这类,需
expand_ext 才列得出)+ 顶帧 cur = 当前指令。只读,不碰 ‥pc / ‥status——
暂停/恢复是调用方(harness)的事。

vid 空串 = 当前 vthread:从本 rwir 自己的 PC 前缀 /vthread/<vid>/… 取。

上游动机是 byteseek(#72 / #69):agent 要在同一任务内做多轮「tool → LLM」交替,
就得把当前活动栈作为事实交给 LLM 决定下一步。

验证

  • make layout / make runtime-rs / make runtime 三者均编译通过
  • 导出符号与 spec ABI 文档一致:nm -D libkvlanglayout.sokvlangLayoutPrintlib /
    kvlangLayoutPrintstack(旧 kvlangLayoutDump 已消失),08-layout-abi.kv 同步
  • 本地 fs 后端:13-stdlib/kvlang/01-reflect02-printlib15-vthread/05-printstack 三条 PASS

注:shm 后端的 01-reflect 仍红,属既有的 shm/fs 列举语义分歧(空目录 init /
目录尾 /),与本 PR 无关。

🤖 Generated with Claude Code

dump 这名字没表达它在做什么:它做的是把 layout 结果反出来看——签名读参数定义
键、函数体读线性指令槽,不读 .src 源码副本。改名 printlib,并把「禁读 .src」从
实现细节升格为写进名字与测试的保证:02-printlib.kv 先 printlib 一次,删掉该函数
的 .src 后再 printlib,两次输出须逐字相同。

新增 kvlang·printstack(vid) -> text:printlib 覆盖 /lib(静态代码),printstack
覆盖 /vthread(动态执行态)——把活动栈渲染成文本(帧链 + 每帧实参/命名局部 +
当前指令),供 agent 在同一任务内做「tool → LLM」交替时拿事实(byteseek #69/#72)。
只读,不碰 ‥pc/‥status;vid 空串 = 当前 vthread,从本 rwir 自己的 PC 前缀取。

- C ABI:kvlangLayoutDump → kvlangLayoutPrintlib;新增 kvlangLayoutPrintstack
- CLI:kvlang dump / kvlanglayout dump → printlib
- rwir 注册表:kvlang·printlib / kvlang·printstack
- spec 04-layout语义/08-layout-abi.kv、README(_CN)、kvlangbrief、01-reflect 同步

Co-Authored-By: Claude Code <noreply@anthropic.com>
@miaobyte
miaobyte merged commit c59c81f into master Sep 16, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Roadmap] rwir:kvlang·printlib(dump 改名)+ kvlang·printstack —— 统一 C ABI,printlib 禁读 .src

1 participant