Conversation
5b48992 to
f06c2e9
Compare
|
Sure, my goal was precisely to split this into multiple PRs to make it easier to review; I included the last three commits because each of them is necessary to fix part of the tests on Windows. |
f06c2e9 to
5cce0db
Compare
5cce0db to
ae7e0a8
Compare
|
I had almost forgot that I had this PR on Windows, and it is already post JNCF 2026, so another quick rebase; I haven't checked if everything still works on Windows (the CI should tell me anyway). |
|
I check with the AI, it only the test on configure.ac, that can test with flags for configure. |
|
This port targets MinGW. I assume that MSVC support won't be available until CMake builds are implemented… |
That not true. In vcpkg we can compile msvc with autoconf. |
|
Ah, that's good news. I really should try to figure out how to build with MSVC one day. |
|
I can help you to do it on the ci. currently when I compile with msvc (without your PR) C:\src\vcpkg\buildtrees\msolve\src\v0.9.4-7cd9c24250.clean\src\usolve../neogb/tools.h(25): fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory Do you want first let your PR merge, then we can deal with msvc errors? |
This looks like a portability issue. If you find a solution, feel free to open a new PR for that.
I don't think this PR will be merged anytime soon. As you can see, there has been no new review for a few months, while my other PRs are processed rather quickly. It is clear that Windows support is absolutely not a priority for the devs… |
I guess the msvc support is very low priority as well. |
|
Keep your good job and split this PR to many smaller PRs that devs may be interested. |
ae7e0a8 to
3562257
Compare
This work was done during the JNCF 2025 and is now rebased on master. I guess I won't have time to clean up everything or split it into multiple PRs before going on vacation tonight, so I'm marking it as a draft (but at least it can serve as a demo).
In short, this is achieved by providing the following headers:
src/fglm/aligned_alloc.h, which provides a handwritten implementation ofposix_memalignon Windows. I also providedposix_memalign_freefor the reason in https://learn.microsoft.com/en-us/cpp/standard-library/cstdlib?view=msvc-170#remarks-6, and modified files doingfreeover memory allocated byposix_memalignto useposix_memalign_free.src/msolve/getdelim.h, which provides Gnulib's implementation ofgetdelimandgetlineon Windows.In addition, I modified
src/neogb/sort_r.hto prevent undefined reference toqsort_r(though noporpoise/sort_r#17 might be a better idea), and addedbto fopen access modes so that we have LF instead of CRLF on Windows. I modifiedsrc/usolve/refine.cto usempz_get_ullfrom Bitwuzla instead ofmpz_get_uito always get 64-bit integers even iflongis 32-bit. I also fixed a few bugs that will be the subject of separate PRs.All tests passed on CI and my aarch64-windows machine.