docs: 更新 eqpalg 重构变更文档(34 commits + 编译修复记录)

This commit is contained in:
Huamonarch 2026-05-15 16:34:50 +08:00
parent 06ebc21dd6
commit d79d17af20

View File

@ -4,7 +4,7 @@
对 eqpalg 核心架构进行系统性重构,消除历史遗留的补丁设计,将 God Class `ExpBase`1956 行)拆分为 10 个职责清晰的组件和算法子类。
**变更规模**37 文件,+2876 / -1326 行,22 个 commit
**变更规模**37 文件,+2876 / -1326 行,34 个 commit含编译修复
---
@ -169,29 +169,69 @@ ExpModule (250行) BoundAlg (85行) — Alg 2
---
## 七、Commit 历史
## 七、编译修复12 个 commit
重构后首次在 CentOS 7 / GCC 10.2 上编译,逐轮修复了以下问题:
| 问题 | 修复 | commit |
|------|------|--------|
| 测试 target 缺少 include 路径 | 补全 legacy/include/ihdb/memcache/iXcom | 3f10d4d |
| 测试文件 `"test_harness.h"` 不符项目规范 | 统一改为 `<>` 风格 | 4032ff9 |
| 第三方代码 `GlobDefine.h` 大量 format 警告淹没错误 | 添加 5 个 `-Wno-*` 标志 | 5a026ac |
| `enum class DetectMode``ostream<<` | CHECK_EQ 改 CHECK(==) | dc26b6a |
| `mix_cc::time_range_t` 未声明 | expression_engine.h 添加 `<mix_cc/ihyper_db.h>` | 62a2e55 |
| ExpTimes/Roller2/ExpSample2D 等 5 子类未实现纯虚 `doMonProc()` | 添加桩实现 | 18a5675 |
| `bound_alg.cpp` 访问私有 `exps_` | 新增 `hasExpression()` 公有方法 | 43c545e |
| exp_bound/exp_times/exp_sample2D/roller2/roller3 残留旧方法调用 | 逐文件替换为 ExpressionEngine API | ba0bf8c |
| roller3 中 DetectMode 赋值和 LOG 输出 | 添加 `static_cast` | 367802f |
| roller2/roller3 中 init_hold_exp_str/exp_messy_code_check | 改用 registerExpression | 06ebc21 |
---
## 八、Commit 历史
```
ca2147e test: 核心算法单元测试
032f0d0 refactor: 切换 build_algorithm 工厂到算法子类 + CMake 更新
ae7834a refactor: 算法子类化 — 消除 exp_type_ 分支
4f8eecd refactor: 提取 StatCollector 统计学习组件
b9cf5f4 refactor: 提取 BoundChecker 上下限检测组件
c4bcb66 refactor: 删除旧反馈状态方法和标志
0106e55 refactor: 集成 FbStateMachine 到 ExpBase::mon_proc()
fad4ee8 test: FbStateMachine 状态转换单元测试
9f66fc1 feat: FbStateMachine 状态转换 + 变量操作实现
f2f6d6f feat: 添加 FbStateMachine 头文件
e9b2c17 refactor: 删除 ExpModule 类
3f8d281 fix: 清理 ExpBase 子类残留引用
38d0942 refactor: 非 ExpBase 算法适配 ExpressionEngine API
7c2fe7f refactor: ExpBase 表达式管理迁移到 ExpressionEngine
96ca4d0 refactor: AlgBase 从 ExpModule 迁移到 ExpressionEngine
f10da49 test: ExpressionEngine 单元测试用例
693d3b5 feat: ExpressionEngine firstFill + printVars 实现
e575efd feat: ExpressionEngine FunVars 控制 + hold 变量管理
5017368 feat: ExpressionEngine 变量刷新实现
da9eb2e feat: ExpressionEngine 核心实现
2f7ca1e feat: 添加 ExpressionEngine 头文件声明
#### Phase 1: ExpressionEngine 统一表达式引擎
ec8e44c test: 为 eqpalg 添加测试基础设施
2f7ca1e feat: 添加 ExpressionEngine 头文件声明
da9eb2e feat: ExpressionEngine 核心实现
5017368 feat: ExpressionEngine 变量刷新实现
e575efd feat: ExpressionEngine FunVars 控制 + hold 变量管理
693d3b5 feat: ExpressionEngine firstFill + printVars 实现
f10da49 test: ExpressionEngine 单元测试用例
96ca4d0 refactor: AlgBase 从 ExpModule 迁移到 ExpressionEngine
7c2fe7f refactor: ExpBase 表达式管理迁移到 ExpressionEngine
38d0942 refactor: 非 ExpBase 算法适配 ExpressionEngine API
3f8d281 fix: 清理 ExpBase 子类残留引用
e9b2c17 refactor: 删除 ExpModule 类
#### Phase 2: FbStateMachine 反馈状态机
f2f6d6f feat: 添加 FbStateMachine 头文件
9f66fc1 feat: FbStateMachine 状态转换 + 变量操作实现
fad4ee8 test: FbStateMachine 状态转换单元测试
0106e55 refactor: 集成 FbStateMachine 到 ExpBase::mon_proc()
c4bcb66 refactor: 删除旧反馈状态方法和标志
#### Phase 3: ExpBase 解耦 + 算法子类化
b9cf5f4 refactor: 提取 BoundChecker 上下限检测组件
4f8eecd refactor: 提取 StatCollector 统计学习组件
ae7834a refactor: 算法子类化 — 消除 exp_type_ 分支
032f0d0 refactor: 切换 build_algorithm 工厂到算法子类 + CMake 更新
#### Phase 4: 单元测试 + 文档
ca2147e test: 核心算法单元测试
153ce64 docs: 添加 2026-05-15 eqpalg 重构变更文档
#### 编译修复CentOS 7 / GCC 10.2
3f10d4d fix: 为 eqpalg_test 添加缺失的 include 路径
4032ff9 fix: 将测试文件中 "" include 改为 <> 风格
2754b7a docs: 添加 eqpalg 测试说明文档
5a026ac build: 添加 -Wno-unused-parameter/variable/sign-compare/reorder
dc26b6a fix: 将 enum class 类型的 CHECK_EQ 改为 CHECK(==)
62a2e55 fix: expression_engine.h 添加 <mix_cc/ihyper_db.h>
18a5675 fix: 子类实现 doMonProc() + 测试 CMake 添加缺失链接文件
43c545e fix: 添加 hasExpression(),修复 bound_alg/exp_bound 编译错误
ba0bf8c fix: 清理 ExpBase 子类中残留的旧方法调用
367802f fix: roller3.cpp 中 DetectMode enum class 的 LOG 输出和 stoi 赋值 cast
06ebc21 fix: roller2/roller3 中 init_hold_exp_str/exp_messy_code_check 改用 ExpressionEngine
```