summaryrefslogtreecommitdiff
path: root/test/ruby
AgeCommit message (Collapse)Author
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) 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-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-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-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-08-18merge revision(s) 63727: [Backport #14865]nagachika
vm.c: fix infinite loop * vm.c: use EXEC_EVENT_HOOK_AND_POP_FRAME. While exception handling, if an exception is raised in hooks, need to pop current frame and raise this raised exception by hook. [ruby-dev:50582] [Bug #14865] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-18merge revision(s) 63417: [Backport #14756]nagachika
error.c: check redefined backtrace result * error.c (rb_get_backtrace): check the result of `backtrace` even if the method is redefined. [ruby-core:87013] [Bug #14756] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-17merge revision(s) 62952: [Backport #14638]nagachika
win32/file.c: relative path with drive letter * win32/file.c (IS_ABSOLUTE_PATH_P): home directory should not be a relative path regardless a drive letter. PathIsRelativeW returns FALSE on such path. [ruby-core:86356] [Bug #14638] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-17merge revision(s) 63255: [Backport #14708]nagachika
compile.c: fix unconditional branch optimization * compile.c (iseq_peephole_optimize): add dummy `putnil` after a `jump` replacing an unconditional branch, to adjust removed `dup`. [ruby-core:86666] [Bug #14708] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-12merge revision(s) 63252: [Backport #14707]nagachika
string.c: fix scanned substring with `\K` * string.c (scan_once): fix the matched substring with `\K`, the beginning of that string may differ from the matched position. [ruby-core:86663] [Bug #14707] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-12merge revision(s) 63133: [Backport #14566]nagachika
eval_error.c: fix loop on exception in message * error.c (rb_get_message): accessor to the message. * eval_error.c (rb_ec_error_print): handle exceptions on fetching the message. [Bug #14566] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-05merge revision(s) 61766: [Backport #14350]nagachika
vm_insnhelper.c: search in the indexing order * vm_insnhelper.c (vm_opt_newarray_max, vm_opt_newarray_min): search in the indexing order, as well as usual methods. [ruby-core:84821] [Bug #14350] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02merge revision(s) 63696: [Backport #14853]nagachika
variable.c: fix receiver on private constant * variable.c (rb_const_search): fix NameError :receiver attribute on private constant, should raise with the included module, not the ICLASS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@63825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02merge revision(s) 62731,62735: [Backport #14495]nagachika
Bug Fix Enumerator::Lazy#uniq state for multiple call * enumerator.c (lazy_uniq_i): create new hash for each calls. [Fix GH-1820] Currently 2.5.0-preview1 :001 > arr = (0..100).lazy.uniq{|i| i % 10} => #<Enumerator::Lazy: #<Enumerator::Lazy: 0..100>:uniq> 2.5.0-preview1 :002 > arr.to_a => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2.5.0-preview1 :003 > arr.to_a => [] Expected arr.to_a to always return same output From: Anmol Chopra <anmolchopra@rocketbox.in> test_enumerator.rb: duplicate assertions * test/ruby/test_enumerator.rb (test_uniq): remove assertions which ared duplicate of lazy enumerator tests in test_lazy_enumerator.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@63824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02merge revision(s) 61525,61527,63062,63650: [Backport #14846]nagachika
error.c: negative uplevel * error.c (rb_warn_m): negative uplevel is not allowed. [ruby-core:84568] [Bug #14262] error.c: limit depth * error.c (rb_warn_m): limit backtrace depth to reduce objects to be created but not used. error.c: prepend "warning: " always * error.c (rb_warn_m): prepend the string "warning: " if uplevel keyword is given, even if caller file and line information are not available. Fix condition in Kernel#warn when using uplevel * It causes SEGV on `warn("foo", uplevel: 100)`. * Found in a ruby/spec added by @andrykonchin in https://github.com/ruby/spec/pull/605 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@63819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02merge revision(s) 63054,63055,63056: [Backport #14655]nagachika
test_time_tz.rb: Kiritimati tzdata fix * test/ruby/test_time_tz.rb (TestTimeTZ#test_pacific_kiritimati): fix the expected data at the skip of New Year's Eve 1994. [Bug #14655] test_time_tz.rb: Kiritimati tzdata fix * test/ruby/test_time_tz.rb (gen_zdump_test): fix the expected data at the Kiritimati's skip of New Year's Eve 1994. [Bug #14655] test_time_tz.rb: Lisbon tzdata fix * test/ruby/test_time_tz.rb (gen_variational_zdump_test): Update Lisbon zdump data, which fixed the 1912-01-01 transition for Portugual and its colonies. [Bug #14655] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@63817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-28pack.c: fix underflownaruse
* pack.c (pack_unpack_internal): get rid of underflow. https://hackerone.com/reports/298246 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-28dir.c: check NUL bytesnaruse
* dir.c (GlobPathValue): should be used in rb_push_glob only. other methods should use FilePathValue. https://hackerone.com/reports/302338 * dir.c (rb_push_glob): expand GlobPathValue From: Nobuyoshi Nakada <nobu@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-24merge revision(s) 61587,61617,61618: [Backport #14273]naruse
compile.c: next label * compile.c (compile_next): label for jump to the end of block is removable. compile.c: remove more unreachable chunk * compile.c (remove_unreachable_chunk): remove beyond labels to be removed. compile.c: fix stack consistency error * compile.c (iseq_peephole_optimize): fix stack consistency error from return in loop, by adding extra `pop` when replacing `jump` with `leave`, which is never reached but needed to adjust sp calculation. [ruby-core:84589] [Bug #14273] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-24merge revision(s) 62723,62724: [Backport #14584]naruse
parse.y: reduce duplicate code parse.y: fix interpolated string literal dedent * parse.y (heredoc_dedent): fix interpolated string literal dedent, remove indentations from only nodes with the newline flag. [ruby-core:85983] [Bug #14584] * parse.y (here_document): set the newline flag on literal string nodes starting at the beginning of line. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-24merge revision(s) 62548,62894: [Backport #14324]naruse
eval_error.c: rb_error_write flags * eval_error.c (rb_error_write): add highlight and reverse mode flags. defaulted to rb_stderr_tty_p() if Qnil. error.c: full_message options * error.c (exc_full_message): add highlight: and reverse: keyword options. [Bug #14324] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-22merge revision(s) 62892,62893: [Backport #14363]naruse
fix each_grapheme_cluster's size [Bug #14363] From: Hugo Peixoto <hugo.peixoto@gmail.com> Factor out get_reg_grapheme_cluster git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-22merge revision(s) 62042,62044: [Backport #14380]naruse
hash.c: support key swapping in Hash#transform_keys! * hash.c (rb_hash_transform_keys_bang): support key swapping in Hash#transform_keys! [Bug #14380] [ruby-core:84951] * test/ruby/test_hash.rb (test_transform_keys_bang): add assertions for this change Fix rubyspec against the change in Hash#transform_keys! [Bug #14380] [ruby-core:84951] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-20merge revision(s) 62725: [Backport #14604]naruse
Fix setting method visibility on method wrapped with prepend Ignore prepended modules when looking for already defined methods on a class to set the visibility on. [Fix GH-1834] From: Dylan Thacker-Smith <Dylan.Smith@shopify.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-20merge revision(s) 62673: [Backport #14577]naruse
thread.c: deadlock in backtrace * thread.c (unblock_function_set): check interrupts just once during raising exceptions, as they are deferred since r16651. [ruby-core:85939] [Bug #14577] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-20merge revision(s) 62668: [Backport #14578]naruse
thread.c: reset waitq of keeping mutexes in child We must not maintain references to threads in the parent process in any mutexes held by the child process. * thread_sync.c (rb_mutex_cleanup_keeping_mutexes): new function * thread.c (rb_thread_atfork): cleanup keeping mutexes [ruby-core:85940] [Bug #14578] Fixes: r58604 (commit 3586c9e0876e784767a1c1adba9ebc2499fa0ec2) ("reduce rb_mutex_t size from 160 to 80 bytes on 64-bit") git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-15merge revision(s) 62394,62395: [Backport #14469]naruse
vm_insnhelper.c: rb_autoloading_value flag * vm_insnhelper.c (vm_get_ev_const): add flag argument of `rb_autoloading_value`. * constant.h (rb_autoloading_value): moved the declaration from vm_core.h for `rb_const_flag_t`. [ruby-core:85516] [Bug #14469] variable.c: flags at autoloading * variable.c (const_tbl_update): flags by deprecate_constant / private_constant set during autoloading should be preserved after required. [ruby-core:85516] [Bug #14469] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02merge revision(s) 62606,62607: [Backport #14557]naruse
file.c: get rid of useless conversion * file.c (rb_file_s_stat): File.stat does not accept an IO object as trying conversion to path name string first. skip conversion to IO and try stat(2) only. file.c: realpath on special symlink * file.c (realpath_rec): fallback to symlink path when it is accessible but the link target is not actual entry on file systems. [ruby-dev:50487] [Bug #14557] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-28merge revision(s) 62506,62508: [Backport #14438]naruse
test_time_tz.rb: past Japanese DST tzdata fix * test/ruby/test_time_tz.rb (TestTimeTZ#test_asia_tokyo): follow the tzdata 2018 fix of Japanese DST transitions (1948-1951). [ruby-core:85373] [Bug #14438] test_time_tz.rb: past Japanese DST tzdata fix * test/ruby/test_time_tz.rb (TestTimeTZ#test_asia_tokyo): fix the expected data at the end of DST. [Bug #14438] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-25merge revision(s) 62071: [Backport #14407]naruse
defined? returns nil for toplevel constant lookup * variable.c (rb_const_defined_0): toplevel constant lookup has been removed, should return nil too. [ruby-core:85142] [Bug #14407] [Fix GH-1800] From: Gonzalo <grzuy0@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-24merge revision(s) 62555: [Backport #14547]naruse
rational.c: segfault on Rational exponent * rational.c (read_num): fix segfault on Rational() with positive but less than the length of fractional part exponent. should be negated to convert to divisor which is a reciprocal. [ruby-core:85783] [Bug #14547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-22merge revision(s) 61862: [Backport #14368]naruse
parse.y (new_regexp): Fix SEGV of `/#{"\u3042"}#{'?'}/` in non UTF-8 Mixing other encoding string literals in one Regexp caused SEGV. This bug was found by CoverityScan. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-22merge revision(s) 62107: [Backport #14420]naruse
force fixable * complex.c (nucomp_hash): force hash values fixable. [ruby-core:85224] [Bug #14420] * rational.c (nurat_hash): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-22merge revision(s) 62333: [Backport #14459]naruse
compile.c: popped hash * compile.c (compile_array): skip creating new hash if preceeding elements are popped all. [ruby-core:85486] [Bug #14459] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-21merge revision(s) 61484: [Backport #14232]naruse
vm_method.c: fix super in refined module * vm_method.c (rb_method_entry_complement_defined_class): clone the original method entry of refined module instance method with the active ICLASS, to track super method chain. [ruby-dev:50390] [Bug #14232] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-21merge revision(s) 61523: [Backport #14261]naruse
parse.y: assignable_error * parse.y (assignable_gen): should return valid NODE always even on errors. [ruby-core:84565] [Bug #14261] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-21merge revision(s) 62115: [Backport #14421]naruse
proc: fix super_method segfault after bind * proc.c: handle undefined iclass [ruby-core:85231] [Bug #14421] From: Eric Wong <e@80x24.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-19merge revision(s) 62040: [Backport #14388]naruse
string.c: clear substring code range * string.c (str_substr): substring of broken code range string may be valid or broken. patch by tommy (Masahiro Tomita) at [ruby-dev:50430] [Bug #14388]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-18Revert r62426naruse
it cause test failure git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-16merge revision(s) 61616: [Backport #14314]naruse
marshal.c: allow marshalling keyword_init struct struct.c: define rb_struct_s_keyword_init to shared with marshal.c internal.h: add the declaration to be used by marshal.c test/ruby/test_marshal.rb: add test for Bug#14314 [Feature #14314] [ruby-core:84629] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-16merge revision(s) 61617,61618: [Backport #14273]naruse
compile.c: remove more unreachable chunk * compile.c (remove_unreachable_chunk): remove beyond labels to be removed. compile.c: fix stack consistency error * compile.c (iseq_peephole_optimize): fix stack consistency error from return in loop, by adding extra `pop` when replacing `jump` with `leave`, which is never reached but needed to adjust sp calculation. [ruby-core:84589] [Bug #14273] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-16merge revision(s) 61603: [Backport #14279]naruse
check array for zsuper. [Bug #14279] * compile.c (iseq_compile_each0): for zsuper (NODE_ZSUPER), we need to check given argument is Array or not. * test/ruby/test_super.rb: add a test for this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-05merge revision(s) 61625,61626,61627:naruse
extend timeout to 15 seconds for ARMv8 environment Show how many seconds it timeouts By this we can easily extend timeout. Extend timeout of test_clear_unreachable_keyword_args git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-05merge revision(s) 61517: [Backport #14259]naruse
numeric.c: Fix Integer#pow with a large Fixnum modulo * numeric.c: Fix Integer#pow with a large Fixnum modulo [Bug #14259] [ruby-core:84562] * test/ruby/test_numeric.rb: add assertions for reproducing this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-05merge revision(s) 61513: [Backport #14257]naruse
string.c: chomp rs at the end * string.c (rb_str_enumerate_lines): should chomp record separator only, but not a newline, at the end of the receiver as well as middle, if the separator is given. [ruby-core:84552] [Bug #14257] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-03merge revision(s) 61507: [Backport #14247]naruse
Fix KeyError#{key,receiver} of Thread#fetch [ruby-core:84508] [Bug #14247] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e