| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
This reverts commit c7b71af9e21b3f0b8fe413a3c20cf4bd633c40d0, as
an example in bundler expects untouch PATH.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
iseq->body->jit_unit is not available if USE_MJIT==0 .
|
|
|
|
|
|
|
| |
So its arity should be -2 instead of -1.
[Bug #16640]
https://bugs.ruby-lang.org/issues/16640#change-84337
|
|
|
|
|
| |
Unused CI (introduced from peephole optimization, etc) can be NULL
so introduce NULL check.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In ruby/ruby, the tests run on both readline & reline by creating four test classes:
```
TestReadline
TestReadlineHistory
TestRelineAsReadline
TestRelineAsReadlineHistory
```
Reline inports the test files and uses them in its CI. Adding the ENV control allows it to only run the `TestRelineAsReadline` classes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch contains several ideas:
(1) Disposable inline method cache (IMC) for race-free inline method cache
* Making call-cache (CC) as a RVALUE (GC target object) and allocate new
CC on cache miss.
* This technique allows race-free access from parallel processing
elements like RCU.
(2) Introduce per-Class method cache (pCMC)
* Instead of fixed-size global method cache (GMC), pCMC allows flexible
cache size.
* Caching CCs reduces CC allocation and allow sharing CC's fast-path
between same call-info (CI) call-sites.
(3) Invalidate an inline method cache by invalidating corresponding method
entries (MEs)
* Instead of using class serials, we set "invalidated" flag for method
entry itself to represent cache invalidation.
* Compare with using class serials, the impact of method modification
(add/overwrite/delete) is small.
* Updating class serials invalidate all method caches of the class and
sub-classes.
* Proposed approach only invalidate the method cache of only one ME.
See [Feature #16614] for more details.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now, rb_call_info contains how to call the method with tuple of
(mid, orig_argc, flags, kwarg). Most of cases, kwarg == NULL and
mid+argc+flags only requires 64bits. So this patch packed
rb_call_info to VALUE (1 word) on such cases. If we can not
represent it in VALUE, then use imemo_callinfo which contains
conventional callinfo (rb_callinfo, renamed from rb_call_info).
iseq->body->ci_kw_size is removed because all of callinfo is VALUE
size (packed ci or a pointer to imemo_callinfo).
To access ci information, we need to use these functions:
vm_ci_mid(ci), _flag(ci), _argc(ci), _kwarg(ci).
struct rb_call_info_kw_arg is renamed to rb_callinfo_kwarg.
rb_funcallv_with_cc() and rb_method_basic_definition_p_with_cc()
is temporary removed because cd->ci should be marked.
|
| |
|
| |
|
|
|
|
| |
With refinements, too.
|
| |
|
| |
|
|
|
|
| |
https://github.com/ruby/irb/commit/dbc7b059c7
|
| |
|
| |
|
| |
|
|
|
|
|
| |
test/net/http/test_https.rb: rename fixture methods to read_fixture
because it conflicts with test-unit gem.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
to allow Intel C++ compiler to read ruby.h.
This is similar to 9930481a239fa7182429f3c3942ea033fb9b0320
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
It has been deprecated since 2011.
https://github.com/ruby/rdoc/commit/5c2aa0f77d
|
|
|
|
| |
Get rid of double writing.
|
|
|
|
|
|
|
| |
Comma at the end of enum is allowed in C since C99. We can use them
internally. However when it comes to extension libraries, they could be
written in different C++ versions. We cannot assume sometihng. Public
headers shall keep compatibilities.
|
|
|
|
|
|
| |
Recent (since 2012 maybe?) MSVC ships a header named xkeycheck.h, which
(kindly!) aborts compilation on redefinition of C++ keywords. Let's not
define this in case of C++.
|
|
|
|
|
|
|
| |
The `cxx.try_compile` command in this file kicks `cxx.have_devel?`
internally, which recursively calls `cxx.try_link` with a different
source code. We don't want that happen (the source code compiled in
this file must be the first one). We need to fake the system.
|
|
|
|
|
| |
Namely glibc has this macro on -DFORTIFY_SOURCE. We have to prevent
macro redefinition with different macro body.
|
|
|
|
|
|
|
|
| |
`make leaked-globals` points out that this function is leaked. This has
not been detected in our CI because it is defined only when
VM_CHECK_MODE is nonzero.
Just make it static and everytihng goes well.
|
|
|
|
|
| |
This is a ruby method with arity zero. Which means, this function takes
one argument (that is self).
|
|
|
|
|
| |
GC_DEBUG=1 makes this test fail because it changes the size of struct
RVALUE. I don't think the test is useful then. Let's just skip.
|
|
|
|
|
|
| |
Starting clang 11, casts between pointer and (narrower-than-pointer) int
are now warned. However all such thing in our repository are guaranteed
safe. Let's suppress the warnings.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
when the next insn is already compiled by former branches.
|
| |
|