Flate / zlib-ng 后端
3.11.0 版将 Windows Flate 后端切换为 zlib-compatible 模式下的 zlib-ng,该后端供 CompressContent、CompressPage、CompressImages、InflateStr 和内部 PDF 流解码使用。公开 API 和 PDF 输出格式保持不变;流仍使用标准 /FlateDecode 过滤器
Win32 链接由 bcc32c 从 Lib\thirdparty\zlib 生成的 OMF 对象。Delphi Win64 和 C++Builder Win64x 链接 Lib\thirdparty\Win64x 中由 bcc64x 构建的 COFF64 对象,因此两个 64 位 RAD Studio 路径使用同一套 zlib-ng 运行时 SIMD 对象。Lib\thirdparty\Win64 中的 MSVC zlib-ng 对象保留为诊断重建输出
zlib 重建脚本是 Lib\thirdparty\build-zlib-bcc32.bat、Lib\thirdparty\build-zlib-vc64.bat 和 Lib\thirdparty\build-zlib-bcc64x.bat。Win64 路径还会链接 zng_bridge.obj,使 Pascal 声明继续使用稳定的 zlib-compatible 入口点,而对象文件来自 zlib-ng
3.11.0 回归测试增加了固定字节流 zlib 往返测试和 HelloWorld 压缩检查,包括 C++Builder GoogleTest runner。3.12.0 验证在此基础上扩展为重建支持 SIMD 的原生对象集,并完整运行 Delphi/C++Builder 回归测试
3.18.5 后端更新移除了 PDFlibZLib.pas 中剩余的 System.ZLib 和非 zlib-ng 流回退分支。普通非 NOVCL 构建现在始终把 DeflateStr、DeflateStrNoCompression、InflateStr 和 InflateStrParms 路由到捆绑的静态 zlib-ng 对象;Win32 选择 OMF 对象集,Win64/Win64x 选择 bcc64x COFF64 对象集。回归测试现在覆盖已知 zlib 流、边界大小负载、类似 PNG 的扫描线负载,以及 Delphi 和 C++Builder 上的 stored multi-block 往返