虚無庵

徒然なるままに

今日の ruby build 2023-12-01

今日のビルド

e005c517325f3559acd2c75d368a58b50ebbb0f9 までを pull ってきてビルド。エラー/警告ともになし。

  Files:       1046

  Classes:     1269 ( 311 undocumented)
  Modules:      241 (  78 undocumented)
  Constants:   2450 ( 777 undocumented)
  Attributes:  1492 ( 246 undocumented)
  Methods:    12492 (2322 undocumented)

  Total:      17944 (3734 undocumented)
   79.19% documented

  Elapsed: 33.8s

今日のテスト

make test-all を実行。

=> "foo"
=> "bar"
=> "baz"
=> "xyz"
=> 
2 "bar"
3 "baz"
4 "xyz"
=> 1
=> 1 1
=> 1
Created snapshot at /home/jinroq/dev/sandbox/my-ruby-build/build-ruby-repo/test/prism/snapshots/heredoc_with_comment.txt.

  1) Failure:
TestIRB::EvalHistoryTest#test_eval_history_respects_given_limit [/home/jinroq/dev/sandbox/my-ruby-build/build-ruby-repo/test/irb/test_eval_history.rb:65]:
Expected /2\ "bar"\n3\ "baz"\n4\ "xyz"\n/ to match "".

  2) Failure:
TestIRB::EvalHistoryTest#test_eval_history_can_be_retrieved_with_double_underscore [/home/jinroq/dev/sandbox/my-ruby-build/build-ruby-repo/test/irb/test_eval_history.rb:50]:
Expected /=>\ 1\n=>\ 1\ 1\n/ to match "".

Finished tests in 829.524176s, 32.0111 tests/s, 9675.3141 assertions/s.
26554 tests, 8025907 assertions, 2 failures, 0 errors, 101 skips

ruby -v: ruby 3.3.0dev (2023-12-01T07:48:10Z master e005c51732) [x86_64-linux]
make: *** [uncommon.mk:937: yes-test-all] エラー 2

おや?

今日のビルド(Universal Parser 有効化)

e005c517325f3559acd2c75d368a58b50ebbb0f9 までを pull ってきてビルド。

ruby_parser.c: In function ‘rb_parser_config_initialize’:
ruby_parser.c:721:29: warning: assignment left-hand side might be a candidate for a format attribute [-Wsuggest-attribute=format]
  721 |     config->compile_warn    = rb_compile_warn;
      |                             ^
ruby_parser.c:722:29: warning: assignment left-hand side might be a candidate for a format attribute [-Wsuggest-attribute=format]
  722 |     config->compile_warning = rb_compile_warning;
      |                             ^
ruby_parser.c:723:29: warning: assignment left-hand side might be a candidate for a format attribute [-Wsuggest-attribute=format]
  723 |     config->bug             = rb_bug;
      |                             ^
ruby_parser.c:724:29: warning: assignment left-hand side might be a candidate for a format attribute [-Wsuggest-attribute=format]
  724 |     config->fatal           = rb_fatal;
      |                             ^
ruby_parser.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
  Files:       1046

  Classes:     1269 ( 311 undocumented)
  Modules:      241 (  78 undocumented)
  Constants:   2450 ( 777 undocumented)
  Attributes:  1492 ( 246 undocumented)
  Methods:    12492 (2322 undocumented)

  Total:      17944 (3734 undocumented)
   79.19% documented

  Elapsed: 38.3s

今日のテスト(Universal Parser 有効化)

make test-all を実行。

Created snapshot at /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/prism/snapshots/heredoc_with_comment.txt.
=> "foo"
=> "bar"
=> "baz"
=> "xyz"
=> 
2 "bar"
3 "baz"
4 "xyz"
=> 1
=> 1
=> 1 1

  1) Failure:
TestIRB::EvalHistoryTest#test_eval_history_respects_given_limit [/home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/irb/test_eval_history.rb:65]:
Expected /2\ "bar"\n3\ "baz"\n4\ "xyz"\n/ to match "".

  2) Failure:
