summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-01-16merge revision(s) 64476: [Backport #15084]nagachika
thread_sync.c (rb_mutex_sleep): disable interrupt checking in ensure This is needed to reliably fix ConditionVariable#wait on Thread#kill [Bug #14999] because there is still a chance an interrupt could fire and prevent lock acquisition after an ensure statement. Arguably, rb_mutex_lock itself should be uninterruptible, but that already prevents bootstraptest/test_thread.rb from completing and probably breaks existing use cases. For reference, POSIX expressly forbids EINTR from pthread_mutex_lock. [ruby-core:88556] [Bug #14999] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-14merge revision(s) 64589,64593: [Backport #15041]nagachika
cont.c: set th->root_fiber to current fiber at fork Otherwise, th->root_fiber can point to an invalid Fiber, because Fibers do not live across fork. So consider whatever Fiber is running the root fiber. [ruby-core:88723] [Bug #15041] cont.c (rb_fiber_atfork): th->root_fiber may not exist Otherwise, bootstraptest/test_fork.rb fails with -DVM_CHECK_MODE=2 [Bug #15041] Fixes: r64589 "cont.c: set th->root_fiber to current fiber at fork" git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10* 2019-01-11svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10merge revision(s) 66756: [Backport #15479]nagachika
Mark array as "going to be modified" in `Array#reject!` Before this patch, if `reject!` is called on a shared array it can mutate the shared array rather than a copy. This patch marks the array as "going to be modified" so that the shared source array isn't mutated. [Bug #15479] [ruby-core:90781] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10merge revision(s) 63823,63839: [Backport #14890]nagachika
time.c: [DOC] Time#localtime * time.c: state that Time#localtime does nothing when nothing changes. [ruby-core:87675] [Bug #14880] skip test_localtime_zone if force_tz_test is false For example Solaris https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20180703T091803Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10merge revision(s) 66111: [Backport #14561]nagachika
Avoid GCing dead stack after switching away from a fiber Fixes <https://bugs.ruby-lang.org/issues/14561> and discussed <https://bugs.ruby-lang.org/issues/15362>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-07merge revision(s) 62671: [Backport #14571]nagachika
resolv.rb: close socket * lib/resolv.rb (UnconnectedUDP#lazy_initialize): store new sockets before binding, so the sockets get closed when the requester is closing. * lib/resolv.rb (ConnectedUDP#lazy_initialize): ditto. * lib/resolv.rb (UnconnectedUDP#close): synchronize to get rid of race condition. * lib/resolv.rb (ConnectedUDP#close): ditto. [ruby-core:85901] [Bug #14571] From: quixoten (Devin Christensen) <quixoten@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-02merge revision(s) 66685,66686: [Backport #15495]nagachika
Try to update cert Try to update cert (2nd try) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10merge revision(s) 62621: [Backport #15396]nagachika
compile.c: do not truncate VALUE to long * compile.c (ibf_dump_object_regexp): do not truncate VALUE to long. it makes invalid VALUE on IL32LLP64 platforms where long is shorter than VALUE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-09conceptually partial backport from r63103, r65567.nagachika
All ISeq#to_binary should rescue to skip when running with coverage. current trunk (2.6-) has assert_iseq_to_binary. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-09merge revision(s) 61535:nagachika
iseq.c: fix build error when VM_CHECK_MODE is enabled Follow up of r61534. Sorry. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08merge revision(s) 65667: [Backport #15284]nagachika
Fix for bison 3.2 [Bug #15284] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-05merge revision(s) 64736,65567: [Backport #15270]nagachika
iseq.c: prefix rb_ to non-static iseq functions I assume we always prefix rb_ to non-static functions to avoid conflict. These functions are not exported and safe to be renamed. iseq.h: ditto compile.c: ditto Fix TracePoint for nested iseq loaded from binary [Bug#14702] When loading iseq from binary while a TracePoint is on, we need to recompile instructions to their "trace_" variant. Before this commit we only recompiled instructions in the top level iseq, which meant that TracePoint was malfunctioning for code inside module/class/method definitions. * compile.c: Move rb_iseq_init_trace to rb_ibf_load_iseq_complete. It is called on all iseqs during loading. * test_iseq.rb: Test that tracepoints fire within children iseq when using load_from_binary. This patch is from: Alan Wu <XrXr@users.noreply.github.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-02merge revision(s) 62776: [Backport #15365]nagachika
test_iseq.rb: skip iseq with coverage * test/ruby/test_iseq.rb (test_to_binary_with_objects): #to_binary does not support iseq compiled with coverage, just skip. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-02merge revision(s) 63040: [Backport #14553]nagachika
compile.c: do not dump unused callinfos * compile.c (compile_if): rewind callinfo indexes used in unreachable paths, to get rid of dumping unused callinfos. [ruby-core:86399] [Bug #14553] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-01merge revision(s) 65365:nagachika
Update for tzdata-2018f git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-30merge revision(s) 65956:nagachika
fix r65954; Keep tainty git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28merge revision(s) 64799,64800,64801: [Backport #15105]nagachika
fix typo. * vm_exec.h (DEBUG_END_INSN()): use `ec` instead of `th`. This macro is used when `VMDEBUG > 0`. escape all env properly. * vm_backtrace.c (rb_debug_inspector_open): escape all env using `rb_vm_stack_to_heap()` before making bindings. [Bug #15105] There is a complicated story of this issue: Without this patch, IFUNC frame does not escaped. A IFUNC frame points to CFUNC ep as previous ep. However, CFUNC ep can be escaped because of making bindings of Ruby level frames. IFUNC's ep can points to invalidated ep and `rb_iter_break()` will fail. This is why `any?` fails. * test/-ext-/debug/test_debug.rb: add a test. * remove trailing spaces. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28merge revision(s) 65954,65955,65958: [Backport #15337]nagachika
Don't use single byte optimization on grapheme clusters Unicode Text Segmentation considers CRLF as a character. [Bug #15337] add tests using Unicode test data for grapheme clusters Add file test/ruby/enc/test_grapheme_breaks.rb to test String#each_grapheme_cluster and \X extended grapheme cluster matcher in regular expressions against test data provided by Unicode (ucd/auxiliary/GraphemeBreakTest.txt). Some lines in the data file are ignored, as follows: - Lines with a surrogate, because Ruby doesn't handle these - The case of "\r\n", because there is a bug (#15337) in the implementation remove guard against bug #15337, because it is fixed git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@66073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14merge revision(s) 62772: [Backport #14738]nagachika
compile.c: fix load_from_binary * compile.c (ibf_load_iseq_each): realpath may be nil. follow up r59709. [fix https://github.com/Shopify/bootsnap/issues/132] From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06merge revision(s) 65554: [Backport #15282]nagachika
Don't set throw data as cause [Bug #15282] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06merge revision(s) 65460: [Backport #15271]nagachika
parse.y: last location from bison * parse.y (command): set the last location from the location managed by bison, so that other nodes are not needed. [ruby-core:89648] [Bug #15271] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06merge revision(s) 65350: [Backport #15245]nagachika
compile.c: fix peephole optimization * compile.c (iseq_peephole_optimize): should `pop` before jump instruction which succeeds to `newarray` of a literal object, not after. [ruby-core:89536] [Bug #15245] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06merge revision(s) 64786: [Backport #15087]nagachika
parse.y: fix block passing with empty kwargs * parse.y (arg_blk_pass): preceeding arguments node may be NULL when an empty keyword argument hash splat is optimized away. [ruby-core:88890] [Bug #15087] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-21merge revision(s) 64515:nagachika
remove `const` warning. * compile.c (iseq_ibf_load): remove `const` to pass iseq as no `const` parameter. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-21bump up teeny version to 2.5.4.nagachika
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-18bump up teeny version to 2.5.3.nagachika
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-17Import Ruby/OpenSSL 2.1.2.nagachika
Original patches are written by rhe. Changes since v2.1.1 can be found at the upstream GitHub repository: https://github.com/ruby/openssl/compare/v2.1.1..v2.1.2 Kazuki Yamaguchi (9): pkey: resume key generation after interrupt tool/ruby-openssl-docker: update to latest versions test/test_ssl: fix test failure with TLS 1.3 test/test_x509name: change script encoding to ASCII-8BIT x509name: refactor OpenSSL::X509::Name#to_s x509name: fix handling of X509_NAME_{oneline,print_ex}() return value x509name: fix OpenSSL::X509::Name#{cmp,<=>} Ruby/OpenSSL 2.0.9 Ruby/OpenSSL 2.1.2 nobu (6): no ID cache in Init functions search winsock libraries explicitly openssl: search winsock openssl_missing.h: constified reduce LibreSSL warnings needs openssl/opensslv.h git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-17merge revision(s) 65125:nagachika
infect taint flag on Array#pack and String#unpack with the directives "B", "b", "H" and "h". * pack.c (pack_pack, pack_unpack_internal): infect taint flag. * test/ruby/test_pack.rb: add test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-16merge revision(s) 64913: [Backport #15223]nagachika
Support ubasecrt.dll 10.0.17763.1 included in Windows 10 October 2018 Update git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11merge revision(s) 64745: [Backport #15118]nagachika
Use opt_{aref,aset} over opt_{aref,aset}_with * compile.c (iseq_compile_each0): Use `opt_aref`/`opt_aset` over `opt_aref_with`/`opt_aset_with` when frozen_string_literal: true, not to resurrect the index string on non-Hash receiver. [Fix GH-1957] From: chopraanmol1 <chopraanmol1@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11merge revision(s) 64062: [Backport #14939]nagachika
cont.c (ec_switch): prevent delayed/missed trap interrupt race timer-thread may set trap interrupt with rb_threadptr_check_signal at any time independent of GVL. This means timer-thread may set the trap interrupt flag on the previous execution context; causing the flag to be unnoticed until a future ec switch (or lost completely if the ec is done). Note: I avoid relying on th->interrupt_lock here and use atomics because we won't be able to rely on it for proposed lazy timer-thread [Misc #14937]. This regression affects Ruby 2.5 as it was introduced by moving interrupt_flag to `ec' which is an unstable pointer. Ruby <= 2.4 was unaffected because vm->main_thread->interrupt_flag never changed. [ruby-core:88119] [Bug #14939] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11merge revision(s) 63711,64398: [Backport #14841]nagachika
thread_sync.c (rb_mutex_lock): fix deadlock * thread_sync.c (rb_mutex_lock): fix deadlock [ruby-core:87467] [Bug #14841] thread_sync.c (rb_mutex_lock): acquire lock before being killed We (the thread acquiring the mutex) need to acquire the mutex before being killed to work with ConditionVariable#wait. Thus we reinstate the acquire-immediately-after-sleeping logic from pre-r63711 while still retaining the acquire-after-checking-for-interrupts logic from r63711. This regression was introduced in commit 501069b8a4013f2e3fdde35c50e9527ef0061963 (r63711) ("thread_sync.c (rb_mutex_lock): fix deadlock") for [Bug #14841] [ruby-core:88503] [Bug #14999] [Bug #14841] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11merge revision(s) 64514: [Backport #14702]nagachika
check trace flags at loading [Bug #14702] * iseq.c (iseq_init_trace): at ISeq loading time, we need to check `ruby_vm_event_enabled_flags` to turn on trace instructions. Seprate this checking code from `finish_iseq_build()` and make new function. `iseq_ibf_load()` calls this funcation after loading. * test/ruby/test_iseq.rb: add a test for this fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11merge revision(s) 63030: [Backport #14639]nagachika
array.c: yield blockarg in collect * array.c (rb_ary_collect): yield in block argument semantics always to splat array elements to lambda, for the backward compatibility. [ruby-core:86362] [Bug #14639] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-09merge revision(s) 64860,64861: [Backport #15164]nagachika
fallback env encoding to ASCII-8BIT * hash.c (env_enc_str_new): as no locale/filesystem encoding is available in miniruby on Windows, fallback the encoding to ASCII-8BIT so it is valid encoding when the conversion failed. [ruby-core:89177] [Bug #15164] * properties. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-09merge revision(s) 63067,63068: [Backport #14658]nagachika
Fix Kernel#singleton_method with Module#Prepend * proc.c (rb_obj_singleton_method): search the method entry from the origin class, for fix prepended modules. [Bug #14658] From: Vasiliy Ermolovich <younash@gmail.com> proc.c: fix segfault when no singleton class * proc.c (rb_obj_singleton_method): bail out if the receiver does not have the singleton class without accessing the origin class not to segfault. [Bug #14658] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-09merge revision(s) 64900: [Backport #15190]nagachika
Just a shebang is valid code [ruby-core:89240] [Bug #15190] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-09merge revision(s) 62007,62024: [Backport #13069]nagachika
mkmf.rb: ignore linker warnings * lib/mkmf.rb (try_ldflags): ignore linker warnings. they cause unexpected failures on OpenBSD. [ruby-core:78827] [Bug #13069] mkmf.rb: werror on mswin * lib/mkmf.rb (MakeMakefile#try_ldflags): enable warning checking on mswin, link.exe warns -l options but does not fail. [Bug #13069] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-09merge revision(s) 64915: [Backport #15205]nagachika
check argument type. * iseq.c (iseqw_s_compile): check argument type (T_STRING) to avoid SEGV. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-01merge revision(s) 63868,63870: [Backport #14897]nagachika
Fix a bug of peephole optimization ``` if L1 L0: jump L2 L1: ... L2: ``` was wrongly optimized to: ``` unless L2 L0: L1: ... L2: ``` To make it conservative, this optimization is now disabled when there is any label between `if` and `jump` instructions. Fixes [Bug #14897]. compile.c: remove unreachable jump only * compile.c (iseq_peephole_optimize): remove unreachable jump instruction only. if it is labeled and referred from other instructions, it is reachable and must not be removed. [ruby-core:87830] [Bug #14897] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-03test/test_tmpdir.rb(TRAVERSAL_PATH): re-apply r62990 partially. [Backport ↵nagachika
#14966] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-02merge revision(s) 64092: [Backport #14942]nagachika
win32.c: limit write size on console * win32/win32.c (constat_parse): split long buffer and limit write size on a console, as well as rb_w32_write. [ruby-dev:50597] [Bug #14942] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-02merge revision(s) 64071: [Backport #14941]nagachika
ruby.c: taint ARGV on Windows * ruby.c (external_str_new_cstr): strings come from the external should be tainted. [ruby-dev:50596] [Bug #14941] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-02test/ruby/test_io.rb (test_select_leak): extend timeout for Arch ↵nagachika
Linux[Backport 14929] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-01bump up patchlevel for r64611nagachika
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-01test/ruby/test_io.rb (test_select_leak): extend timeout [Bug 14929]nagachika
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-01merge revision(s) 64007,64019,64020: [Backport #14929]nagachika
thread.c (do_select): fix leak on exception When do_select is interrupted and raise happens from RUBY_VM_CHECK_INTS_BLOCKING, the original FD sets we copied do not get freed, leading to a memory leak. Wrap up all the FD sets into a Ruby object to ensure the GC can release an allocations made for rb_fdset_t. This leak existed since Ruby 2.0.0 (r36430) [Bug #14929] increase timeout seconds. * test/ruby/test_io.rb (test_select_leak): increase timeout seconds to pass this test on a high-load machine. 60 sec is not enough at all git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-01merge revision(s) 64014: [Backport #14926]nagachika
fix sum on infinity * array.c (rb_ary_sum): consider non-finite floats. [ruby-core:88024] [Bug #14926] * enum.c (sum_iter): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-01merge revision(s) 63994: [Backport #14920]nagachika
reduce tzset * time.c (rb_localtime_r): call tzset() only after TZ environment variable is changed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e