虚無庵

徒然なるままに

今日の ruby build 2023-12-20

昨日の更新をしていなかったのはご愛嬌。

今日のビルド

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

  Files:       1027

  Classes:     1252 ( 306 undocumented)
  Modules:      237 (  77 undocumented)
  Constants:   2429 ( 689 undocumented)
  Attributes:  1462 ( 242 undocumented)
  Methods:    12351 (2257 undocumented)

  Total:      17731 (3571 undocumented)
   79.86% documented

  Elapsed: 35.0s

今日のテスト

make test-all を実行。

Finished tests in 889.612012s, 29.8096 tests/s, 7102.0736 assertions/s.
26519 tests, 6318090 assertions, 0 failures, 0 errors, 104 skips

ruby -v: ruby 3.3.0dev (2023-12-20T10:36:35Z master fac7d2c1ab) [x86_64-linux]

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

fac7d2c1ab97cfdbb173360879c1fe07f443624b までを 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:       1027

  Classes:     1252 ( 306 undocumented)
  Modules:      237 (  77 undocumented)
  Constants:   2429 ( 689 undocumented)
  Attributes:  1462 ( 242 undocumented)
  Methods:    12351 (2257 undocumented)

  Total:      17731 (3571 undocumented)
   79.86% documented

  Elapsed: 40.0s

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

make test-all を実行。

  1) Error:
