| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
https://bugs.ruby-lang.org/issues/19637
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the
macros bellow:
* `RBIMPL_ATTR_PACKED_STRUCT_BEGIN`
* `RBIMPL_ATTR_PACKED_STRUCT_END`
* `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN`
* `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END`
|
| |
|
|
|
|
|
| |
When out-of-place build, and revision.h does not exist in the source
directory, `VPATH` fallbacks to the current directory.
|
| |
|
| |
|
| |
|
|
|
|
| |
There's no mjit_compile.inc, so no need to use this prefix anymore.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Windows: Fix warning about undefined if_indextoname()
* Windows: Fix UNIXSocket on MINGW and make .pair more reliable
* Windows: Use nonblock=true for read tests with scheduler
* Windows: Move socket detection from File.socket? to File.stat
Add S_IFSOCK to Windows and interpret reparse points accordingly.
Enable tests that work now.
* Windows: Use wide-char functions to UNIXSocket
This fixes behaviour with non-ASCII characters.
It also fixes deletion of temporary UNIXSocket.pair files.
* Windows: Add UNIXSocket tests for specifics of Windows impl.
* Windows: fix VC build due to missing _snwprintf
Avoid usage of _snwprintf, since it fails linking ruby.dll like so:
linking shared-library x64-vcruntime140-ruby320.dll
x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol snwprintf
x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol vsnwprintf_l
whereas linking miniruby.exe succeeds.
This patch uses snprintf on the UTF-8 string instead.
Also remove branch GetWindowsDirectoryW, since it doesn't work.
* Windows: Fix dangling symlink test failures
Co-authored-by: Lars Kanis <kanis@comcard.de>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Non-GNU make seems to generate empty revision.h, but it doesn't make
sense since https://github.com/ruby/ruby/pull/6382.
Also the $(HAVE_BASERUBY:yes=tmp) hack doesn't seem to be working on
OpenBSD. I'll remove it to focus on fixing RubyCI first, and then deal
with baseruby-missing environments. At least a snapshot should have
revision.h and it might work fine though.
|
|
|
|
|
|
|
| |
* Auto-generate the release date on version.h
from git CommitDate
* Generate revision.h on mswin
|
| |
|
| |
|
|
|
|
| |
Get rid of the conflict with system-provided small `off_t`.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
`exit` command ignores the rest arguments after an exit code, while
`type` command tries to read all as files.
|
|
|
|
|
|
|
| |
The current MJIT relies on SIGCHLD and fork(2) to be performant, and
it's something mswin can't offer. You could run Linux MJIT on WSL
instead.
[Misc #18968]
|
|
|
|
|
|
| |
As commented in include/ruby/internal/abi.h, since teeny versions of
Ruby should guarantee ABI compatibility, `RUBY_ABI_VERSION` has no role
in released versions of Ruby.
|
|
|
|
|
| |
So that `mkmf` checks work from `make run`, and also remove
duplicate `$(MINIRUBYOPT)` which is used in `$(MINIRUBY)`.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
Disable the use of `__assume()`, when combinations of `isnan()`,
`isinf()` and `__assume()` will be wrongly optimized due to the
bug of VS2022.
|
| |
|
|
|
|
|
| |
`UNREACHABLE` in ruby/internal/has/builtin.h is only used as just
a flag now, and redefined in ruby/backward/2/assume.h then.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
|
| |
Now that we're using the jit function entry point, we don't need the
scraper. Thank you for your service, scraper. ❤️
|
|
|
|
| |
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
|
|
|
|
|
| |
* Get rid of command substitution for cmd.exe.
* Separate RM1 command to remove single file sans directory.
|
| |
|
| |
|
|
|
|
|
|
| |
This reverts commit ac86fcbfd0bab8667d277aa575bc5b81e5135d3c.
This change broke "--disable-shared --with-static-linked-ext".
|
| |
|