Skip to content

[0059] 将 run-string 替换为 run-either,支持 stdout/stderr 捕获与重定向模式#856

Merged
da-liii merged 4 commits into
mainfrom
da/0059/capture
May 31, 2026
Merged

[0059] 将 run-string 替换为 run-either,支持 stdout/stderr 捕获与重定向模式#856
da-liii merged 4 commits into
mainfrom
da/0059/capture

Conversation

@da-liii
Copy link
Copy Markdown
Contributor

@da-liii da-liii commented May 31, 2026

变更内容

  • 将基础函数 run-string 替换为 run-either,返回值统一为 Either 类型(成功为 Right 含 stdout,失败为 Left 含 exit-code + stderr)
  • C++ 层新增 redirect_mode 枚举,支持 capturediscardinheritfile 四种 stdout/stderr 重定向模式
  • Scheme 层新增 %valid-stdout? / %valid-stderr? 校验函数,对非法 keyword 参数抛 value-error
  • 删除 tests/liii/subprocess/run-string-test.scm,新增 tests/liii/subprocess/run-either-test.scm
  • 更新 devel/0059.md 设计文档,将 run-string 相关描述统一改为 run-either

测试

  • run-either-test.scm:覆盖字符串/列表命令、keyword 参数、符号命令注册表、黑名单/白名单等场景
  • run-values-test.scm:补充 stdout/stderr 重定向模式测试

@da-liii da-liii merged commit 2adaa23 into main May 31, 2026
4 checks passed
@da-liii da-liii deleted the da/0059/capture branch May 31, 2026 23:49
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.

1 participant