summaryrefslogtreecommitdiff
path: root/win32
AgeCommit message (Collapse)Author
2024-10-09[Bug #20791] Set LIBRUBY_RELATIVE on mswinNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/11848
2024-09-29Remove leading spaces from `LIBPATHFLAG` and `RPATHFLAG`Nobuyoshi Nakada
Join with a space in `MakeMakefile#libpathflag` instead. Notes: Merged: https://github.com/ruby/ruby/pull/11724
2024-09-24Windows: Remove compatibility to ancient MSVCRT APILars Kanis
Using _wputenv_s simplifies the code and we can avoid code duplication by using rb_w32_home_dir() to initialize ENV['HOME']. Notes: Merged: https://github.com/ruby/ruby/pull/7034
2024-09-20Define HAVE_ISINF for Visual Studio >= 2013Silvio Traversaro
isinf is defined in Visual Studio since version 2013. Notes: Merged: https://github.com/ruby/ruby/pull/3758
2024-09-12Add error checking to readdir, telldir, and closedir calls in dir.cJeremy Evans
Raise SystemCallError exception when these functions return an error. This changes behavior for the following case (found by the tests): ```ruby dir1 = Dir.new('..') dir2 = Dir.for_fd(dir1.fileno) dir1.close dir2.close ``` The above code is basically broken, as `dir1.close` closed the file descriptor. The subsequent `dir2.close` call is undefined behavior. When run in isolation, it raises Errno::EBADF after the change, but if another thread opens a file descriptor between the `dir1.close` and `dir2.close` calls, the `dir2.close` call could close the file descriptor opened by the other thread. Raising an exception is much better in this case as it makes it obvious there is a bug in the code. For the readdir check, since the GVL has already been released, reacquire it rb_thread_call_with_gvl if an exception needs to be raised. Due to the number of closedir calls, this adds static close_dir_data and check_closedir functions. The close_dir_data takes a struct dir_data * and handles setting the dir entry to NULL regardless of failure. Fixes [Bug #20586] Co-authored-by: Nobuyoshi Nakada <[email protected]> Notes: Merged: https://github.com/ruby/ruby/pull/11393 Merged-By: jeremyevans <[email protected]>
2024-09-08Fix prelude to use IBFNobuyoshi Nakada
Since universal-parser and prism support, prelude code used functions inaccessible from outside libruby shared library. ``` linking goruby /usr/bin/ld: goruby.o: in function `prelude_eval': /home/runner/work/ruby/ruby/build/golf_prelude.c:221: undefined reference to `rb_ruby_prism_ptr' /usr/bin/ld: goruby.o: in function `pm_prelude_load': /home/runner/work/ruby/ruby/build/golf_prelude.c:192: undefined reference to `pm_options_line_set' /usr/bin/ld: /home/runner/work/ruby/ruby/build/golf_prelude.c:193: undefined reference to `pm_parse_string' /usr/bin/ld: goruby.o: in function `prelude_eval': /home/runner/work/ruby/ruby/build/golf_prelude.c:224: undefined reference to `pm_iseq_new_with_opt' /usr/bin/ld: /home/runner/work/ruby/ruby/build/golf_prelude.c:226: undefined reference to `pm_parse_result_free' /usr/bin/ld: goruby.o: in function `prelude_ast_value': /home/runner/work/ruby/ruby/build/golf_prelude.c:181: undefined reference to `rb_ruby_ast_data_get' /usr/bin/ld: goruby.o: in function `prelude_eval': /home/runner/work/ruby/ruby/build/golf_prelude.c:231: undefined reference to `rb_ruby_ast_data_get' /usr/bin/ld: goruby.o: in function `pm_prelude_load': /home/runner/work/ruby/ruby/build/golf_prelude.c:196: undefined reference to `pm_parse_result_free' collect2: error: ld returned 1 exit status ```
2024-08-21[Bug #20687] Exclude just built ruby as baserubyNobuyoshi Nakada
On Windows, an executable file in the current directory has the priority to the PATH environment variable always.
2024-08-11fix i386-ucrt buildRaed Rizqie
Notes: Merged: https://github.com/ruby/ruby/pull/11358
2024-07-31[Feature #20563] Drop support for Windows older than 8/Sever 2012Nobuyoshi Nakada
Directly call APIs available on Windows 8/Server 2012 and later. Notes: Merged: https://github.com/ruby/ruby/pull/11279
2024-07-31[Feature #20563] Drop support for Windows older than Vista/2008Nobuyoshi Nakada
Directly call APIs available on Windows Vista/Server 2008 and later. Notes: Merged: https://github.com/ruby/ruby/pull/11279
2024-07-15Win32: Skip check for VS2022 FP BUG by defaultNobuyoshi Nakada
2024-07-14Win32: Pass triplet option to vcpkgNobuyoshi Nakada
2024-07-11Move gc_impl.c to gc/gc_impl.cPeter Zhu
This commit creates a new directory `gc` to put different GC implementations and moves the default GC from gc_impl.c to gc/gc_impl.c. The default GC can be easily switched using the `BUILTIN_GC` variable in Makefile.in.
2024-07-02[win32] Fallback release date when revision.h is not presentNobuyoshi Nakada
2024-06-26We couldn't use nmake before configure.batHiroshi SHIBATA
2024-06-26Link dll files on install-vcpkg tasksHiroshi SHIBATA
2024-06-25Added tasks related vcpkgHiroshi SHIBATA
2024-06-22Expand --with-opt-dir argumentsNobuyoshi Nakada
2024-06-09Use `dllexport` as `RUBY_FUNC_EXPORTED` on WindowsNobuyoshi Nakada
2024-06-05[Bug #20524] Do not define USE_GMP insteaad of setting to "no"Nobuyoshi Nakada
2024-06-05[Bug #20524] win32: Try to configure GMP if availableNobuyoshi Nakada
2024-06-02Add `nightly` recipeNobuyoshi Nakada
Installs the last revision in the previous `RUBY_RELEASE_DATE`.
2024-05-29Fix `calloc` arguments order for -Wcalloc-transposed-argsNobuyoshi Nakada
2024-05-23Define `incflags` also on mswinNobuyoshi Nakada
2024-03-31Manage required baseruby version in one placeNobuyoshi Nakada
Add a Ruby script mode to `tool/missing-baseruby.bat` that checks if `RUBY_VERSION` meets the required version. This will enable similar checks on mswin as well.
2024-03-13Embed manifest with VS2013 or laterNobuyoshi Nakada
Since VS2013, `link.exe` supports `-manifest:embed` option. [`/MANIFEST` (Create side-by-side assembly manifest)](https://learn.microsoft.com/en-us/cpp/build/reference/manifest-create-side-by-side-assembly-manifest?view=msvc-170&viewFallbackFrom=msvc-120)
2024-02-15Do not include a backtick in error messages and backtracesYusuke Endoh
[Feature #16495]
2024-02-12Win32: Include stdio.h for `printf`Nobuyoshi Nakada
2024-02-11Win32: Use `TARGET_OS` for word-sizeNobuyoshi Nakada
It is derived from `_WIN64` pre-defined macro, at `-osname-` in win32/setup.mak.
2024-02-11Win32: Copy coroutine no longer existsNobuyoshi Nakada
At 42130a64f02294dc8025af3a51bda518c67ab33d, it has been replaced with pthread implementation.
2024-02-11Win32: Define `HAVE_INTTYPES_H`Nobuyoshi Nakada
Suppress redefinition warnings, inttypes.h has been provided as well as stdint.h since `_MSC_VER` 1600 (= Visual C++ 10.0 = Visual Studio 2010). ``` C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(123): warning C4005: 'PRIdPTR': macro redefinition D:\a\ruby\ruby\src\include\ruby/backward/2/inttypes.h(51): note: see previous definition of 'PRIdPTR' C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(142): warning C4005: 'PRIiPTR': macro redefinition D:\a\ruby\ruby\src\include\ruby/backward/2/inttypes.h(52): note: see previous definition of 'PRIiPTR' C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(161): warning C4005: 'PRIoPTR': macro redefinition D:\a\ruby\ruby\src\include\ruby/backward/2/inttypes.h(53): note: see previous definition of 'PRIoPTR' C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(180): warning C4005: 'PRIuPTR': macro redefinition D:\a\ruby\ruby\src\include\ruby/backward/2/inttypes.h(54): note: see previous definition of 'PRIuPTR' C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(199): warning C4005: 'PRIxPTR': macro redefinition D:\a\ruby\ruby\src\include\ruby/backward/2/inttypes.h(55): note: see previous definition of 'PRIxPTR' C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(218): warning C4005: 'PRIXPTR': macro redefinition D:\a\ruby\ruby\src\include\ruby/backward/2/inttypes.h(56): note: see previous definition of 'PRIXPTR' ```
2023-11-23windows-arm64 support (#8995)Pierrick Bouvier
* [win32] fix compilation for windows-arm64 Credits to MSYS2 Ruby package using this patch. * [win32] nm use full options Fix compilation error when using MSYS2 environment. Credits to MSYS2 Ruby package using this patch. * [win32] detect llvm-windres (used for windows-arm64) When adding preprocessor option for llvm-windres (using clang as parameter), it fails. Thus, do not add this. It's needed to be able to compile windows-arm64 version, because MSYS2 toolchain is LLVM based (instead of GCC/binutils). * [win32] pioinfo detection for windows-arm64 This fixes "unexpected ucrtbase.dll" for native windows-arm64 ruby binary. It does not solve issue with x64 version emulated on this platform. Value of pioinfo pointer can be found in ucrtbase.dll at latest adrp/add sequence before return of _isatty function. This works for both release and debug ucrt. Due to the nature of aarch64 ISA (vs x86 or x64), it's needed to disassemble instructions to retrieve offset value, which is a bit more complicated than matching specific string patterns. Details about adrp/add usage can be found in this blog post: https://devblogs.microsoft.com/oldnewthing/20220809-00/?p=106955 For instruction decoding, the Arm documentation was used as a reference.
2023-11-09[Bug #18286] Make builtin binary if sharable in universal binariesNobuyoshi Nakada
2023-10-27[Feature #19244] Windows: Prefer USERPROFILE over HOMEPATH on startup as wellLars Kanis
2023-09-27Rename YARP symbols to prismKevin Newton
2023-09-25Add `rb_w32_uspawn_process`Nobuyoshi Nakada
2023-09-21Move YARP_BUILD_DIR to common.mkNobuyoshi Nakada
It does not need to be an absolute path.
2023-08-18Revert "Fix tool/update-deps for YARP files"Takashi Kokubun
This reverts commit 6fff5c5ba23a2790c9d189de82e157c9fa986f96. Revert "Use $(top_srcdir) entries for mswin (#8244)" This reverts commit e327bf32bdfa610a0f1834048bb1422de992c073. Revert "Update dependencies" This reverts commit aba26a88040c322a188292447fd18a2b9c76c713. Revert "Use {$(VPATH)} for OpenBSD" This reverts commit 2046e054bc811fd6a8e30c926aa6c9c4a5884262. --- None of those revisions actually worked for both mswin and OpenBSD at the same time. I need more time to build something that works for both.
2023-08-18Use $(top_srcdir) entries for mswin (#8244)Takashi Kokubun
While the $(VPATH) rules live in common.mk, mswin seems to ignore them. We need to use $(VPATH) for OpenBSD, but we need to use the other one for mswin. Notes: Merged-By: k0kubun <[email protected]>
2023-08-15Use `::` form workflow commandsNobuyoshi Nakada
2023-07-27Clean up OPT_STACK_CACHING (#8132)Takashi Kokubun
Notes: Merged-By: k0kubun <[email protected]>
2023-06-30Don't check for null pointer in calls to freePeter Zhu
According to the C99 specification section 7.20.3.2 paragraph 2: > If ptr is a null pointer, no action occurs. So we do not need to check that the pointer is a null pointer. Notes: Merged: https://github.com/ruby/ruby/pull/8004
2023-06-21[Feature #19741] Add yarp to buildsJemma Issroff
Add yarp to common.mk and windows builds to enable us to run yarp correctly with CI. Notes: Merged: https://github.com/ruby/ruby/pull/7964
2023-06-02Fix the case no file under bin directoryNobuyoshi Nakada
NMake cannot handle empty expanded targets.
2023-06-01Hide the usage of `rb_io_t` where possible. (#7880)Samuel Williams
This retries the compatible parts of the previously reverted PR so we can continue to update related code without breaking backwards compatibility. Notes: Merged-By: ioquatix <[email protected]>
2023-06-01Revert "Hide most of the implementation of `struct rb_io`. (#6511)"NARUSE, Yui
This reverts commit 18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2. fix [Bug #19704] https://bugs.ruby-lang.org/issues/19704 This breaks compatibility for extension libraries. Such changes need a discussion.
2023-05-30Hide most of the implementation of `struct rb_io`. (#6511)Samuel Williams
* Add rb_io_path and rb_io_open_descriptor. * Use rb_io_open_descriptor to create PTY objects * Rename FMODE_PREP -> FMODE_EXTERNAL and expose it FMODE_PREP I believe refers to the concept of a "pre-prepared" file, but FMODE_EXTERNAL is clearer about what the file descriptor represents and aligns with language in the IO::Buffer module. * Ensure that rb_io_open_descriptor closes the FD if it fails If FMODE_EXTERNAL is not set, then it's guaranteed that Ruby will be responsible for closing your file, eventually, if you pass it to rb_io_open_descriptor, even if it raises an exception. * Rename IS_EXTERNAL_FD -> RUBY_IO_EXTERNAL_P * Expose `rb_io_closed_p`. * Add `rb_io_mode` to get IO mode. --------- Co-authored-by: KJ Tsanaktsidis <[email protected]> Notes: Merged-By: ioquatix <[email protected]>
2023-05-24Fix "runs a C function with the global lock unlocked and unlocks IO with the ↵Samuel Williams
generic RUBY_UBF_IO" on Windows. (#7848) * Enable borked spec. * Ensure win32 wrappers are visible and used. * Reorganise `read`/`write`/`pipe` in `thread_spec.c`. Notes: Merged-By: ioquatix <[email protected]>
2023-05-24Add support for pread/pwrite on windows. (#7827)Samuel Williams
Notes: Merged-By: ioquatix <[email protected]>
2023-05-12Use Lrama LALR parser generator instead of Bisonv3_3_0_preview1Yuichiro Kaneko
https://bugs.ruby-lang.org/issues/19637 Co-authored-by: Nobuyoshi Nakada <[email protected]> Notes: Merged: https://github.com/ruby/ruby/pull/7798 Merged-By: yui-knk <[email protected]>