TestIRB::EvalHistoryTest#test_eval_history_can_be_retrieved_with_double_underscore [/home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/irb/test_eval_history.rb:50]:
Expected /=>\ 1\n=>\ 1\ 1\n/ to match "".

Finished tests in 915.876152s, 28.9930 tests/s, 8768.3668 assertions/s.
26554 tests, 8030738 assertions, 2 failures, 0 errors, 102 skips

ruby -v: ruby 3.3.0dev (2023-12-01T07:48:10Z master e005c51732) [x86_64-linux]
make: *** [uncommon.mk:937: yes-test-all] エラー 2

今日のビルド(YJIT 有効化)

e005c517325f3559acd2c75d368a58b50ebbb0f9 までを pull ってきてビルド。エラー/警告ともになし。

今日のテスト(YJIT 有効化)

make test-all を実行。

Created snapshot at /home/jinroq/dev/sandbox/my-ruby-build/build-yjit-ruby-repo/test/prism/snapshots/heredoc_with_comment.txt.
=> 1
=> 1
=> 1 1
=> "foo"
=> "bar"
=> "baz"
=> "xyz"
=> 
2 "bar"
3 "baz"
4 "xyz"

  1) Failure:
TestIRB::EvalHistoryTest#test_eval_history_can_be_retrieved_with_double_underscore [/home/jinroq/dev/sandbox/my-ruby-build/build-yjit-ruby-repo/test/irb/test_eval_history.rb:50]:
Expected /=>\ 1\n=>\ 1\ 1\n/ to match "".

  2) Failure:
TestIRB::EvalHistoryTest#test_eval_history_respects_given_limit [/home/jinroq/dev/sandbox/my-ruby-build/build-yjit-ruby-repo/test/irb/test_eval_history.rb:65]:
Expected /2\ "bar"\n3\ "baz"\n4\ "xyz"\n/ to match "".

Finished tests in 879.394537s, 30.1958 tests/s, 9135.1659 assertions/s.
26554 tests, 8033415 assertions, 2 failures, 0 errors, 101 skips

ruby -v: ruby 3.3.0dev (2023-12-01T07:48:10Z master e005c51732) [x86_64-linux]
make: *** [uncommon.mk:937: yes-test-all] エラー 2

今日のビルド(RJIT 有効化)

e005c517325f3559acd2c75d368a58b50ebbb0f9 までを pull ってきてビルド。エラー/警告ともになし。

今日のテスト(RJIT 有効化)

make test-all を実行。

=> 1
=> 1 1
=> 1
=> "foo"
=> "bar"
=> "baz"
=> "xyz"
=> 
2 "bar"
3 "baz"
4 "xyz"
Created snapshot at /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/prism/snapshots/heredoc_with_comment.txt.

  1) Failure:
TestIRB::EvalHistoryTest#test_eval_history_can_be_retrieved_with_double_underscore [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/irb/test_eval_history.rb:50]:
Expected /=>\ 1\n=>\ 1\ 1\n/ to match "".

  2) Failure:
TestIRB::EvalHistoryTest#test_eval_history_respects_given_limit [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/irb/test_eval_history.rb:65]:
Expected /2\ "bar"\n3\ "baz"\n4\ "xyz"\n/ to match "".

  3) Failure:
TestRubyOptimization#test_objtostring [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_optimization.rb:938]:
assert_separately failed with error message
pid 3006326 exit 1
| /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/c_pointer.rb:341:in `with_class_name': undefined method `empty?' for nil (NoMethodError)
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/c_type.rb:69:in `new'
|   from <internal:rjit_c>:963:in `rb_builtin_function'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/insn_compiler.rb:2607:in `opt_invokebuiltin_delegate'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/insn_compiler.rb:130:in `compile'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/compiler.rb:319:in `compile_block'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/compiler.rb:148:in `block in branch_stub_hit'
|   from <internal:kernel>:133:in `then'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/lib/ruby_vm/rjit/compiler.rb:147:in `branch_stub_hit'
|   from <internal:array>:106:in `first'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/tool/lib/core_assertions.rb:524:in `assert'
|   from /home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/tool/lib/test/unit/assertions.rb:184:in `assert_match'
|   from -:14:in `block in <main>'
|   from -:13:in `each'
|   from -:13:in `<main>'


  4) Failure:
