Windows / Wine 构建运行指南(1.12.0-dev 文档预览)
English summary. Build a Windows x86-64 VM-only
bqvm.exewith mingw-w64 and run it under wine:bash tools/build_win32_async.sh→ PE32+build-win-async/bqvm.exe(real: sha2561d84aed6…); compile.qbcwith nativebuild/bqvm, thenwine build-win-async/bqvm.exe --timeout-ms 30000 hello.qbc→Hello, Win32 Q+!; async Fiber matrixbash tools/test_win_async.sh→ PASS=27 FAIL=0 SKIP=2 (WIN32_ASYNC_PASS). Windows AOT is not supported (no AOT backend; feasibility only) and real Windows/MSVC is untested — a VM-only/async-subset validation, not Windows platform-usability evidence. 1.12 docs preview; base v210_rc1 (1.11.0-dev/spec v4.42); NOT PUBLISHED.
Q+ 在 Linux 上用 mingw-w64 交叉构建 Windows x86-64 VM-only bqvm.exe,用 wine 运行 Q+ 字节码与 async Fiber 测试;AOT 不支持 Windows。以下命令/输出为 v220-docs 工作区 (v210_rc1 基线)真实执行结果。
构建(mingw-w64)
bash tools/build_win32_async.sh # 输出 build-win-async/bqvm.exe
# 等价:bash tools/build.sh --target win32 [OUT]
实测:
[build] P3-D win32 target: .../build-win-async/bqvm.exe
PE32+ executable for MS Windows 5.02 (console), x86-64, 19 sections
1d84aed6... .../build-win-async/bqvm.exe
WIN32_ASYNC_BUILD_PASS .../build-win-async/bqvm.exe
要点:win32 HAL mk_hal_win32.c + bqvm_win32_compat.h(ucontext → loud abort)、win32 mini-kernel、-lws2_32、静态链接、-DBQVM_WIN32_ASYNC=1(Fiber async)。缺 mingw 时明确 SKIP。
运行(wine)
build/bqvm --timeout-ms 0 build/qboot.qbc hello.q -o hello.qbc
wine build-win-async/bqvm.exe --timeout-ms 30000 hello.qbc
实测 wine_hello_rc=0,输出 Hello, Win32 Q+!。首次运行创建 WINEPREFIX(可用 WINEPREFIX_DIR/WINEPREFIX 指向临时目录,WINEDEBUG=-all 降噪);qbc 由 Linux 侧编译, Windows VM 只解释执行。
async Fiber 测试矩阵
bash tools/test_win_async.sh
实测尾部:覆盖 Fiber 调度、毫秒时钟/Sleep、计时器、EAGAIN 复用、pipe/socketpair 就绪 (loopback TCP socketpair 模拟)、TCP connect/accept、容量 loud(BQVM_TIMER_CAP/ BQVM_MAX_WAIT_FDS/spawn limit);最终 WIN32_ASYNC: PASS=27 FAIL=0 SKIP=2、WIN32_ASYNC_PASS。
已知限制(不得宣称 Windows 平台可用)
- AOT:Windows 不支持(无 backend;仅可行性研究见
WIN32_AOT_FEASIBILITY/spike 文档); - async 仅上表子集:io14 常规文件/handle 就绪显式 SKIP(Windows 语义不同);真实 Windows/MSVC 未测试;wine ≠ 真实 Windows;
- 文件/网络/进程为 VM 子集/仿真(socketpair 用 loopback TCP 模拟);OS SDK/AOT 网络不随 Windows 路径承诺;
- 1.12.0-dev 文档预览(spec v4.43 TBD);实现基线 v210_rc1(1.11.0-dev/spec v4.42); NOT PUBLISHED,非 Windows 平台支持/发布承诺。
相关
完整指南(中文) · PORTABILITY · Windows AOT 可行性 · Playground · 英文摘要索引