onnxruntime
84207093 - Fix Windows clang/no-exceptions portability (#33140)

Commit
5 days ago
Fix Windows clang/no-exceptions portability (#33140) ## Summary Fix two portability issues encountered by Windows clang builds that disable C++ exceptions: - Open MoE expert state files through the standard `std::filesystem::path` stream constructor instead of relying on MSVC's wide-string overload. Add an inference-session regression for ASCII and UTF-8/Unicode filenames. - Backport ONNX portability fixes into both the CMake and vcpkg patch mirrors: const-reference error helpers, tensor dimension errors routed through the no-exceptions-aware helper, and traits-based resource sentinels that avoid a non-constant `INVALID_HANDLE_VALUE` template argument. The ONNX changes are selected backports of already merged fixes: - https://github.com/onnx/onnx/pull/8126 (const-reference error helpers) - https://github.com/onnx/onnx/pull/8220 (tensor error routing) - https://github.com/onnx/onnx/pull/8279 (resource sentinel portability) Keep the existing ONNX patches and the pinned ONNX 1.22.0 version unchanged. No opset or public API changes. ## Validation - Based on freshly fetched upstream main `b5cb51748b5b9efb3de90b31670c91b6829c4dba`. - Windows x64 CPU build of `onnxruntime_test_all`; all 30 selected native-path and neighboring MoE/KernelPilot tests executed and passed. - Full patch checked with both Git and GNU patch against a pristine ONNX 1.22.0 archive whose SHA1 matches the dependency pin; both mirrors are byte-identical. - All seven patched ONNX sources match the dependency sources used by the successful CPU build. - Windows clang-cl C++20 syntax checks with `-fno-exceptions` passed for the patched tensor/resource headers, native-path stream constructor, and `assertions.cc`. The probe rejects exception-enabled compilation. - Scoped lintrunner, whitespace, and editor diagnostics passed. Linux/macOS runtime tests and a full compiler-no-exceptions ORT build were not run for this latest-main branch.
Author
Parents
Loading