TestRubyOptimization#test_block_parameter_should_not_create_objects [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_optimization.rb:785]:
<0> expected but was
<19>.

  5) Failure:
TestYJIT#test_compile_opt_getconstant_path [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_yjit.rb:460]:
Expected to compile instructions opt_getconstant_path but didn't.
iseq:
== disasm: #<ISeq:block in <main>@-e:2 (2,15)-(12,1)>
0000 definemethod                           :get_foo, get_foo         (   3)[LiBc]
0003 putobject                              123                       (   7)[Li]
0005 putspecialobject                       3
0007 setconstant                            :FOO
0009 putself                                                          (   9)[Li]
0010 opt_send_without_block                 <calldata!mid:get_foo, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0012 pop
0013 putself                                                          (  10)[Li]
0014 opt_send_without_block                 <calldata!mid:get_foo, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0016 leave                                                            (  12)[Br]

== disasm: #<ISeq:get_foo@-e:3 (3,2)-(5,3)>
0000 opt_getconstant_path                   <ic:0 FOO>                (   4)[LiCa]
0002 leave                                                            (   5)[Re]


  6) Failure:
TestYJIT#test_build_large_struct [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_yjit.rb:881]:
Expected to compile instructions opt_send_without_block but didn't.
iseq:
== disasm: #<ISeq:block in <main>@-e:2 (2,15)-(12,1)>
0000 putobject                              Object                    (   3)[LiBc]
0002 opt_getconstant_path                   <ic:0 Struct>
0004 putobject                              :a
0006 putobject                              :b
0008 putobject                              :c
0010 putobject                              :d
0012 putobject                              :e
0014 putobject                              :f
0016 putobject                              :g
0018 putobject                              :h
0020 opt_send_without_block                 <calldata!mid:new, argc:8, ARGS_SIMPLE>
0022 swap
0023 setconstant                            :Foo
0025 definemethod                           :build_foo, build_foo     (   5)[Li]
0028 putself                                                          (   9)[Li]
0029 opt_send_without_block                 <calldata!mid:build_foo, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0031 pop
0032 putself                                                          (  10)[Li]
0033 opt_send_without_block                 <calldata!mid:build_foo, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0035 leave                                                            (  12)[Br]

== disasm: #<ISeq:build_foo@-e:5 (5,0)-(7,3)>
0000 opt_getconstant_path                   <ic:0 ::Foo>              (   6)[LiCa]
0002 putobject                              :a
0004 putobject                              :b
0006 putobject                              :c
0008 putobject                              :d
0010 putobject                              :e
0012 putobject                              :f
0014 putobject                              :g
0016 putobject                              :h
0018 opt_send_without_block                 <calldata!mid:new, argc:8, ARGS_SIMPLE>
0020 leave                                                            (   7)[Re]


  7) Failure:
TestGc#test_gc_parameter_init_slots [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_gc.rb:454]:
{:slot_size=>160, :heap_allocatable_pages=>3, :heap_eden_pages=>21, :heap_eden_slots=>8581, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>22, :total_freed_pages=>1, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>15727, :total_freed_objects=>7530}.
Expected 9805 to be >= 10000.

  8) Failure:
