| Age | Commit message (Collapse) | Author |
|
This reverts commit 092f31e7e23c0ee04df987f0c0f979d036971804.
|
|
|
|
|
|
|
|
|
|
This is a test extension so we basically want test failures rather
than a configure breakage but if there is no C++ compiler, we need
no test at all because there will be no chance for the tested
header file to be used later.
This makes it possible to build the ruby binary without any C++
compiler installed in a build environment.
Notes:
Merged: https://github.com/ruby/ruby/pull/2434
|
|
Not the case of recent compilers, but compilers before C++11
rejected ruby.h, like https://ci.appveyor.com/project/ruby/ruby/builds/27225706/job/qjca7dpe204dytbd
This is supposedly because a struct with a member qualified with
a const effectively deletes its default copy constructor, which
is considered as being user-defined somehow. Not sure where
exactly is the phrase in the C++98 standard who allows such C /
C++ incompatibility though.
Notes:
Merged: https://github.com/ruby/ruby/pull/2434
|
|
These variables then get their room for storage.
See also https://github.com/ruby/ruby/runs/214042030
Notes:
Merged: https://github.com/ruby/ruby/pull/2434
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2434
|
|
This reverts commit 53d21087da078cf999cc4757b03b2ff0fab4c2cf.
Notes:
Merged: https://github.com/ruby/ruby/pull/2434
|
|
This reverts commit 6382f5cc91ac9e36776bc854632d9a1237250da7.
test failed on Solaris.
|
|
Calling some syscall functions such as Dir.chroot causes SIGSYS instead
of EPERM on Android.
This change skips all tests that stops the test-suite run.
|
|
|
|
This raised a NameError before.
Notes:
Merged: https://github.com/ruby/ruby/pull/2438
|
|
|
|
change service name to fix failed test on Solaris
|
|
|
|
This removes an invalid keyword argument separation warning for
code such as:
```ruby
def foo(arg)
arg
end
kw = {}
foo(*[1], **kw)
```
This warning was caused because the remove_empty_keyword_hash
was set based on a comparison with two variables, and in this
case, one of the variables was updated after the check and we
need to use the updated variable.
Simplify things by just inlining the comparison.
|
|
Addrinfo.getaddrinfo and .foreach now accepts :timeout in seconds as
a keyword argument. If getaddrinfo_a(3) is available, the timeout will be
applied for name resolution. Otherwise, it will be ignored.
Socket.tcp accepts :resolv_timeout to use this feature.
|
|
No code changes are necessary, but we didn't have as extensive
tests for these calls previously.
|
|
|
|
And test-rubyspec is deprecated.
|
|
|
|
|
|
|
|
|
|
and add some comments.
(I confirm that `foo(**{})` allocates no hash object.)
|
|
This is a similar refactoring to 8c908c989077c74eed26e02912b98362e509b8a3,
but the target is compile_hash.
|
|
|
|
|
|
As this tool has been intended to use in a working directory,
assume that the toplevel directory is under the VCS, and SVN will
no longer be canonical.
|
|
nd_alen and nd_brace is the same field, but nd_brace is more suitable
for this case.
|
|
|
|
NODE_ZLIST case is handled in compile_hash, so iseq_compile_each0
doesn't have to do the same check redundantly.
|
|
The length of NODE_LIST chain in NODE_HASH is always even because it
represents key-value pairs. There is no need to check for the
odd-length case.
|
|
The array is just for a temporal buffer to create a hash, not stored in
the final iseq.
|
|
|
|
|
|
|
|
|
|
when it's not used. This macro is not used when it's direct threaded code.
This patch is purely for readability and has no impact for any behavior.
|
|
|
|
The original code looks unnecessarily complicated (to me).
Also, it creates a pre-allocated array only for the prefix of the array.
The new code optimizes not only the prefix but also the subsequence that
is longer than 0x40 elements.
# not optimized
10000000.times { [1+1, 1,2,3,4,...,63] } # 2.12 sec.
# (1+1; push 1; push 2; ...; puts 63; newarray 64; concatarray)
# optimized
10000000.times { [1+1, 1,2,3,4,...,63,64] } # 1.46 sec.
# (1+1; newarray 1; putobject [1,2,3,...,64]; concatarray)
|
|
The same refactoring as to b601b13c7267889bf394146353c5f2b0eb488278.
|
|
"popped" case can be so simple, so this change moves the branch to the
first, instead of scattering `if (popped)` branches to the main part.
Also, the return value "len" is not used. So it returns just 0 or 1.
|
|
[Bug #16007]
|
|
|
|
|
|
compile_list was for the compilation of Array literal and Hash literal.
I guess it was originally reasonable to handle them in one function, but
now, compilation of Array is very different from Hash. So the function
was complicated by many branches for Array and Hash.
This change separates the function to two ones for Array and Hash.
|
|
An array literal [1,2,...,301] was compiled to the following iseq:
duparray [1,2,...,300]
putobject [301]
concatarray
The Array literal optimization took every two elements maybe because it
must handle not only Array but also Hash.
Now the optimization takes each element if it is an Array literal. So
the new iseq is: duparray [1,2,...,301].
|