DRbTests::TestDRbCore#test_08_here:
RuntimeError: execution expired
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/.ext/common/monitor.rb:107:in `sleep'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/.ext/common/monitor.rb:107:in `wait'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/.ext/common/monitor.rb:107:in `wait_for_cond'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/.ext/common/monitor.rb:107:in `wait'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/lib/drb/extservm.rb:42:in `block in service'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/.ext/common/monitor.rb:201:in `synchronize'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/.ext/common/monitor.rb:201:in `mon_synchronize'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/lib/drb/extservm.rb:37:in `service'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/drb/drbtest.rb:37:in `block in ext_service'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/lib/timeout.rb:186:in `block in timeout'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/lib/timeout.rb:193:in `timeout'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/tool/lib/envutil.rb:71:in `timeout'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/drb/drbtest.rb:36:in `ext_service'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/drb/drbtest.rb:88:in `setup_service'
    /home/jinroq/dev/sandbox/my-ruby-build/build-up-ruby-repo/test/drb/test_drb.rb:11:in `setup'

Finished tests in 998.298473s, 26.5642 tests/s, 6324.7177 assertions/s.
26519 tests, 6313956 assertions, 0 failures, 1 errors, 109 skips

ruby -v: ruby 3.3.0dev (2023-12-20T10:36:35Z master fac7d2c1ab) [x86_64-linux]
make: *** [uncommon.mk:943: yes-test-all] エラー 1

むっ?

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

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

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

make test-all を実行。

Finished tests in 895.661822s, 29.6083 tests/s, 7047.5506 assertions/s.
26519 tests, 6312222 assertions, 0 failures, 0 errors, 104 skips

ruby -v: ruby 3.3.0dev (2023-12-20T10:36:35Z master fac7d2c1ab) [x86_64-linux]

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

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

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

make test-all を実行。

1. [1/2] Assertion for "stdout"
   | <["hi"]> expected but was
   | <[]>.

  2) 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>.

  3) Failure:
TestGc#test_gc_parameter_init_slots [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_gc.rb:460]:
{:slot_size=>80, :heap_allocatable_pages=>1, :heap_eden_pages=>11, :heap_eden_slots=>9002, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>12, :total_freed_pages=>1, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>22717, :total_freed_objects=>14963}.
Expected 9820 to be >= 10000.

  4) Failure:
TestGc#test_thrashing_for_young_objects [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_gc.rb:659]:
before_stats: {:count=>35, :time=>56, :marking_time=>36, :sweeping_time=>19, :heap_allocated_pages=>136, :heap_sorted_length=>288, :heap_allocatable_pages=>152, :heap_available_slots=>185623, :heap_live_slots=>147620, :heap_free_slots=>38003, :heap_final_slots=>0, :heap_marked_slots=>131545, :heap_eden_pages=>136, :heap_tomb_pages=>0, :total_allocated_pages=>139, :total_freed_pages=>3, :total_allocated_objects=>1361790, :total_freed_objects=>1214170, :malloc_increase_bytes=>2120, :malloc_increase_bytes_limit=>16777216, :minor_gc_count=>30, :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=>1074, :old_objects=>131535, :old_objects_limit=>214926, :oldmalloc_increase_bytes=>2120, :oldmalloc_increase_bytes_limit=>19350882}
before_stat_heap: {0=>{:slot_size=>40, :heap_allocatable_pages=>0, :heap_eden_pages=>103, :heap_eden_slots=>168651, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>103, :total_freed_pages=>0, :force_major_gc_count=>1, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>1322698, :total_freed_objects=>1181072}, 1=>{:slot_size=>80, :heap_allocatable_pages=>1, :heap_eden_pages=>11, :heap_eden_slots=>9002, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>12, :total_freed_pages=>1, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>22914, :total_freed_objects=>19441}, 2=>{:slot_size=>160, :heap_allocatable_pages=>5, :heap_eden_pages=>18, :heap_eden_slots=>7360, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>20, :total_freed_pages=>2, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>16167, :total_freed_objects=>13589}, 3=>{:slot_size=>320, :heap_allocatable_pages=>48, :heap_eden_pages=>2, :heap_eden_slots=>407, :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=>58, :total_freed_objects=>50}, 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=>59, :time=>72, :marking_time=>39, :sweeping_time=>33, :heap_allocated_pages=>136, :heap_sorted_length=>288, :heap_allocatable_pages=>152, :heap_available_slots=>185623, :heap_live_slots=>131760, :heap_free_slots=>53863, :heap_final_slots=>0, :heap_marked_slots=>131699, :heap_eden_pages=>136, :heap_tomb_pages=>0, :total_allocated_pages=>139, :total_freed_pages=>3, :total_allocated_objects=>2366165, :total_freed_objects=>2234405, :malloc_increase_bytes=>1912, :malloc_increase_bytes_limit=>16777216, :minor_gc_count=>54, :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=>1074, :old_objects=>131686, :old_objects_limit=>214926, :oldmalloc_increase_bytes=>7416, :oldmalloc_increase_bytes_limit=>19350882}
after_stat_heap: {0=>{:slot_size=>40, :heap_allocatable_pages=>0, :heap_eden_pages=>103, :heap_eden_slots=>168651, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>103, :total_freed_pages=>0, :force_major_gc_count=>1, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>2326766, :total_freed_objects=>2201046}, 1=>{:slot_size=>80, :heap_allocatable_pages=>1, :heap_eden_pages=>11, :heap_eden_slots=>9002, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>12, :total_freed_pages=>1, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>1, :total_allocated_objects=>22996, :total_freed_objects=>19504}, 2=>{:slot_size=>160, :heap_allocatable_pages=>5, :heap_eden_pages=>18, :heap_eden_slots=>7360, :heap_tomb_pages=>0, :heap_tomb_slots=>0, :total_allocated_pages=>20, :total_freed_pages=>2, :force_major_gc_count=>0, :force_incremental_marking_finish_count=>0, :total_allocated_objects=>16386, :total_freed_objects=>13787}, 3=>{:slot_size=>320, :heap_allocatable_pages=>48, :heap_eden_pages=>2, :heap_eden_slots=>407, :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=>58, :total_freed_objects=>50}, 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>.

  5) Failure:
TestYJIT#test_compile_opt_getconstant_path [/home/jinroq/dev/sandbox/my-ruby-build/build-rjit-ruby-repo/test/ruby/test_yjit.rb:483]:
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:904]:
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]


Finished tests in 1351.731019s, 19.6185 tests/s, 4806.6101 assertions/s.
26519 tests, 6497244 assertions, 6 failures, 0 errors, 120 skips

ruby -v: ruby 3.3.0dev (2023-12-20T10:36:35Z master fac7d2c1ab) +RJIT [x86_64-linux]
make: *** [uncommon.mk:943: yes-test-all] エラー 6

なんか謎いエラーがまた増えた。