やりたかったこと
Ruby 2.7から導入された numbered parameter を使って配列内の数値を3乗したものを作ろうとした。
が、SEGVが起きてしまった。
sh@MyComputer:~/rubydev/bugs$ ruby -e "[1, 2, 3, 4].map{ _1 **3 }"
-e:1: [BUG] Segmentation fault at 0x0000000000000007
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0004 p:0006 s:0016 e:000012 BLOCK -e:1 [FINISH]
c:0003 p:---- s:0010 e:000009 CFUNC :map
c:0002 p:0005 s:0006 e:000005 EVAL -e:1 [FINISH]
c:0001 p:0000 s:0003 E:000d00 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
-e:1:in `map'
-e:1:in `block in <main>'
-- Machine register context ------------------------------------------------
RIP: 0x00007f8030a95a52 RBP: 0x00007f8030fd8f30 RSP: 0x00007ffc361da270
RAX: 0x00007f8030ed9090 RBX: 0x0000000001195650 RCX: 0x0000000000000000
RDX: 0x0000000000000007 RDI: 0x0000000000000000 RSI: 0x00007f8030fd8f30
R8: 0x00007ffc361da590 R9: 0x000000000000001f R10: 0x000000000000000e
R11: 0x00007f8030a9a330 R12: 0x00000000011e8fd8 R13: 0x0000000000000002
R14: 0x00000000011f1d68 R15: 0x0000000001243c20 EFL: 0x0000000000010202
-- C level backtrace information -------------------------------------------
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_vm_bugreport+0x573) [0x7f8030abc9f3] vm_dump.c:755
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_bug_for_fatal_signal+0xe7) [0x7f80308e4b47] error.c:658
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(sigsegv+0x49) [0x7f8030a1b819] signal.c:946
/lib/x86_64-linux-gnu/libpthread.so.0(__restore_rt+0x0) [0x7f80303ea890]
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(CALLER_REMOVE_EMPTY_KW_SPLAT+0x8) [0x7f8030a95a52] vm_insnhelper.c:1996
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(CALLER_REMOVE_EMPTY_KW_SPLAT) vm_insnhelper.c:1983
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_cfunc) vm_insnhelper.c:2535
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_method+0xcb) [0x7f8030aaa3cb] vm_insnhelper.c:3053
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_method_missing+0x172) [0x7f8030aaa682] vm_insnhelper.c:2744
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_method+0x12e) [0x7f8030aaa42e] vm_insnhelper.c:3013
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_sendish+0x96) [0x7f8030aa2b13] vm_insnhelper.c:4023
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_exec_core) insns.def:801
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_vm_exec+0x16c) [0x7f8030aa879c] vm.c:1920
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(invoke_block_from_c_bh+0x168) [0x7f8030aacd73] vm.c:1044
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_yield) vm.c:1179
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_yield_0) vm_eval.c:1227
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_yield_1) vm_eval.c:1233
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_yield) vm_eval.c:1243
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_ary_collect+0x5c) [0x7f803085595c] array.c:3065
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_cfunc_with_frame+0x4d) [0x7f8030a9571c] vm_insnhelper.c:2514
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_cfunc) vm_insnhelper.c:2539
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_call_method+0xcb) [0x7f8030aaa3cb] vm_insnhelper.c:3053
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_sendish+0x23) [0x7f8030aa2bcd] vm_insnhelper.c:4023
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(vm_exec_core) insns.def:782
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_vm_exec+0x16c) [0x7f8030aa879c] vm.c:1920
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(rb_ec_exec_node+0xaa) [0x7f80308e957a] eval.c:277
/home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7(ruby_run_node+0x4a) [0x7f80308eec2a] eval.c:335
/home/sh/.rbenv/versions/2.7.0/bin/ruby(main+0x5b) [0x40090b] ./main.c:50
-- Other runtime information -----------------------------------------------
* Loaded script: -e
* Loaded features:
0 enumerator.so
1 thread.rb
2 rational.so
3 complex.so
4 ruby2_keywords.rb
5 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
6 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/trans/transdb.so
7 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/rbconfig.rb
8 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/compatibility.rb
9 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/defaults.rb
10 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/deprecate.rb
11 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/errors.rb
12 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/version.rb
13 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/requirement.rb
14 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/platform.rb
15 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/basic_specification.rb
16 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/stub_specification.rb
17 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/util.rb
18 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/text.rb
19 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/user_interaction.rb
20 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/specification_policy.rb
21 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/util/list.rb
22 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/specification.rb
23 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/exceptions.rb
24 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/bundler_version_finder.rb
25 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/dependency.rb
26 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_gem.rb
27 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/monitor.so
28 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/monitor.rb
29 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb
30 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_warn.rb
31 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems.rb
32 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/path_support.rb
33 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/version.rb
34 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/core_ext/name_error.rb
35 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/levenshtein.rb
36 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/jaro_winkler.rb
37 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checker.rb
38 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
39 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
40 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checkers/name_error_checkers.rb
41 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checkers/method_name_checker.rb
42 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checkers/key_error_checker.rb
43 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/spell_checkers/null_checker.rb
44 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/formatters/plain_formatter.rb
45 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean/tree_spell_checker.rb
46 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/did_you_mean.rb
* Process memory map:
00400000-00401000 r-xp 00000000 08:30 1094561 /home/sh/.rbenv/versions/2.7.0/bin/ruby
00600000-00601000 r--p 00000000 08:30 1094561 /home/sh/.rbenv/versions/2.7.0/bin/ruby
00601000-00602000 rw-p 00001000 08:30 1094561 /home/sh/.rbenv/versions/2.7.0/bin/ruby
01193000-01569000 rw-p 00000000 00:00 0 [heap]
7f8029dce000-7f8029fbe000 r--s 00000000 08:30 630711 /lib/x86_64-linux-gnu/libc-2.27.so
7f8029fbe000-7f802aa90000 rw-p 00000000 00:00 0
7f802aa90000-7f802b47d000 r--s 00000000 08:30 1036292 /home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7.0
7f802b47d000-7f802b494000 r-xp 00000000 08:30 630748 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f802b494000-7f802b693000 ---p 00017000 08:30 630748 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f802b693000-7f802b694000 r--p 00016000 08:30 630748 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f802b694000-7f802b695000 rw-p 00017000 08:30 630748 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f802b695000-7f802b697000 r-xp 00000000 08:30 1093292 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/monitor.so
7f802b697000-7f802b896000 ---p 00002000 08:30 1093292 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/monitor.so
7f802b896000-7f802b897000 r--p 00001000 08:30 1093292 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/monitor.so
7f802b897000-7f802b898000 rw-p 00002000 08:30 1093292 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/monitor.so
7f802b898000-7f802b89a000 r-xp 00000000 08:30 1093377 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/trans/transdb.so
7f802b89a000-7f802ba9a000 ---p 00002000 08:30 1093377 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/trans/transdb.so
7f802ba9a000-7f802ba9b000 r--p 00002000 08:30 1093377 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/trans/transdb.so
7f802ba9b000-7f802ba9c000 rw-p 00003000 08:30 1093377 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/trans/transdb.so
7f802ba9c000-7f802ba9e000 r-xp 00000000 08:30 1093322 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f802ba9e000-7f802bc9d000 ---p 00002000 08:30 1093322 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f802bc9d000-7f802bc9e000 r--p 00001000 08:30 1093322 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f802bc9e000-7f802bc9f000 rw-p 00002000 08:30 1093322 /home/sh/.rbenv/versions/2.7.0/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f802bc9f000-7f802bca0000 ---p 00000000 00:00 0
7f802bca0000-7f802bd41000 rw-p 00000000 00:00 0
7f802bd41000-7f802bd42000 ---p 00000000 00:00 0
7f802bd42000-7f802bde3000 rw-p 00000000 00:00 0
7f802bde3000-7f802bde4000 ---p 00000000 00:00 0
7f802bde4000-7f802be85000 rw-p 00000000 00:00 0
7f802be85000-7f802be86000 ---p 00000000 00:00 0
7f802be86000-7f802bf27000 rw-p 00000000 00:00 0
7f802bf27000-7f802bf28000 ---p 00000000 00:00 0
7f802bf28000-7f802bfc9000 rw-p 00000000 00:00 0
7f802bfc9000-7f802bfca000 ---p 00000000 00:00 0
7f802bfca000-7f802c06b000 rw-p 00000000 00:00 0
7f802c06b000-7f802c06c000 ---p 00000000 00:00 0
7f802c06c000-7f802c10d000 rw-p 00000000 00:00 0
7f802c10d000-7f802c10e000 ---p 00000000 00:00 0
7f802c10e000-7f802c1af000 rw-p 00000000 00:00 0
7f802c1af000-7f802c1b0000 ---p 00000000 00:00 0
7f802c1b0000-7f802c251000 rw-p 00000000 00:00 0
7f802c251000-7f802c252000 ---p 00000000 00:00 0
7f802c252000-7f802c2f3000 rw-p 00000000 00:00 0
7f802c2f3000-7f802c2f4000 ---p 00000000 00:00 0
7f802c2f4000-7f802c395000 rw-p 00000000 00:00 0
7f802c395000-7f802c396000 ---p 00000000 00:00 0
7f802c396000-7f802c437000 rw-p 00000000 00:00 0
7f802c437000-7f802c438000 ---p 00000000 00:00 0
7f802c438000-7f802c4d9000 rw-p 00000000 00:00 0
7f802c4d9000-7f802c4da000 ---p 00000000 00:00 0
7f802c4da000-7f802c57b000 rw-p 00000000 00:00 0
7f802c57b000-7f802c57c000 ---p 00000000 00:00 0
7f802c57c000-7f802c61d000 rw-p 00000000 00:00 0
7f802c61d000-7f802c61e000 ---p 00000000 00:00 0
7f802c61e000-7f802c6bf000 rw-p 00000000 00:00 0
7f802c6bf000-7f802c6c0000 ---p 00000000 00:00 0
7f802c6c0000-7f802c761000 rw-p 00000000 00:00 0
7f802c761000-7f802c762000 ---p 00000000 00:00 0
7f802c762000-7f802c803000 rw-p 00000000 00:00 0
7f802c803000-7f802c804000 ---p 00000000 00:00 0
7f802c804000-7f802c8a5000 rw-p 00000000 00:00 0
7f802c8a5000-7f802c8a6000 ---p 00000000 00:00 0
7f802c8a6000-7f802c947000 rw-p 00000000 00:00 0
7f802c947000-7f802c948000 ---p 00000000 00:00 0
7f802c948000-7f802c9e9000 rw-p 00000000 00:00 0
7f802c9e9000-7f802c9ea000 ---p 00000000 00:00 0
7f802c9ea000-7f802ca8b000 rw-p 00000000 00:00 0
7f802ca8b000-7f802ca8c000 ---p 00000000 00:00 0
7f802ca8c000-7f802cb2d000 rw-p 00000000 00:00 0
7f802cb2d000-7f802cb2e000 ---p 00000000 00:00 0
7f802cb2e000-7f802cbcf000 rw-p 00000000 00:00 0
7f802cbcf000-7f802cbd0000 ---p 00000000 00:00 0
7f802cbd0000-7f802cc71000 rw-p 00000000 00:00 0
7f802cc71000-7f802cc72000 ---p 00000000 00:00 0
7f802cc72000-7f802cd13000 rw-p 00000000 00:00 0
7f802cd13000-7f802cd14000 ---p 00000000 00:00 0
7f802cd14000-7f802cdb5000 rw-p 00000000 00:00 0
7f802cdb5000-7f802cdb6000 ---p 00000000 00:00 0
7f802cdb6000-7f802ce57000 rw-p 00000000 00:00 0
7f802ce57000-7f802ce58000 ---p 00000000 00:00 0
7f802ce58000-7f802cef9000 rw-p 00000000 00:00 0
7f802cef9000-7f802cefa000 ---p 00000000 00:00 0
7f802cefa000-7f802cf9b000 rw-p 00000000 00:00 0
7f802cf9b000-7f802cf9c000 ---p 00000000 00:00 0
7f802cf9c000-7f802d03d000 rw-p 00000000 00:00 0
7f802d03d000-7f802d03e000 ---p 00000000 00:00 0
7f802d03e000-7f802f0e8000 rw-p 00000000 00:00 0
7f802f0e8000-7f802f384000 r--p 00000000 08:30 140826 /usr/lib/locale/locale-archive
7f802f384000-7f802f56b000 r-xp 00000000 08:30 630711 /lib/x86_64-linux-gnu/libc-2.27.so
7f802f56b000-7f802f76b000 ---p 001e7000 08:30 630711 /lib/x86_64-linux-gnu/libc-2.27.so
7f802f76b000-7f802f76f000 r--p 001e7000 08:30 630711 /lib/x86_64-linux-gnu/libc-2.27.so
7f802f76f000-7f802f771000 rw-p 001eb000 08:30 630711 /lib/x86_64-linux-gnu/libc-2.27.so
7f802f771000-7f802f775000 rw-p 00000000 00:00 0
7f802f775000-7f802f912000 r-xp 00000000 08:30 630774 /lib/x86_64-linux-gnu/libm-2.27.so
7f802f912000-7f802fb11000 ---p 0019d000 08:30 630774 /lib/x86_64-linux-gnu/libm-2.27.so
7f802fb11000-7f802fb12000 r--p 0019c000 08:30 630774 /lib/x86_64-linux-gnu/libm-2.27.so
7f802fb12000-7f802fb13000 rw-p 0019d000 08:30 630774 /lib/x86_64-linux-gnu/libm-2.27.so
7f802fb13000-7f802fb1c000 r-xp 00000000 08:30 630721 /lib/x86_64-linux-gnu/libcrypt-2.27.so
7f802fb1c000-7f802fd1b000 ---p 00009000 08:30 630721 /lib/x86_64-linux-gnu/libcrypt-2.27.so
7f802fd1b000-7f802fd1c000 r--p 00008000 08:30 630721 /lib/x86_64-linux-gnu/libcrypt-2.27.so
7f802fd1c000-7f802fd1d000 rw-p 00009000 08:30 630721 /lib/x86_64-linux-gnu/libcrypt-2.27.so
7f802fd1d000-7f802fd4b000 rw-p 00000000 00:00 0
7f802fd4b000-7f802fd4e000 r-xp 00000000 08:30 630734 /lib/x86_64-linux-gnu/libdl-2.27.so
7f802fd4e000-7f802ff4d000 ---p 00003000 08:30 630734 /lib/x86_64-linux-gnu/libdl-2.27.so
7f802ff4d000-7f802ff4e000 r--p 00002000 08:30 630734 /lib/x86_64-linux-gnu/libdl-2.27.so
7f802ff4e000-7f802ff4f000 rw-p 00003000 08:30 630734 /lib/x86_64-linux-gnu/libdl-2.27.so
7f802ff4f000-7f802ffce000 r-xp 00000000 08:30 123859 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f802ffce000-7f80301ce000 ---p 0007f000 08:30 123859 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f80301ce000-7f80301cf000 r--p 0007f000 08:30 123859 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f80301cf000-7f80301d0000 rw-p 00080000 08:30 123859 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f80301d0000-7f80301d7000 r-xp 00000000 08:30 630843 /lib/x86_64-linux-gnu/librt-2.27.so
7f80301d7000-7f80303d6000 ---p 00007000 08:30 630843 /lib/x86_64-linux-gnu/librt-2.27.so
7f80303d6000-7f80303d7000 r--p 00006000 08:30 630843 /lib/x86_64-linux-gnu/librt-2.27.so
7f80303d7000-7f80303d8000 rw-p 00007000 08:30 630843 /lib/x86_64-linux-gnu/librt-2.27.so
7f80303d8000-7f80303f2000 r-xp 00000000 08:30 630835 /lib/x86_64-linux-gnu/libpthread-2.27.so
7f80303f2000-7f80305f1000 ---p 0001a000 08:30 630835 /lib/x86_64-linux-gnu/libpthread-2.27.so
7f80305f1000-7f80305f2000 r--p 00019000 08:30 630835 /lib/x86_64-linux-gnu/libpthread-2.27.so
7f80305f2000-7f80305f3000 rw-p 0001a000 08:30 630835 /lib/x86_64-linux-gnu/libpthread-2.27.so
7f80305f3000-7f80305f7000 rw-p 00000000 00:00 0
7f80305f7000-7f8030613000 r-xp 00000000 08:30 630874 /lib/x86_64-linux-gnu/libz.so.1.2.11
7f8030613000-7f8030812000 ---p 0001c000 08:30 630874 /lib/x86_64-linux-gnu/libz.so.1.2.11
7f8030812000-7f8030813000 r--p 0001b000 08:30 630874 /lib/x86_64-linux-gnu/libz.so.1.2.11
7f8030813000-7f8030814000 rw-p 0001c000 08:30 630874 /lib/x86_64-linux-gnu/libz.so.1.2.11
7f8030814000-7f8030bbe000 r-xp 00000000 08:30 1036292 /home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7.0
7f8030bbe000-7f8030dbe000 ---p 003aa000 08:30 1036292 /home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7.0
7f8030dbe000-7f8030dc4000 r--p 003aa000 08:30 1036292 /home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7.0
7f8030dc4000-7f8030dc7000 rw-p 003b0000 08:30 1036292 /home/sh/.rbenv/versions/2.7.0/lib/libruby.so.2.7.0
7f8030dc7000-7f8030de2000 rw-p 00000000 00:00 0
7f8030de2000-7f8030e09000 r-xp 00000000 08:30 630683 /lib/x86_64-linux-gnu/ld-2.27.so
7f8030e86000-7f8030eaa000 r--s 00000000 08:30 630835 /lib/x86_64-linux-gnu/libpthread-2.27.so
7f8030eaa000-7f8030ed9000 r--s 00000000 08:30 1094561 /home/sh/.rbenv/versions/2.7.0/bin/ruby
7f8030ed9000-7f8030fde000 rw-p 00000000 00:00 0
7f8031000000-7f8031007000 r--s 00000000 08:30 130054 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f8031007000-7f8031009000 rw-p 00000000 00:00 0
7f8031009000-7f803100a000 r--p 00027000 08:30 630683 /lib/x86_64-linux-gnu/ld-2.27.so
7f803100a000-7f803100b000 rw-p 00028000 08:30 630683 /lib/x86_64-linux-gnu/ld-2.27.so
7f803100b000-7f803100c000 rw-p 00000000 00:00 0
7ffc359de000-7ffc361dd000 rw-p 00000000 00:00 0 [stack]
7ffc361ed000-7ffc361f0000 r--p 00000000 00:00 0 [vvar]
7ffc361f0000-7ffc361f2000 r-xp 00000000 00:00 0 [vdso]
中止
原因
おそらく、_1がメソッドと解釈されているのが原因くさい。
ちなみに、masterでは以下のようなエラーになる
sh@MyComputer:~/rubydev/bugs$ ruby -e "[1, 2, 3, 4].map{ _1 **3 }"
-e:1:in `block in <main>': no implicit conversion of Integer into Hash (TypeError)
from -e:1:in `map'
from -e:1:in `<main>'このことから_1がメソッドと解釈されていることが分かる。
なぜかと言えば、**3がキーワード引数としてメソッドに渡されていると解釈されているためだ。
ちなみに_1と**3との間にあるスペースを取り除くと意図したとおりに動作する。
sh@MyComputer:~/rubydev/bugs$ ruby -e "p [1, 2, 3, 4].map{ _1**3 }"
[1, 8, 27, 64]また、_1.**3でも同様に動作する(メソッド呼び出しと解釈されるため)
sh@MyComputer:~/rubydev/bugs$ ruby -e "p [1, 2, 3, 4].map{ _1.**3 }"
[1, 8, 27, 64]
まとめ
とりあえず、Ruby 2.7 でSEGVするのはまずいのでチケットを作っておこうかと思う。
あと、パッチが作れないかコードを読んでいこうかな(多分、pase.yとか読まなきゃだろうしで怖い……)