Implement Win32 registry shim and enhance PIL integration#174
Conversation
|
@copilot, can you review just src\libraries\pil please? |
I reviewed
If you want, I can take a pass at fixing those next. |
|
@copilot, can you review src\libraries\pil again? |
Took another pass over
Happy to take a pass at #1 (the thread_local issue) and #5 (the dequeue-then-lose race) — those are the smallest and have the highest impact-to-risk ratio. #2 is a larger piece of work and probably wants its own checklist item. |
Completed item: M-HWC-REVIEW-1: Make g_active_context a plain process-global so hooks fire on engine worker threads Completed item: M-HWC-REVIEW-3: Add lock-free synthetic-handle fast-path to the CloseHandle hook Completed item: M-HWC-REVIEW-5: Requeue synthetic HTTP request on ERROR_MORE_DATA instead of dropping it
|
@copilot , can you review src\libraries\pil again? |
Re-reviewed
#1 (handle collision) and #2 (write breaks on second call) are the two that I'd treat as blocking — both will produce broken behaviour with realistic engine usage rather than just edge cases. #3 is also probably blocking depending on whether the engine uses IOCP on these handles in practice; if it does, reject overlapped synthetic I/O outright as a safe interim. |
Completed item: M-HWC-REVIEW2-1: Give each synthetic-handle kind its own non-overlapping range (floor + per-kind bases) Completed item: M-HWC-REVIEW2-2: Make WriteFile on a synthetic handle accumulate past the first chunk and flush once on flush/close Completed item: M-HWC-REVIEW2-3: Reject overlapped I/O on synthetic handles with ERROR_INVALID_PARAMETER Completed item: M-HWC-REVIEW2-4: Do not hold file_handle_mutex across the backing read Completed item: M-HWC-REVIEW2-5: Propagate query_information failure through ec in size/seek Completed item: M-HWC-REVIEW2-6: Make the active context a std::atomic read with acquire/release
|
@copilot, can you please review src\libraries\math |
Reviewed
#1 (non-ASCII in a thrown string) and #3 (stray committed files) are the two I'd prioritize. Happy to take a pass at any of these if you'd like. |
|
Thanks for the re-review. Heads-up on the snapshot: this pass looked at commits
No further code changes needed for these. (clang-format/cosmetic items aside.) |
|
Thanks. Items 1-4 were addressed in commit
|
3096180 to
dace64d
Compare
This pull request introduces several improvements and fixes across the build system, CI workflows, and codebase. The most significant changes include the addition of a new GitHub Actions workflow for building and packaging the mwin32 SDK, updates to CMake presets for better cross-architecture support, a more comprehensive sample registry log, and code cleanups. Below are the most important changes grouped by theme:
CI/CD and Build System Enhancements
.github/workflows/mwin32-sdk.ymlto automate building, testing, merging, and packaging the mwin32 SDK for both x64 and ARM64 architectures, and to attach the resulting artifact to GitHub Releases.CMakePresets.json:clang-aarchh64toclang-aarch64and updated all references. [1] [2] [3]VCPKG_TARGET_TRIPLETcache variable to relevant presets to ensure consistent vcpkg triplet usage. [1] [2]cmake/README.mdto explain why the vcpkg toolchain file is specified in both thetoolchainFileproperty and as a cache variable inCMakePresets.json, improving documentation for future maintainers.Codebase and Test Improvements
log1.xmlto a more comprehensive and realistic registry tree structure, replacing the previous procedural log format.mwin32subdirectory to the libraries CMake build, ensuring the mwin32 component is included in the build process.testsubdirectory ifBUILD_TESTINGis enabled, preventing unnecessary test builds.Code Cleanup and Maintenance
src/Windows/libraries/multi_byte/include/m/multi_byte/to_span.h, provided an inline implementation for theto_spanfunction and removed its previous redundant declaration, simplifying the code. [1] [2]CMakeLists.txtby eliminating the/GLflag replacement.