Age | Commit message (Collapse) | Author |
|
* vm_dump.c: Dump machine registers on loongarch64 Linux.
* coroutines: Support for native loongarch64 coroutines.
---------
Co-authored-by: zangruochen <zangruochen@loongson.cn>
Notes:
Merged-By: nurse <naruse@airemix.jp>
|
|
On macOS, it is not used to localize symbols in dynamic libraries
(libruby.dylib and libyjit.o). Instead, using `objcopy` which does
not support recent mach-O causes linker errors as bellow.
```
linking shared-library libruby.3.3.dylib
error: cannot parse the debug map for 'libruby.3.3.dylib': Invalid data was encountered while parsing the file
linking ruby
ld: malformed mach-o: LC_*_DYLIB load command string extends beyond end of load command file './libruby.3.3.dylib'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
|
|
LLVM objcopy does not support localizing symbols option, e.g,
`--localize-symbol` and `--keep-global-symbol`, for MachO.
|
|
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`
Notes:
Merged: https://github.com/ruby/ruby/pull/7268
|
|
|
|
YJIT will need it to address symbol leakage issue. Fallback to `:` when
OBJCOPY is not available on the system.
Co-authored-by: Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/7115
|
|
This was a difference from using a GNU toolchain previously. It wasn't a
problem because we don't invoke $(LD) in the Makefile currently. YJIT
will want to invoke LD, so needs this consistency.
Notes:
Merged: https://github.com/ruby/ruby/pull/7115
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7186
|
|
|
|
Tested by another OpenBSD developer and confirmed to significantly
improve things.
|
|
libruby transitively"
This reverts commit c5eefb7f37db2865891298dd1a1e60dff09560ad.
Flat namespace breaks gems with C extention if its symbols conflict
with ohter libraries.
|
|
transitively
This repairs the assumption, which many fat-gem maintainer expect, "An
extension built with --disable-shared Ruby is loadable from
--enable-shared Ruby".
By default all references resolved to a dynamic library use "two-level
namespace", which record the library name and symbol name for each
resolution entry. On the other hand, `-flat_namespace` discards the
library name information and resolves symbols "flatly".
This behavior is useful for us to ignore which image (`ruby`
executable or `libruby.dylib`) provides rb symbols at runtime.
Notes:
Merged: https://github.com/ruby/ruby/pull/7008
|
|
See also e7bffe0
https://bugs.ruby-lang.org/issues/19239
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/6959
|
|
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
It is used from mkmf.rb on target environments.
|
|
miniruby is used to resolve symbols in ext bundles
https://bugs.ruby-lang.org/issues/19239
Co-authored-by: Yuta Saito <kateinoigakukun@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/6944
|
|
Tested on production workloads at Shopify for > 1 year and proven
to be quite stable. Enabling YJIT at run-time is still guarded
behind the --yjit command-line option for now.
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
It's unspecified by POSIX. zsh and dash give a newline and
bash doesn't substitute it. Attributes don't have to be
followed by a newline anyway, so just remove it.
[Bug #19174]
|
|
Keep `target_alias` empty if it is set to empty. If it is set to non
empty, `os_version_style_transform` is not used.
|
|
It may cause parse errors in some other sh even in never executed
parts.
Notes:
Merged: https://github.com/ruby/ruby/pull/6844
|
|
For people using Rosetta 2 on ARM Macs, it can happen that the
rustc in the PATH compiles for x86_64 while clang is targeting
ARM. We were enabling YJIT in these situations because the test
program compiled fine, but caused linking failure later due to
the architecture mismatch.
Adjust the test program to fail when rustc's target arch is different
from ruby's target arch.
[Bug #19146]
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
* 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>
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
YJIT: Show YJIT profile in RUBY_DESCRIPTION
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
The bundle_loader check for darwin checks EXTSTATIC, but previously the
setup for the variable comes after the check. I had trouble building
using --with-static-linked-ext on darwin before this change.
Notes:
Merged: https://github.com/ruby/ruby/pull/6675
Merged-By: XrXr
|
|
Preivously we didn't have a "checking ...." line for this check and when
rustc was too old, we would dump the error message to the console like:
checking for rustc... rustc
error: there is no argument named `x`
--> <anon>:1:33
|
1 | fn main() { let x = 1; format!("{x}"); }
| ^^^
error: aborting due to previous error
`configure` checks usually don't do this and this might be confusing.
With this commit it now says something like:
checking whether rustc is new enough for YJIT... no
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
* YJIT: improve/fix code to automatically build YJIT when available
* Set YJIT_SUPPORT=no
* Fix rustc => $RUSTC
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
Even if `rustc` is available, it should not be an error unless
`--enable-yjit` is explicitly given.
Notes:
Merged: https://github.com/ruby/ruby/pull/6681
|
|
As the target-list of `rustc` is different from `config.guess` and
`config.sub`, `$target` cannot be used directly.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6677
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6677
|
|
* Auto-enable YJIT build when rustc >= 1.58.0 present
* Try different incantation to have rustc output to stdout only
* Add comment, remove whitespace
* Try to detect if we are on a platform on which YJIT is supported
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
The CI for MinGW has used it.
|
|
As clang on macOS defines this macro as 0 internally when a sanitizer
option is given, clear it before definition to suppress redefinition
warnings.
Notes:
Merged: https://github.com/ruby/ruby/pull/6646
|
|
Previously, enabling only "disasm" didn't actually build. Since these
two features are closely related and we don't really use one without the
other, let's simplify and merge the two features together.
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6482
|
|
(#6457)
Reverse configure.ac changes that disable YJIT stats on Graviton1
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Except for GNU make which updates makefiles automatically, repeating
configure in the same directory causes `make` to stop whenever pulled
a new commit. This is unexpected in CIs.
Notes:
Merged: https://github.com/ruby/ruby/pull/6436
|
|
This make variable is very useful for daily build.
Notes:
Merged: https://github.com/ruby/ruby/pull/6433
Merged-By: nobu <nobu@ruby-lang.org>
|
|
* YJIT: Test Rust 1.58.1 as well on Cirrus
* YJIT: Avoid using a Rust 1.60.0 feature
* YJIT: Use autoconf to detect support
* YJIT: We actually need to run it
for checking it properly
* YJIT: Try cfg!(target_feature = "lse")
* Revert "YJIT: Try cfg!(target_feature = "lse")"
This reverts commit 4e2a9ca9a9c83052c23b5e205c91bdf79e88342e.
* YJIT: Add --features stats only when it works
* Update configure.ac
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
yjit uses _Unwind_* functions from libunwind. These functions
are available in libc++abi (which requires libpthread), so
add those to LDFLAGS if enabling yjit on OpenBSD.
Notes:
Merged: https://github.com/ruby/ruby/pull/6421
|
|
This add support for bmake, which should allow building with
`configure --enable-yjit` for the BSDs. Tested on FreeBSD 13 and
on macOS with `configure MAKE=bmake` on a case-sensitive file system.
It works by including a fragment into the Makefile through the configure
script, similar to common.mk. It uses the always rebuild approach to
keep build system changes minimal.
Notes:
Merged: https://github.com/ruby/ruby/pull/6408
|
|
The warning against `-undefined dynamic_lookup` is just a warning yet,
and many gems seem to pay no attention to warnings. Until it fails
actually, keep it as a migration path, except for standard extension
libraries and bundled extension gems.
Notes:
Merged: https://github.com/ruby/ruby/pull/6394
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
Add the `--with-gmp-dir` to specify the prefix directory of GMP.
The`--without-gmp` option is preserved for convenience. It can
be used to force to reject using GMP even if the `--with-gmp-dir`
option is specified.
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6370
|