TestGc#test_thrashing_for_young_objects [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_gc.rb:645]:
before_stats: {:count=>26, :time=>57, :marking_time=>36, :sweeping_time=>20, :heap_allocated_pages=>159, :heap_sorted_length=>306, :heap_allocatable_pages=>147, :heap_available_slots=>217343, :heap_live_slots=>138600, :heap_free_slots=>78743, :heap_final_slots=>0, :heap_marked_slots=>132953, :heap_eden_pages=>159, :heap_tomb_pages=>0, :total_allocated_pages=>162, :total_freed_pages=>3, :total_allocated_objects=>1359558, :total_freed_objects=>1220958, :malloc_increase_bytes=>2120, :malloc_increase_bytes_limit=>16836172, :minor_gc_count=>21, :major_gc_count=>5, :compact_count=>0, :read_barrier_faults=>0, :total_moved_objects=>0, :remembered_wb_unprotected_objects=>0, :remembered_wb_unprotected_objects_limit=>1261, :old_objects=>132943, :old_objects_limit=>252338, :oldmalloc_increase_bytes=>2120, :oldmalloc_increase_bytes_limit=>19350882}
before_stat_heap: {0=>{:slot_size=>40, :heap_allocatable_pages=>0, :heap_eden_pages=>121, :heap_eden_slots=>198121, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>121, :total_freed_pages=>0, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>1320497, :total_freed_objects=>1188606}, 1=>{:slot_size=>80, :heap_allocatable_pages=>0, :heap_eden_pages=>12, :heap_eden_slots=>9822, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>13, :total_freed_pages=>1, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>22891, :total_freed_objects=>18933}, 2=>{:slot_size=>160, :heap_allocatable_pages=>2, :heap_eden_pages=>21, :heap_eden_slots=>8587, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>23, :total_freed_pages=>2, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>16160, :total_freed_objects=>13353}, 3=>{:slot_size=>320, :heap_allocatable_pages=>47, :heap_eden_pages=>3, :heap_eden_slots=>610, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>3, :total_freed_pages=>0, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>57, :total_freed_objects=>48}, 4=>{:slot_size=>640, :heap_allocatable_pages=>98, :heap_eden_pages=>2, :heap_eden_slots=>203, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>2, :total_freed_pages=>0, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>23, :total_freed_objects=>18}}
after_stats: {:count=>41, :time=>73, :marking_time=>38, :sweeping_time=>34, :heap_allocated_pages=>159, :heap_sorted_length=>306, :heap_allocatable_pages=>147, :heap_available_slots=>217343, :heap_live_slots=>133218, :heap_free_slots=>84125, :heap_final_slots=>0, :heap_marked_slots=>133157, :heap_eden_pages=>159, :heap_tomb_pages=>0, :total_allocated_pages=>162, :total_freed_pages=>3, :total_allocated_objects=>2363869, :total_freed_objects=>2230651, :malloc_increase_bytes=>1912, :malloc_increase_bytes_limit=>16777216, :minor_gc_count=>36, :major_gc_count=>5, :compact_count=>0, :read_barrier_faults=>0, :total_moved_objects=>0, :remembered_wb_unprotected_objects=>0, :remembered_wb_unprotected_objects_limit=>1261, :old_objects=>133144, :old_objects_limit=>252338, :oldmalloc_increase_bytes=>9696, :oldmalloc_increase_bytes_limit=>19350882}
after_stat_heap: {0=>{:slot_size=>40, :heap_allocatable_pages=>0, :heap_eden_pages=>121, :heap_eden_slots=>198121, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>121, :total_freed_pages=>0, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>2324500, :total_freed_objects=>2198061}, 1=>{:slot_size=>80, :heap_allocatable_pages=>0, :heap_eden_pages=>12, :heap_eden_slots=>9822, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>13, :total_freed_pages=>1, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>22974, :total_freed_objects=>18975}, 2=>{:slot_size=>160, :heap_allocatable_pages=>2, :heap_eden_pages=>21, :heap_eden_slots=>8587, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>23, :total_freed_pages=>2, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>16379, :total_freed_objects=>13549}, 3=>{:slot_size=>320, :heap_allocatable_pages=>47, :heap_eden_pages=>3, :heap_eden_slots=>610, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>3, :total_freed_pages=>0, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>57, :total_freed_objects=>48}, 4=>{:slot_size=>640, :heap_allocatable_pages=>98, :heap_eden_pages=>2, :heap_eden_slots=>203, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>2, :total_freed_pages=>0, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>23, :total_freed_objects=>18}}.
<0> expected but was
<3>.

Finished tests in 1267.674306s, 20.9470 tests/s, 6489.4090 assertions/s.
26554 tests, 8226457 assertions, 8 failures, 0 errors, 117 skips

ruby -v: ruby 3.3.0dev (2023-12-01T07:48:10Z master e005c51732) +RJIT [x86_64-linux]
make: *** [uncommon.mk:937: yes-test-all] エラー 8