| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Add --preprocessor and --preprocessor-arg for each preprocessor
command arguments, as windres 2.36 requires preprocessor name and
arguments to be separated to respect spaces in these paths.
|
|
|
|
|
|
|
|
| |
`File.absolute_path?` has been added since Ruby 2.7.0, but it isn't
mentioned in the NEWS. So this patch adds a NEWS entry.
ref: https://bugs.ruby-lang.org/issues/15868
Co-authored-by: nagachika <nagachika@ruby-lang.org>
|
| |
|
| |
|
|
|
|
|
|
| |
It always branches by `obj` is `Qundef` or not, which is invariant
for each functions; `obj_method` is the latter, and the other two
are the former.
|
|
|
|
|
| |
It is unable where unaligned word access is disallowed and
`double` is wider than pointers.
|
| |
|
|
|
|
|
|
| |
Because of `double` in `RFloat`, `RValue` would be packed by
`sizeof(double)` by default, on platforms where `double` is wider
than `VALUE`. Size of `RValue` is multiple of 5 now.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rb_funcall* (rb_funcall(), rb_funcallv(), ...) functions invokes
Ruby's method with given receiver. Ruby 2.7 introduced inline method
cache with static memory area. However, Ruby 3.0 reimplemented the
method cache data structures and the inline cache was removed.
Without inline cache, rb_funcall* searched methods everytime.
Most of cases per-Class Method Cache (pCMC) will be helped but
pCMC requires VM-wide locking and it hurts performance on
multi-Ractor execution, especially all Ractors calls methods
with rb_funcall*.
This patch introduced Global Call-Cache Cache Table (gccct) for
rb_funcall*. Call-Cache was introduced from Ruby 3.0 to manage
method cache entry atomically and gccct enables method-caching
without VM-wide locking. This table solves the performance issue
on multi-ractor execution.
[Bug #17497]
Ruby-level method invocation does not use gccct because it has
inline-method-cache and the table size is limited. Basically
rb_funcall* is not used frequently, so 1023 entries can be enough.
We will revisit the table size if it is not enough.
|
| |
|
|
|
|
|
| |
If `build` directory exists, `rake build` is `Rake::FileTask`.
So skip if exists.
|
|
|
|
| |
Float should not be compared by identity.
|
|
|
|
|
| |
A path starts with '/' is not an absolute path on Windows, because
of drive letter or UNC.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Because `.ext/common` is not relative from top source directory.
Fix failures with out-of-place build directory.
|
|
|
|
| |
because some features are already loaded.
|
| |
|
| |
|
|
|
|
| |
Co-Authored-By: Matt Valentine-House <31869+eightbitraptor@users.noreply.github.com>
|
| |
|
|
|
|
| |
https://github.com/ruby/irb/commit/502c590925
|
|
|
|
|
|
|
|
| |
* using the appropriciate exception instead of `break` so that the session
can be continue after the `irb_source` and `irb_load` commands
* suppress extra new line due to one more `#prompt` call
https://github.com/ruby/irb/commit/bdefaa7cfd
|
|
|
|
|
|
|
| |
* tweak some methods not to raise exception after `#close`
* use it in `IRB::IrbLoader#{source_file,load_file}
https://github.com/ruby/irb/commit/ec2947acbd
|
| |
|
|
|
|
|
| |
As `RUBY_TRY_CFLAGS` restores `CFLAGS`, appending to the variable
in its block has no effect.
|
| |
|
|
|
|
|
| |
https://github.com/ruby/ruby/pull/4100#pullrequestreview-576059827
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
|
|
| |
cf: https://github.com/ruby/ruby/pull/4100#pullrequestreview-575952836
|
|
|
|
|
|
|
|
| |
They are no longer how Object#clone/Object#dup are defined. In fact
DUPSETUP is not used from anywhere. CLONESETUP has only one usage.
Let's not expose them to extension libraries.
cf https://github.com/ruby/ruby/pull/4100#discussion_r563481718
|
|
|
|
| |
Makes no sense any longer.
|
|
|
|
| |
Makes no sense any longer.
|
|
|
|
|
|
|
|
|
| |
See also https://gcc.gnu.org/gcc-6/changes.html
Clang has this feature when __has_extension(enumerator_attributes) is
set.
MSVC has #pragma deprecated instead.
|
|
|
|
|
|
|
|
| |
matz said in [ruby-core:94979]:
> 3.0:
> * taint/trust/untaint/untrust non-verbose warning when called
This is it, for C extensions.
|
|
|
|
|
|
|
|
|
| |
Now that RUBY_FL_TAINT is recycled to become new RUBY_FL_SHAREABLE.
Setting/clearing this flag from extension libraries break Ractor.
Especially problematic one is OBJ_INFECT, which would make non-shareable
objects travel across Ractor boundaries.
Such operations should just be prohibited.
|
|
|
|
|
| |
It seems I broke them in commit 9e6e39c3512f7a962c44dc3729c98a0f8be90341
Sorry!
|
| |
|
|
|
|
|
|
| |
Just like rb_define_class_id_under(). Also makes
rb_define_module_under() consistent with rb_define_class_under() in the
same regard.
|
|
|
| |
Link was correct; its target was incorrect; now fixed.
|
|
|
|
|
|
|
|
| |
after this commit turned it off globally.
888cf28a7e3a07fc0a41688777a40910654005ad
Co-authored-by: peterzhu2118 <peter@peterzhu.ca>
|