Skip to content

docs: §18 八个角度的实现后复核(v1.5) - #314

Merged
Sunrisepeak merged 2 commits into
mainfrom
docs/multi-angle-review
Aug 30, 2026
Merged

docs: §18 八个角度的实现后复核(v1.5)#314
Sunrisepeak merged 2 commits into
mainfrom
docs/multi-angle-review

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

§6 多角度评估 那张表是设计时写的,实现之后没回头修订。逐条回看,八条里有四条被推翻或需要重述 —— 把它们留在原样比不写更糟,因为下一个人会照着一张已经不成立的表做决定。

推翻两条

架构 —— 设计时写「不新建仓,新增仓数量 = 0」,实际新建五个

错在把「进已有 fork」当成可选的组织方式。它不是:一个 fork 仓对应一个上游、一个版本。wayland-protocols 有自己的版本号和发布周期,塞进 mcpplibs/wayland 等于让两个上游共用一个 tag。

兼容性 —— 设计时写「全部是新增条目,不动任何已发布包」,实际动了三个:compat.freetype(#311)、xim:mesa(xim#733)、graphics.consumer_envs(xim#735)。

错在把「新增」等同于「无风险」。新增一个条目会改变现有条目的行为 —— DISCOVERY 表加一行,不传 only 的调用点就自动继承了它;新增一个消费者,compat.freetype 的源码列表缺口就暴露了。

重述四条

设计时说 实测
稳定性 风险在模块导出与体积 代价最高的三类失败都不在清单上:探测答案错、环境陈旧、上游自己的 .gitignore
跨平台 CPU 架构(aarch64/ppc64) 真正咬人的是编译器与标准库 —— static inline 取地址强制实例化(lld 不经传递 DT_NEEDED 解析)、<sstream> 传递包含(libc++ 没有),两个都只有 llvm 腿抓得到
一致性 生成物签进仓 推翻 —— 改由 build.mcpp 构建期产出,由此消掉了「数据与代码不一致」这个状态本身
无感升级 全是新增包,无重切 tag 问题 同版本重发换了三种形态出现:tag archive 打断 sha256、store 按 (name,version) 不重解压、删 tag 让 release 掉成草稿

成立两条,而且被加强

优雅 —— 设计时的「只做无 X11 的库」成立,而 cairo 的 feature 机制是更好的形态:不是替消费者选,而是让消费者选。差别是真实的 —— 前者意味着要 X11 的人没得用。

用户体验 —— import 那条成立,且多出一层:模块层是放置适配代码的位置。libdisplay-info 七个公共头一个 extern "C" 都没有,模块把包装做在里面,消费者不用管。


八条里两条推翻、四条重述、两条成立。设计时的判断有一半没扛过实现 —— 而这正是「验证要更新到文档」的意义:留下的应该是被证伪之后的那一版

只改 .agents/docs/

§6 那张表是设计时写的,实现之后没回头修订。逐条回看,八条里有四条被推翻或需要
重述——把它们留在原样比不写更糟,下一个人会照着一张已经不成立的表做决定。

推翻两条:

  架构  「新增仓数量 = 0」→ 实际新建五个。错在把「进已有 fork」当成可选的组织
        方式;它不是,一个 fork 仓对应一个上游一个版本。
  兼容性 「全部新增,不动任何已发布包」→ 动了三个。错在把「新增」等同于「无风
        险」:DISCOVERY 加一行会让现有提供方自动继承它;新增一个消费者会暴露
        compat.freetype 的源码列表缺口。

重述四条:

  稳定性   风险不在难写的代码里,在写完之后没人检查的断言里。实现期代价最高的
          三类失败都不在设计时的风险清单上。
  跨平台   真正咬人的不是 CPU 架构,是编译器与标准库(static inline 实例化、
          <sstream> 传递包含),两个都只有 llvm 腿抓得到。
  一致性   「生成物签进仓」被推翻——改由 build.mcpp 构建期产出,由此消掉了
          「数据与代码不一致」这个状态本身。
  无感升级 同版本重发换了三种形态出现,结论是 tag 指向历史、资产承载分发。

成立两条:优雅(feature 机制把「替消费者选」变成「让消费者选」)、用户体验
(模块层不只是换写法,它是放置适配代码的位置)。

只改 .agents/docs/。
§18 的整个理由是「下一个人会照着 §6 那张表做决定」——那 §6 自己就必须说它
已经被推翻,否则读者根本走不到 §18。加一列结论标记(❌/⚠/✅)+ 小节号,
以及一句「不要单独引用本节」。
@Sunrisepeak
Sunrisepeak merged commit c188c38 into main Aug 30, 2026
@Sunrisepeak
Sunrisepeak deleted the docs/multi-angle-review branch August 30, 2026 15:43
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