docs(feedback): add VDE-053, VDE-054, VDE-055 — MSVC compatibility fixes and build records

This commit is contained in:
2026-07-29 08:43:24 +08:00
parent 55dc3a2dc2
commit 4077b4cfa4
3 changed files with 116 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# VDE-053: license_manager.cpp 缺少 #include <unordered_map> (MSVC 编译失败)
- **ID**: VDE-053
- **Date**: 2026-07-29
- **Status**: Open
- **Severity**: Critical
- **Category**: BUILD
- **Source**: ViewDesign 架构纠正计划 (Task 11) — VDE=ON 构建
## 现象
MSVC 编译 `src/core/license_manager.cpp` 时出现 100+ 错误,包括:
```
error C2143: 语法错误: 缺少";"(在"}"的前面)
error C2065: "Feature": 未声明的标识符
error C2065: "unordered_map": 未声明的标识符
```
## 根因
`license_manager.cpp``parse_feature()` 函数使用了 `std::unordered_map`(行95),但文件未包含 `<unordered_map>` 头文件。GCC/Clang 的 STL 实现会通过 `<string>``<set>` 间接包含 `<unordered_map>`,但 MSVC STL 不会。
**受影响代码:** `src/core/license_manager.cpp:95`
```cpp
int parse_feature(const std::string& name) {
static const std::unordered_map<std::string, int> map = {
// ...
};
}
```
## 修复
`license_manager.cpp` 的 include 区域添加:
```cpp
#include <unordered_map>
```
## 验证
- 编译器: MSVC 2022 (v143)
- C++ 标准: C++20
## 相关
- commit: `c7f2524c46a98afe8319b97d1d11674c44742533` (v1.0.0-104)
+39
View File
@@ -0,0 +1,39 @@
# VDE-054: GCC builtins 在 MSVC 不可用 (__builtin_prefetch / __builtin_ia32_pause)
- **ID**: VDE-054
- **Date**: 2026-07-29
- **Status**: Open
- **Severity**: Critical
- **Category**: BUILD
- **Source**: ViewDesign 架构纠正计划 (Task 11) — VDE=ON MSVC 构建
## 现象
MSVC 编译 VDE 核心库时出现以下错误:
```
error C3861: "__builtin_prefetch": 找不到标识符 (performance_tuning.h:310,319,581,587,601)
error C3861: "__builtin_ia32_pause": 找不到标识符 (concurrent_data.h:491,516)
```
## 根因
以下文件使用了 GCC/Clang 特有的 builtin 函数,缺少 MSVC 等价实现:
1. **`include/vde/core/performance_tuning.h`** — 使用 `__builtin_prefetch` (6处)
- MSVC 等价: `_mm_prefetch(addr, hint)` (需 `#include <intrin.h>`)
2. **`include/vde/core/concurrent_data.h`** — 使用 `__builtin_ia32_pause` (2处)
- MSVC 等价: `_mm_pause()` (需 `#include <intrin.h>`)
## 修复建议
添加跨平台宏,统一抽象为:
- `VDE_PREFETCH(addr)``__builtin_prefetch` / `_mm_prefetch`
- `VDE_PREFETCH_WRITE(addr)` → 写入预取
- `VDE_PREFETCH_DIST(addr, dist)` → 带距离参数的预取
- `VDE_CPU_PAUSE()``__builtin_ia32_pause` / `_mm_pause` / `yield`
## 相关
- 文件: `include/vde/core/performance_tuning.h`, `include/vde/core/concurrent_data.h`
- 编译器: MSVC 2022 (v143)
+31
View File
@@ -0,0 +1,31 @@
# VDE-055: MSVC __builtin_prefetch & __builtin_ia32_pause 兼容性修复
- **ID**: VDE-055
- **Date**: 2026-07-29
- **Status**: fixed
- **Severity**: High
- **Category**: BUILD / MSVC
- **Source**: ViewDesign Architecture Remediation Task 11
## Trigger
ViewDesign 工程在架构优化(Task 11: 共享库转换)后在 MSVC 下构建失败。
## Root Cause
VDE 代码使用了 GCC 专用内置函数,MSVC 不支持:
1. `__builtin_prefetch()``performance_tuning.h`
2. `__builtin_ia32_pause()``concurrent_data.h`
## Fix Applied (commit 55dc3a2)
1. **`include/vde/core/performance_tuning.h`**: 添加 `VDE_PREFETCH``VDE_PREFETCH_WRITE``VDE_PREFETCH_DIST` 跨平台宏
- MSVC: 映射到 `_mm_prefetch()`
- GCC/Clang: 保持不变 (`__builtin_prefetch()`)
2. **`include/vde/core/concurrent_data.h`**: 添加 `VDE_CPU_PAUSE` 跨平台宏
- MSVC: 映射到 `_mm_pause()`
- GCC/Clang: 保持不变 (`__builtin_ia32_pause()`)
- ARM64: `__asm__ volatile("yield")`
## Also Fixed
- **`src/core/license_manager.cpp`**: 添加缺失的 `#include <unordered_map>`
## Impact
ViewDesign 100 个模块 + 100+ plugins 在 MSVC 下全部构建通过 (0 errors)。