Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
[Feature #16485][ruby-core:96683]
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
[Feature #16485][ruby-core:96683]
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2814
|
|
|
|
|
|
|
|
[Bug #16498]
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2824
|
|
ISO/IEC 9899:1999 section 6.5.7 states that "If the value of the right
operand is negative or is greater than or equal to the width of the
promoted left operand, the behavior is undefined". So we have to take
care of such situations.
This has not been a problem because contemporary C compilers are
extraordinary smart to compile the series of shifts into a single
ROTLQ/ROTRQ machine instruction. In contrast to what C says those
instructions have fully defined behaviour for all possible inputs.
Hence it has been quite difficult to observe the undefined-ness of such
situations. But undefined is undefined. We should not rely on such
target-specific assumptions.
We are fixing the situation by carefully avoiding shifts with out-of-
range values. At least GCC since 4.6.3 and Clang since 8.0 can issue
the exact same instructions like before the changeset.
Also in case of Intel processors, there supposedly be intrinsics named
_rotr/_rotl that do exactly what we need. They, in practice, are absent
on Clang before 9.x so we cannot blindly use. But we can at least save
MSVC.
See also:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57157
https://bugs.llvm.org/show_bug.cgi?id=17332
Notes:
Merged: https://github.com/ruby/ruby/pull/2824
|
|
Replaces `#ifdef _MSC_VER` with more accurate version checks. Also,
`defined(_WIN64) && defined(__AVX2__)` is redundant because there is no
such tihng like a 32bit AVX2 machine.
Notes:
Merged: https://github.com/ruby/ruby/pull/2824
|
|
Fixing typo revealed that _BitScanReverse is BSR, which behaves
differently than LZCNT. What we want here is LZCNT so we have to
emulate.
Notes:
Merged: https://github.com/ruby/ruby/pull/2824
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2824
|
|
To prevent from leaking the seed data.
Notes:
Merged: https://github.com/ruby/ruby/pull/2826
|
|
Expanding less random data with MT is not needed when it
succeeded.
Notes:
Merged: https://github.com/ruby/ruby/pull/2826
|
|
|
|
|
|
Use __callee__ to display the called method.
Fixes [Bug #16469]
|
|
Same as 053f78e13988e9253d1f207bf5e23d9505112b32.
emscripten requires a prototype declaration of rb_gvar_readonly_setter
if it is refered as a function pointer.
|
|
|
|
Inside the block where `RB_METHOD_DEFINITION_DECL` family are
defined.
|
|
The role of this is a so-called "salt" but not "seed", rename to
get rid of confusion with other "seed" of PRNG.
Notes:
Merged: https://github.com/ruby/ruby/pull/2825
|
|
|
|
On macOS, GNU coreutils `id` is limited to NGROUPS_MAX groups,
because of the backward compatibility of getgroups(2).
|
|
`Binding#source_location` returns the `__FILE__` when created, and
may not be an absolute or real path. And in the `eval` context
with an explicit file name, `__dir__` also returns that name.
On the other hand, `__FILE__` in `require`d script file has been
expanded at searching the library.
|
|
|
|
[Bug #16488]
|
|
Fix invalid code to make it syntax highlighted; other small fixes.
|
|
|
|
Move existing example to the corresponding paragraph and
add an example for `string =~ regexp` vs. `regexp =~ string`;
avoid using the receiver's identifier from the call-seq
because it does not appear in rendered HTML docs;
mention deprecation of Object#=~; fix some markup and typos.
|
|
|
|
|
|
|
|
call
Notes:
Merged: https://github.com/ruby/ruby/pull/2821
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2822
|
|
|
|
Try to fix infrequent error:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-sunc/ruby-master/log/20200108T010004Z.fail.html.gz
```
1) Error:
DRbTests::TestDRbSSLCore#test_02_basic_object:
RangeError: "348" is recycled object
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:366:in `_id2ref'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:366:in `to_obj'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1537:in `to_obj'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1856:in `to_obj'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:620:in `recv_request'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:931:in `recv_request'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1665:in `init_with_client'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1677:in `setup_message'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1641:in `perform'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1734:in `block (2 levels) in main_loop'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1730:in `loop'
(drbssl://localhost:58371) /export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/lib/drb/drb.rb:1730:in `block in main_loop'
/export/home/users/chkbuild/cb-sunc/tmp/build/20200108T010004Z/ruby/test/drb/drbtest.rb:163:in `test_02_basic_object'
```
|
|
This fixes following error that sometimes happens once in a few times
on Travis s390x environment.
```
$ tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
+ sudo -E apt-add-repository -y ppa:ubuntu-toolchain-r/test
Error: retrieving gpg key timed out.
```
|
|
If the instance variable table hasn't been "expanded", allocate the
maximum size of the ivar table. This operates under the assumption that
most objects will eventually expand their ivar array to the maximum
width anyway, so we may as well avoid realloc calls.
Notes:
Merged: https://github.com/ruby/ruby/pull/2820
|
|
|
|
```
.../ruby/test/ruby/test_keyword.rb:3509: warning: assigned but unused variable - bug8993
.../ruby/test/ruby/test_object.rb:83: warning: assigned but unused variable - f
.../ruby/test/ruby/test_object.rb:95: warning: method redefined; discarding old initialize_clone
.../ruby/test/ruby/test_object.rb:84: warning: previous definition of initialize_clone was here
```
|
|
|