-
Notifications
You must be signed in to change notification settings - Fork 146
Improve Windows build #511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
85adfc8 to
c571f77
Compare
|
Rebased onto master. The failure of The failure of |
|
FYI, here is an experimental branch working with MSVC: https://github.com/tueda/form/tree/ci-msvc |
|
So this one is nothing to do with windows, anyway. |
c571f77 to
b34fa20
Compare
|
Rebased. |
b34fa20 to
fbcf859
Compare
|
Rebased. |
fbcf859 to
45fbdba
Compare
|
Rebased. |
- Remove Unix-dependent code to enhance portability. - Replace guess_term_width() with io/console/size available in Ruby 1.9. - Use File::PATH_SEPARATOR. - Replace RUBY_PLATFORM with RbConfig::CONFIG["host_os"]. - On Windows, convert CR+LF to LF in output to align with test cases. - Add windows? method. - Add --show-newlines option to show CR/LF.
- Append $(EXEEXT) to TEST_BINS. - Always enclose $SHELL in quotes to accommodate spaces.
- Now the workflow creates the Windows distribution that is included in the release. - Use "mingw-w64-x86_64-ruby" instead of "ruby". The former gives "mingw32" for RbConfig::CONFIG["host_os"] but the latter gives "cygwin". - Refactor preparation of distributions.
On Windows, the standard output is opened with text mode. This patch sets the mode to binary mode, which partially resolves form-dev#418.
- "ExtComm_1" requires Unix. - "Sta_Fill_1" is pending on Windows. - "AppendPath" and "TempSortDir" are divided into Unix and Windows cases because off the different path separators.
Restrict the sort file creation check at startup to the main thread in TFORM. This change prevents unnecessary checks and potential race conditions caused by multiple threads. Close form-dev#602.
45fbdba to
a4df532
Compare
|
Now there are no test failures on native Windows (except for the occasional random failures in TFORM). |
Avoid null pointer dereferences during early termination before sort buffer allocation. Close form-dev#605.
a4df532 to
d49daaa
Compare
This PR consists of 3 patches to improve the building binaries on Windows:
Though to some extent this is ready for a merge, there are still some remaining issues:
LFwithout precedingCRremains in output (Wrong newline characters (CR+CR+LF) on Windows #418 (comment)).2 failed tests.
Issue135_3(features.frm:879)Sta_Fill_1(examples.frm:647)Concerning the 2 test failures, both are caused by segfaults (
Sta_Fill_1leads to a segfault also on Linux). The unexpected failures might be related to the fact that MSYS2 GCC is currently version 13.2.0, the buggy version (MSYS2 has no way to install a specific version like gcc 12).