From d79d17af206c01fa370ab5f0ef78a348f2ce5c89 Mon Sep 17 00:00:00 2001 From: Huamonarch Date: Fri, 15 May 2026 16:34:50 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20eqpalg=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E5=8F=98=E6=9B=B4=E6=96=87=E6=A1=A3=EF=BC=8834=20comm?= =?UTF-8?q?its=20+=20=E7=BC=96=E8=AF=91=E4=BF=AE=E5=A4=8D=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eqpalg/eqpalg_changes_2026-05-15.md | 86 +++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 23 deletions(-) diff --git a/eqpalg/eqpalg_changes_2026-05-15.md b/eqpalg/eqpalg_changes_2026-05-15.md index 08a52c8..b3a809f 100644 --- a/eqpalg/eqpalg_changes_2026-05-15.md +++ b/eqpalg/eqpalg_changes_2026-05-15.md @@ -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 添加 `` | 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 添加 +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 ```