ctex 是中文 LaTeX 排版的核心基础设施——几乎所有中文 LaTeX 文档都直接或间接依赖它。这段时间我集中处理了 ctex 上积压的数个 Bug,涉及字间距(CJKglue)被覆盖、macOS 15 字体检测失效、LuaTeX 下 \verb 前间距丢失、hyperref 选项冲突,以及 .spa 文件生成等问题。同时完成了旧字体钩子兼容代码的清理和版本号提升(v2.5.10 → v2.6.0)。本文逐一记录这些改动的技术细节。
CJKpunct 宏包的两个 Bug 修复与测试基础设施建设
Pineapple v0.3.4 → v0.4.0:从可视化到数据并行的十次迭代
Pineapple:用数据冒险模型自动构建 DAG 的高性能流水线引擎
搜索、推荐、广告——这类在线系统的后端往往需要一条多步骤数据处理流水线:召回候选集、特征计算、过滤、排序、截断……步骤之间存在复杂的数据依赖,手动编排执行顺序既繁琐又容易出错。Pineapple 的回答是:让算子只声明「我读什么、写什么」,引擎借鉴 CPU 流水线的数据冒险分析,自动推导依赖、构建 DAG、并行调度。Python 声明,Go 执行,JSON 解耦——三条线各司其职,业务迭代不需要重编译 Go 代码,Go 服务自动热加载配置变更。
本文将从架构设计、DAG 构建算法、并行调度机制、Lua 嵌入层、控制流编译等维度,完整拆解 Pineapple 的核心原理,并附上真实的 benchmark 数据。