summaryrefslogtreecommitdiff
path: root/win32
AgeCommit message (Collapse)Author
2022-04-21[Win32] allow pipe in flockNobuyoshi Nakada
2022-04-15[Win32] Fix mode of character/pipe device stat [Bug #18732]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5803
2022-04-07Get rid of type-punning pointer castsNobuyoshi Nakada
2022-04-05Load fake.rb at `BTESTRUBY`Nobuyoshi Nakada
So that `mkmf` checks work from `make run`, and also remove duplicate `$(MINIRUBYOPT)` which is used in `$(MINIRUBY)`. Notes: Merged: https://github.com/ruby/ruby/pull/5747
2022-03-30[Bug #18667] Define RUBY_API_VERSION on WindowsPeter Zhu
On other platforms, RUBY_SO_NAME is defined from RUBY_API_VERSION. ruby_version contains the ABI version, which is not needed. RUBY_API_VERSION is defined as MAJOR.MINOR. Notes: Merged: https://github.com/ruby/ruby/pull/5736
2022-03-23Need to reconfigure and rebuild everything when abi.h changedNobuyoshi Nakada
2022-03-16Avoid console input behavior in windows 10 [Bug #18588]YO4
When ANSI versions of PeekConsoleInput read multibyte charactor partially, subsequent ReadFile returns wrong data on newer Windows 10 versions (probably since Windows Terminal introduced). To avoid this, use Unicode version of of PeekConsoleInput/ReadConsole. Notes: Merged: https://github.com/ruby/ruby/pull/5634 Merged-By: nobu <nobu@ruby-lang.org>
2022-03-02[MSWin] Allow gems with VS2022 for VS2019 build ruby [Misc #18362]Nobuyoshi Nakada
Although not sure if it is really compatible, let’s give it a try.
2022-02-24Add ABI version to ruby_version tag on WindowsPeter Zhu
Notes: Merged: https://github.com/ruby/ruby/pull/5595
2022-02-20[MSWin] Tentative measure for a bug of VS2022 [Misc #18362]Nobuyoshi Nakada
Disable the use of `__assume()`, when combinations of `isnan()`, `isinf()` and `__assume()` will be wrongly optimized due to the bug of VS2022. Notes: Merged: https://github.com/ruby/ruby/pull/5579
2022-02-19Check if `__assume` is supportedNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5577
2022-02-19Define `HAVE___BUILTIN_UNREACHABLE` instead of `UNREACHABLE`Nobuyoshi Nakada
`UNREACHABLE` in ruby/internal/has/builtin.h is only used as just a flag now, and redefined in ruby/backward/2/assume.h then. Notes: Merged: https://github.com/ruby/ruby/pull/5577
2022-02-12[MSWin] Remove stale configuration check [ci skip]Nobuyoshi Nakada
PSAPI library has not been used since d66c5768caaee16a0c2c2c641185.
2022-01-24Fixed an missing percent in the batch fileNobuyoshi Nakada
2022-01-18include/ruby/win32.h: define HAVE_X for the missing prototypes (#5456)Yuta Saito
Notes: Merged-By: kateinoigakukun
2021-12-30win32/win32.c Fix PROT_EXEC bit flag check for FlushInstrucitonCache()nagachika
Notes: Merged: https://github.com/ruby/ruby/pull/5372
2021-12-27Fix some bornheadsU.Nakamura
2021-12-27Tiny mmap emulation for WindowsU.Nakamura
- prerequisite of supporting YJIT with VC++. - note that now can specfily `--yjit` on mswin64, but not enabled YJIT'ed code because of YJIT requires `OPT_DIRECT_THREADED_CODE` or `OPT_CALL_THREADED_CODE` in `rb_yjit_compile_iseq`.
2021-12-13Rename --jit to --mjit (#5248)Takashi Kokubun
* Rename --jit to --mjit [Feature #18349] * Fix a few more --jit references * Fix MJIT Actions * More s/jit/mjit/ and re-introduce --disable-jit * Update NEWS.md * Fix test_bug_reporter_add Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-12-02[MSWin] Stop passing non-numeric string to `exit` commandNobuyoshi Nakada
2021-11-26[MSWin] Replace -Zi in DEBUGFLAGS with -Z7 to suppress warningsNobuyoshi Nakada
2021-11-24No need to link and install .pdb anymoreAlan Wu
With /Z7, no .pdb file is generated, so trying to link it during build fails on my machine even though it's okay on CI. By the way, in my local testing, no .pdb is generated in cwd at runtime even without the /Fd option. I guess we can pass it just in case. Notes: Merged: https://github.com/ruby/ruby/pull/5058
2021-11-24MJIT MSVC: Use /Z7 to avoid PDB write raceAlan Wu
With MSVC, MJIT uses the /Fd option on an installed PDB file when compiling. Combined with the /Zi option, this causes the PDB file to be modified every time MJIT compiles. Concurrent modifications to the same PDB file is known to cause problems. MSVC even has an option, /FS to deal with it. When running MJIT tests in parallel, sometimes this leads to corrupting the PDB file, breaking subsequent compilations. On CI, we get messages like these: rb_mjit_header-3.1.0.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header. To avoid this race, use the /Z7 option when building precompiled header, which asks the compiler to put debug info into the .obj file, eliminating the need for pointing the compiler to the PDB file for the precompiled header. The /Fd option is changed to use a unique path based on the name of the dll output. Because of the /debug linker flag, we generate a PDB file at runtime even though we use /Z7. There are a couple things missing from this change: - Because MJIT uses the interpreter's CFLAGS build option and that contains /Zi, putting /Z7 at the end leads to a build warning - With /Z7 no PDB file is built anymore, so the code for installing the PDB file can be removed There might also be other problems with this change I haven't noticed while developing this change using Github Actions. I don't have a Windows dev environment with Visual Studio so I can't finish this change easily. Please feel free to complete this change if it makes sense. Note: - On master, you can see the PDB file changing with llvm-pdbutil or a simple checksum. There is an age field in the file that is bumped - I'm not sure if users can specify compile flags on MSVC. If they couldn't, maybe it's easier to change MJIT's compile options to use /Z7 when building the precompile header. - MJIT could pass different options at runtime to generate fewer files. Right now it inherits the /DEBUG linker flag which causes a PDB file to be generated at runtime even though /Z7 is used. Relevant MSVC docs: - [/Zi,/Z7](https://docs.microsoft.com/en-us/cpp/build/reference/z7-zi-zi-debug-information-format?view=msvc-160) - [/DEBUG](https://docs.microsoft.com/en-us/cpp/build/reference/debug-generate-debug-info?view=msvc-160) - [/FS](https://docs.microsoft.com/en-us/cpp/build/reference/fs-force-synchronous-pdb-writes?view=msvc-160) Notes: Merged: https://github.com/ruby/ruby/pull/5058
2021-10-30Select including thread impl file at config timeYuta Saito
Notes: Merged: https://github.com/ruby/ruby/pull/5043
2021-10-20Remove the scraperAaron Patterson
Now that we're using the jit function entry point, we don't need the scraper. Thank you for your service, scraper. ❤️
2021-10-20Yet Another Ruby JIT!Jose Narvaez
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20Refactor uJIT code into more files for readabilityMaxime Chevalier-Boisvert
2021-10-20Try to fix Windows buildAlan Wu
2021-10-04Clang never evaluates expr in `__builtin_assume`xtkoba
Notes: Merged: https://github.com/ruby/ruby/pull/4446
2021-10-02[Win32] Prefer Cryptography Next Generation APINobuyoshi Nakada
[BCryptGenRandom] is available since Windows Vista / Windows Server 2008. Regarding [CryptGenRandom]: > This API is deprecated. New and existing software should start > using Cryptography Next Generation APIs. Microsoft may remove > this API in future releases. [BCryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom [CryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom Notes: Merged: https://github.com/ruby/ruby/pull/4924
2021-09-24Reminders of the Windows versions each API is available [ci skip]Nobuyoshi Nakada
2021-09-21Ripper source on mswinNobuyoshi Nakada
* Get rid of command substitution for cmd.exe. * Separate RM1 command to remove single file sans directory.
2021-09-20MINGW: _WIN64 is not defined on i386-mingw32 + ucrt.xtkoba (Tee KOBAYASHI)
Notes: Merged: https://github.com/ruby/ruby/pull/4599
2021-09-20MINGW: Fix build error on Windows UCRTxtkoba (Tee KOBAYASHI)
Notes: Merged: https://github.com/ruby/ruby/pull/4599
2021-08-25Add missing empty macro [ci skip]Nobuyoshi Nakada
2021-08-15[Win32] put a space before configure options [Bug #17588]Nobuyoshi Nakada
Not to be concatenated with the preceding `--with-`* option.
2021-08-07Group commands on GitHub ActionsNobuyoshi Nakada
2021-08-05Revert "Removed extinit.o from main programs"Yusuke Endoh
This reverts commit ac86fcbfd0bab8667d277aa575bc5b81e5135d3c. This change broke "--disable-shared --with-static-linked-ext".
2021-07-06Set ENCSTATIC in rbconfig.rb [Bug #17929]Nobuyoshi Nakada
2021-07-04[Win32] Fix assembler name when cross compilingNobuyoshi Nakada
Hostx64\x86\nmake.exe sets AS to ml64 which targets amd64, but we need assembler for x86.
2021-07-03Remove copy coroutine build rule.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/4623
2021-07-03Removed extinit.o from main programsNobuyoshi Nakada
It is included in libruby, which is linked into the main programs.
2021-06-23Add parentheses to avoid pointless conditionJeremy Evans
Pointed out by xtkoba (Tee KOBAYASHI). Fixes [Bug #17946] Notes: Merged: https://github.com/ruby/ruby/pull/4575
2021-06-09[Win32] fixed PACKED_STRUCT_UNALIGNED on x86Nobuyoshi Nakada
Use MACHINE for x86 CPU family, ARCH is CPU model name (i386) and cannot be x86.
2021-05-17[Win32] long path name support [Bug #12551]Gabriel Nagy
Implement long path support on Windows by applying Microsoft's recommended application manifest. To make this work on both Visual C++ and MinGW, include the manifest as a resource when generating the resource files. This way it will be embedded into the executables generated by both compilers. It's important for the manifest resource to have ID 1, otherwise GCC will embed a default manifest. Note that in addition to this, the user needs to have [long paths enabled] either by modifying the registry or by enabling a group policy. [long paths enabled]: https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/4505 Merged-By: nobu <nobu@ruby-lang.org>
2021-05-04`_MSC_VER` may not be definedxtkoba
Notes: Merged: https://github.com/ruby/ruby/pull/4453
2021-04-10win32: fix RUBY_RELEASE_DATE in MakefileNobuyoshi Nakada
As it is overridden by the definition in common.mk, instead define YEAR, MONTH and DAY which are used there. This macro is useful for daily build&installation by the combination with "relative-load", for example: ```sh $ ./configure --prefix=/. --enable-load-relative \ --with-destdir='$(HOME)/.rbenv/versions/$(RUBY_RELEASE_DATE)' ``` This can install images usable by rbenv per days.
2021-03-17Remove unused DEFAULT_KCODEKazuhiro NISHIYAMA
2021-03-08Increment global variables atomicallyNobuyoshi Nakada
2021-03-08Make vm_exit_handler installation MT-safeNobuyoshi Nakada