Skip to content

chore: 标杆开源化最终收尾——中文注释、测试自注册、clang-tidy 进 CI、基准防优化、发版 4.2.0 - #6

Merged
holtwood merged 7 commits into
masterfrom
chore/final-polish
Aug 20, 2026
Merged

chore: 标杆开源化最终收尾——中文注释、测试自注册、clang-tidy 进 CI、基准防优化、发版 4.2.0#6
holtwood merged 7 commits into
masterfrom
chore/final-polish

Conversation

@holtwood

Copy link
Copy Markdown
Collaborator

概述

面向「标杆开源项目」的最终收尾,聚焦六个改动维度,按小步提交拆分,每项均带测试/文档闭环。

改动清单

# 改动 提交
A 源码注释统一为中文(10 个文件约 83 行英文注释,技术术语保留) docs: 源码注释统一为中文
B 测试自动注册:BITCAL_TEST_CASE 宏 + 静态链表注册表,main() 从 95 行缩到一行,49 用例全自发现 test: 引入 BITCAL_TEST_CASE 自注册
C clang-tidy 进 CI:根 .clang-tidy 唯一事实源 + 新增 CI job,4 个 TU 零诊断 ci: clang-tidy 配置落地
D 基准输入侧也 do_not_optimize,BitCal 与 std::bitset 双侧对称,防常量传播 bench: 基准输入加入 do_not_optimize
E 发版 4.2.0:版本号、CHANGELOG 收尾(首版 tag + Release 前置) release: 4.2.0 版本号与 CHANGELOG/AGENTS 收尾
F AGENTS.md 同步(§4.2 自注册说明、§4.3 CI 描述) 同上

验证

  • 构建 + ctest:49 用例全 PASS(自注册后计数不变)
  • clang-tidy:4 个 TU 零诊断(含本 PR 新增 clang-tidy CI job 会在合并前首跑)
  • clang-format:全量 dry-run 干净
  • 基准可执行文件正常产出(AVX2 后端)

说明

  • 本次为项目首次发版(此前从未打 tag):4.2.0 合并后打 v4.2.0 tag 并创建 GitHub Release
  • 按项目定位不补回 CONTRIBUTING/SECURITY 等治理文件

统一 include/tests/examples/benchmarks 下全部源码注释语言为中文,
保留 AVX2/loadu/storeu/if consteval 等技术术语原文。与 README/NOTES/
CHANGELOG 的全中文文档口径一致,消除英中混用的视觉不一致。
test_macros.hpp 增加零动态分配的静态链表注册表(函数局部静态头指针),
BITCAL_TEST_CASE(name) 展开为前置声明 + 静态注册器 + 函数定义,测试一经
定义即被登记。49 个测试函数改为宏形式,main() 缩为调用 run_all_registered,
消除新测试漏注册静默不跑的风险。测试函数从 external linkage 收敛为 static。
新增根 .clang-tidy 作为 tidy 规则唯一事实源(CI job 与 clangd 共同拾取,
.clangd 删除内联 ClangTidy 块);CI 新增 clang-tidy job,configure 导出
compile_commands.json 后 run-clang-tidy 全量检查并 --warnings-as-errors。
根 CMakeLists 默认 CMAKE_EXPORT_COMPILE_COMMANDS=ON,使 clangd 开箱即用。
本机 clang-tidy-19 对 4 个 TU 零诊断。
被测内核的输入(bit_block / std::bitset)此前未被消费,编译器可能把计算
提升为循环不变式或做常量传播,弱化测量。在每次迭代的操作调用前对称 pin
输入:二元操作 pin lhs+rhs,一元操作 pin lhs,BitCal 与 std::bitset 两侧
一致保证对比公平。开销为空 asm volatile,可忽略。
@holtwood
holtwood merged commit d9ae039 into master Aug 20, 2026
5 checks passed
@holtwood
holtwood deleted the chore/final-polish branch August 20, 2026 11:47
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