Skip to content

Instantly share code, notes, and snippets.

@PragTob
Created August 11, 2020 18:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PragTob/32af2b74d96131c6b7130120245e6fe1 to your computer and use it in GitHub Desktop.
Save PragTob/32af2b74d96131c6b7130120245e6fe1 to your computer and use it in GitHub Desktop.
Rubykon Graal deoptimizations
tobi@speedy:~/github/rubykon(main)$ ruby --jvm -v
truffleruby 20.1.0, like ruby 2.6.5, GraalVM CE JVM [x86_64-linux]
tobi@speedy:~/github/rubykon(main)$ ruby --jvm --experimental-options --engine.TraceTransferToInterpreter --engine.BackgroundCompilation=false benchmark/mcts_avg.rb
Running your benchmark...
--------------------------------------------------------------------------------
[engine] transferToInterpreter at
Array#[]((core):1) <split-133c56f7>
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:50)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38)
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18)
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90)
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:23)
block in Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:27) <split-57a2ed35>
block in Hash#select(resource:/truffleruby/core/hash.rb:308) <split-12ffd1de>
Hash#each_pair((core):1) <split-3d278b4d>
Hash#select(resource:/truffleruby/core/hash.rb:307) <split-4096aa05>
Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:26)
block in Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:106) <split-9d3c67>
Array#each((core):1) <split-6c806c8b>
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105)
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86)
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-6dfcffb5>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-184fb68d>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79)
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.language.locals.WriteLocalVariableNode.execute(WriteLocalVariableNode.java:39)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:136)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-4d99e73>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24)
block in Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:27) <split-57a2ed35>
block in Hash#select(resource:/truffleruby/core/hash.rb:308) <split-12ffd1de>
Hash#each_pair((core):1) <split-3d278b4d>
Hash#select(resource:/truffleruby/core/hash.rb:307) <split-4096aa05>
Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:26)
block in Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:106) <split-9d3c67>
Array#each((core):1) <split-6c806c8b>
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105)
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86)
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-6dfcffb5>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-184fb68d>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79)
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:446)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Array#<<((core):1)
block in Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:64) <split-23f3dbf0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-31d6f3fe>
Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:63)
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23)
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6)
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.array.ArrayNodesFactory$AppendNodeFactory$AppendNodeGen.execute(ArrayNodesFactory.java:7962)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.IfNode.execute(IfNode.java:39)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
...
[engine] transferToInterpreter at
Rubykon::Board#diagonal_coordinates(lib/rubykon/board.rb:176)
Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:63)
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayLiteralNode.cachedCreateArray(ArrayLiteralNode.java:58)
org.truffleruby.core.array.ArrayLiteralNode$IntegerArrayLiteralNode.execute(ArrayLiteralNode.java:169)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
[engine] transferToInterpreter at
Rubykon::MoveValidator#no_ko_move?(lib/rubykon/move_validator.rb:52)
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:17) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileReturnValue(OptimizedCallTarget.java:1111)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:483)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:138)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:93)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
...
[engine] transferToInterpreter at
BasicObject#!=((core):1) <split-47c6a5e7>
Rubykon::MoveValidator#no_ko_move?(lib/rubykon/move_validator.rb:52)
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:17) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.basicobject.BasicObjectNodesFactory$NotEqualNodeFactory$NotEqualNodeGen.execute(BasicObjectNodesFactory.java:204)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:90)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
block in Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:63) <split-23f3dbf0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-31d6f3fe>
Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:63)
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Counting.profile(ConditionProfile.java:187)
org.truffleruby.language.control.IfNode.execute(IfNode.java:38)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.methods.CatchForProcNode.execute(CatchForProcNode.java:38)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.yield.CallBlockNode.callBlockCached(CallBlockNode.java:53)
org.truffleruby.language.yield.CallBlockNodeGen.executeCallBlock(CallBlockNodeGen.java:45)
org.truffleruby.language.yield.YieldNode.dispatch(YieldNode.java:37)
org.truffleruby.language.yield.YieldNodeGen.executeDispatchWithArrayArguments(YieldNodeGen.java:30)
org.truffleruby.language.yield.YieldNode.executeDispatch(YieldNode.java:29)
...
[engine] transferToInterpreter at
BasicObject#!=((core):1) <split-47c6a5e7>
Rubykon::MoveValidator#no_ko_move?(lib/rubykon/move_validator.rb:52) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:17) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.basicobject.BasicObjectNodesFactory$NotEqualNodeFactory$NotEqualNodeGen.execute(BasicObjectNodesFactory.java:204)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:90)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
...
[engine] transferToInterpreter at
Rubykon::Board#on_board?(lib/rubykon/board.rb:74)
block in Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:64) <split-23f3dbf0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-31d6f3fe>
Rubykon::Board#diagonal_colors_of(lib/rubykon/board.rb:63)
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Counting.profile(ConditionProfile.java:187)
org.truffleruby.language.control.AndNode.execute(AndNode.java:39)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.core.cast.BooleanCastNodeGen.executeBoolean(BooleanCastNodeGen.java:113)
...
[engine] transferToInterpreter at
Array#each((core):1) <split-2ce29d36>
Array#count(resource:/truffleruby/core/array.rb:316)
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayEachIteratorNodeGen.execute(ArrayEachIteratorNodeGen.java:70)
org.truffleruby.core.array.ArrayNodes$EachNode.each(ArrayNodes.java:631)
org.truffleruby.core.array.ArrayNodesFactory$EachNodeFactory$EachNodeGen.execute(ArrayNodesFactory.java:4027)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
[engine] transferToInterpreter at
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:21) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.nodes.Node.replace(Node.java:371)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.lambda$split$0(OptimizedDirectCallNode.java:187)
org.graalvm.truffle/com.oracle.truffle.api.nodes.Node.atomic(Node.java:569)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.split(OptimizedDirectCallNode.java:172)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.TruffleSplittingStrategy.doSplit(TruffleSplittingStrategy.java:73)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.TruffleSplittingStrategy.beforeCall(TruffleSplittingStrategy.java:63)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.onInterpreterCall(OptimizedDirectCallNode.java:160)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:65)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.locals.WriteLocalVariableNode.execute(WriteLocalVariableNode.java:39)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
...
[engine] transferToInterpreter at
block in Array#count(resource:/truffleruby/core/array.rb:316) <split-7d0b09c2>
Array#each((core):1) <split-28ea23c0>
Array#count(resource:/truffleruby/core/array.rb:316) <split-20b2c965>
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Counting.profile(ConditionProfile.java:174)
org.truffleruby.language.control.IfNode.execute(IfNode.java:38)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.methods.CatchForProcNode.execute(CatchForProcNode.java:38)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.yield.CallBlockNode.callBlockCached(CallBlockNode.java:53)
org.truffleruby.language.yield.CallBlockNodeGen.executeCallBlock(CallBlockNodeGen.java:45)
org.truffleruby.language.yield.YieldNode.dispatch(YieldNode.java:37)
org.truffleruby.language.yield.YieldNodeGen.executeDispatchWithArrayArguments(YieldNodeGen.java:30)
org.truffleruby.language.yield.YieldNode.executeDispatch(YieldNode.java:29)
org.truffleruby.builtins.YieldingCoreMethodNode.yield(YieldingCoreMethodNode.java:21)
org.truffleruby.core.array.ArrayNodes$EachNode.accept(ArrayNodes.java:636)
...
[engine] transferToInterpreter at
Array#each((core):1) <split-28ea23c0>
Array#count(resource:/truffleruby/core/array.rb:316) <split-20b2c965>
Rubykon::EyeDetector#is_real_eye?(lib/rubykon/eye_detector.rb:23) <split-2a35f445>
Rubykon::EyeDetector#is_eye?(lib/rubykon/eye_detector.rb:6) <split-2b0ad9d6>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <opt> <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayEachIteratorNodeGen.execute(ArrayEachIteratorNodeGen.java:70)
org.truffleruby.core.array.ArrayNodes$EachNode.each(ArrayNodes.java:631)
org.truffleruby.core.array.ArrayNodesFactory$EachNodeFactory$EachNodeGen.execute(ArrayNodesFactory.java:4027)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
[engine] transferToInterpreter at
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:53)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Counting.profile(ConditionProfile.java:174)
org.truffleruby.language.control.OrNode.execute(OrNode.java:37)
org.truffleruby.core.cast.BooleanCastNodeGen.executeBoolean(BooleanCastNodeGen.java:113)
org.truffleruby.language.control.NotNode.execute(NotNode.java:29)
org.truffleruby.core.cast.BooleanCastNodeGen.executeBoolean(BooleanCastNodeGen.java:113)
org.truffleruby.language.control.WhileNode$WhileRepeatingNode.executeRepeating(WhileNode.java:78)
org.graalvm.truffle/com.oracle.truffle.api.nodes.RepeatingNode.executeRepeatingWithValue(RepeatingNode.java:106)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedOSRLoopNode.execute(OptimizedOSRLoopNode.java:134)
org.truffleruby.language.control.WhileNode.execute(WhileNode.java:37)
org.truffleruby.language.methods.CatchBreakNode.execute(CatchBreakNode.java:40)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
...
[engine] transferToInterpreter at
Rubykon::GameState#pass_move(lib/rubykon/game_state.rb:81)
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:71)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayLiteralNode.cachedCreateArray(ArrayLiteralNode.java:58)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:237)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-18718f44>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-7a0de2bf>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-6ef976c9>
Rubykon::GroupTracker#liberty_count_at(lib/rubykon/group_tracker.rb:20)
Rubykon::MoveValidator#liberties_at(lib/rubykon/move_validator.rb:48)
block in Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:43) <split-477b4d9e>
block in Enumerable#any?(resource:/truffleruby/core/enumerable.rb:502) <opt> <split-7d37d45f>
Array#each((core):1) <opt> <split-68e20acc>
Enumerable#any?(resource:/truffleruby/core/enumerable.rb:502) <split-60860df0>
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:40) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-36be9b93>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-5a355e6d>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-6630db8b>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-4783d800>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <split-7139b010>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <split-62db0521>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-1b4ae4e0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-6ef1a1b9>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38)
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5fbdc49b>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:298)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Rubykon::Board#[](lib/rubykon/board.rb:30) <split-f287470>
Rubykon::MoveValidator#spot_unoccupied?(lib/rubykon/move_validator.rb:32) <split-6f24069c>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:16) <split-36be9b93>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-5a355e6d>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-6630db8b>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-4783d800>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <split-7139b010>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <split-62db0521>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-1b4ae4e0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-6ef1a1b9>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38)
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5fbdc49b>
Class#new((core):1) <split-2954b5ea>
MCTS::Node#create_child(lib/mcts/node.rb:83)
MCTS::Node#expand(lib/mcts/node.rb:39)
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileReturnValue(OptimizedCallTarget.java:1111)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:483)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-31a11d5a>
Rubykon::Board#[](lib/rubykon/board.rb:30) <split-3e9864b>
Rubykon::MoveValidator#spot_unoccupied?(lib/rubykon/move_validator.rb:32) <split-2b5cb92f>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:16) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61)
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19)
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-1da23b60>
block in Hash#select(resource:/truffleruby/core/hash.rb:309) <split-12ffd1de>
Hash#each_pair((core):1) <split-3d278b4d>
Hash#select(resource:/truffleruby/core/hash.rb:307) <split-4096aa05>
Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:26)
block in Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:106) <split-4492eede>
Array#each((core):1) <split-cbc8d0f>
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Binary.profile(ConditionProfile.java:249)
org.truffleruby.core.hash.SetNode.setBuckets(SetNode.java:150)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:44)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.IfNode.execute(IfNode.java:39)
...
[engine] transferToInterpreter at
Array#<<((core):1)
Rubykon::Group#add_stone(lib/rubykon/group.rb:83) <opt>
Rubykon::Group#connect(lib/rubykon/group.rb:20) <split-38cfd4f0>
block in Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:125) <split-335fa7e9>
Array#each((core):1) <split-4869e274>
Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:123) <split-351ce043>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:13) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayAppendOneNodeGen.executeAppendOne(ArrayAppendOneNodeGen.java:85)
org.truffleruby.core.array.ArrayNodes$AppendNode.append(ArrayNodes.java:1537)
org.truffleruby.core.array.ArrayNodesFactory$AppendNodeFactory$AppendNodeGen.execute(ArrayNodesFactory.java:7965)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-51c88a73>
block (2 levels) in Hash#merge!(resource:/truffleruby/core/hash.rb:282) <opt> <split-8a34b4e>
Hash#each_pair((core):1) <split-2d718564>
block in Hash#merge!(resource:/truffleruby/core/hash.rb:280) <split-35c76fe>
Array#each((core):1) <split-62b065be>
Hash#merge!(resource:/truffleruby/core/hash.rb:276) <split-73a16d90>
Rubykon::Group#merge_liberties(lib/rubykon/group.rb:73)
Rubykon::Group#merge(lib/rubykon/group.rb:62)
Rubykon::Group#connect(lib/rubykon/group.rb:18) <split-38cfd4f0>
block in Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:125) <split-335fa7e9>
Array#each((core):1) <opt> <split-4869e274>
Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:123) <split-351ce043>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:13) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.yield.YieldExpressionNode.execute(YieldExpressionNode.java:50)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-1fcff843>
block in Enumerable#uniq(resource:/truffleruby/core/enumerable.rb:971) <split-9736c2>
Array#each((core):1) <split-3c8d10b3>
Enumerable#uniq(resource:/truffleruby/core/enumerable.rb:969)
Array#uniq(resource:/truffleruby/core/array.rb:1645)
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Binary.profile(ConditionProfile.java:255)
org.truffleruby.core.hash.SetNode.setBuckets(SetNode.java:127)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:44)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-e3db865>
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:154)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-121fc2cd>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-464c4873>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-5240bec8>
block in Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:57) <split-59e8be5a>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <opt> <split-33a71087>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:56) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:298)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-5328bfb3>
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:151)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-121fc2cd>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-464c4873>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-5240bec8>
block in Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:57) <split-59e8be5a>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-33a71087>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:56) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-50ad1b3b>
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:148)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-16a883db>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-56b8ea0e>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-51c5d800>
block in Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:124) <split-335fa7e9>
Array#each((core):1) <split-4869e274>
Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:123) <split-351ce043>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:13) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:298)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-56572128>
Rubykon::GroupTracker#stone_joins_group(lib/rubykon/group_tracker.rb:36)
Rubykon::Group#add_stone(lib/rubykon/group.rb:82)
Rubykon::Group#connect(lib/rubykon/group.rb:20) <split-38cfd4f0>
block in Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:125) <split-335fa7e9>
Array#each((core):1) <split-4869e274>
Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:123) <split-351ce043>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:13) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:49)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-42f878db>
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:157)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
[engine] transferToInterpreter at
Array#+((core):1) <split-3e9e298f>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayNodesFactory$AddNodeFactory$AddNodeGen.execute(ArrayNodesFactory.java:273)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.methods.CatchForProcNode.execute(CatchForProcNode.java:38)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-16a883db>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-56b8ea0e>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-51c5d800>
block in Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:124) <split-335fa7e9>
Array#each((core):1) <split-4869e274>
Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:123) <split-351ce043>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:13) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-56572128>
Rubykon::GroupTracker#stone_joins_group(lib/rubykon/group_tracker.rb:36)
Rubykon::Group#add_stone(lib/rubykon/group.rb:82)
Rubykon::Group#connect(lib/rubykon/group.rb:20) <split-38cfd4f0>
block in Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:125) <split-335fa7e9>
Array#each((core):1) <split-4869e274>
Rubykon::GroupTracker#join_group_of_friendly_stones(lib/rubykon/group_tracker.rb:123) <split-351ce043>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:13) <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Binary.profile(ConditionProfile.java:249)
org.truffleruby.core.hash.SetNode.setPackedArray(SetNode.java:92)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:37)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-18718f44>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-7a0de2bf>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-6ef976c9>
Rubykon::GroupTracker#liberty_count_at(lib/rubykon/group_tracker.rb:20)
Rubykon::MoveValidator#liberties_at(lib/rubykon/move_validator.rb:48)
block in Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:42) <split-477b4d9e>
block in Enumerable#any?(resource:/truffleruby/core/enumerable.rb:502) <opt> <split-7d37d45f>
Array#each((core):1) <split-68e20acc>
Enumerable#any?(resource:/truffleruby/core/enumerable.rb:502) <split-60860df0>
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:40) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18)
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-66d8872e>
Rubykon::Board#handle_corner_case(lib/rubykon/board.rb:170)
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:160)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
block in Rubykon::GroupTracker#color_to_neighbour(lib/rubykon/group_tracker.rb:47) <split-137b9636>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-3e11b0c0>
Rubykon::GroupTracker#color_to_neighbour(lib/rubykon/group_tracker.rb:46) <split-1ac2829e>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:12) <split-7a7f2247>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-4946dfde>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-77972964>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-794f937a>
MCTS::Node#create_child(lib/mcts/node.rb:82)
MCTS::Node#expand(lib/mcts/node.rb:39)
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileArguments(OptimizedCallTarget.java:994)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:387)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.OrNode.execute(OrNode.java:35)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:85)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.methods.CatchForProcNode.execute(CatchForProcNode.java:38)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-73f2ca76>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-68012622>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-28d37e3a>
block in Rubykon::GroupTracker#add_liberties(lib/rubykon/group_tracker.rb:118) <split-7ff382f1>
Array#each((core):1) <split-5a8b75d>
Rubykon::GroupTracker#add_liberties(lib/rubykon/group_tracker.rb:117) <split-7aa1fb0e>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:15) <split-7a7f2247>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-4946dfde>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-77972964>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-794f937a>
MCTS::Node#create_child(lib/mcts/node.rb:82)
MCTS::Node#expand(lib/mcts/node.rb:39)
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-7830bfe4>
block in Rubykon::GroupTracker#dup_groups(lib/rubykon/group_tracker.rb:139) <split-6345d559>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-1be400cd>
Hash#each((core):1) <split-aa0740c>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-4b74a67a>
Rubykon::GroupTracker#dup_groups(lib/rubykon/group_tracker.rb:138)
Rubykon::GroupTracker#dup(lib/rubykon/group_tracker.rb:40)
Rubykon::Game#dup(lib/rubykon/game.rb:66)
Rubykon::GameState#dup(lib/rubykon/game_state.rb:29)
MCTS::Playout#initialize(lib/mcts/playout.rb:7)
Class#new((core):1) <split-4e25282d>
MCTS::Node#rollout(lib/mcts/node.rb:43)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:49)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-1b7755c6>
Rubykon::Board#handle_corner_case(lib/rubykon/board.rb:168)
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:160)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-1ff99e54>
Rubykon::Board#handle_corner_case(lib/rubykon/board.rb:166)
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:160)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
[engine] transferToInterpreter at
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:27) <split-70e5838b>
block in Rubykon::GroupTracker#add_liberties(lib/rubykon/group_tracker.rb:118) <split-5abe546b>
Array#each((core):1) <split-551b69d5>
Rubykon::GroupTracker#add_liberties(lib/rubykon/group_tracker.rb:117) <split-12e4c6a0>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:15) <split-3ec72844>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-2d4c9746>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-726615d7>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-46030cfd>
MCTS::Node#create_child(lib/mcts/node.rb:82) <split-41019971>
MCTS::Node#expand(lib/mcts/node.rb:39) <split-83ec0b0>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.language.locals.WriteLocalVariableNode.execute(WriteLocalVariableNode.java:39)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-618a4ef9>
Rubykon::Board#handle_corner_case(lib/rubykon/board.rb:172)
Rubykon::Board#handle_edge_cases(lib/rubykon/board.rb:160)
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:53)
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-476bab4b>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-760cf594>
Rubykon::GameState#generate_random_move(lib/rubykon/game_state.rb:61) <opt>
Rubykon::GameState#generate_move(lib/rubykon/game_state.rb:19) <opt>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12)
MCTS::Node#rollout(lib/mcts/node.rb:44)
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-50d951e7>
Proc#call((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Integer#*((core):1)
Time#-(resource:/truffleruby/core/time.rb:196)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:45)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.numeric.IntegerNodesFactory$MulNodeFactory$MulNodeGen.execute(IntegerNodesFactory.java:1289)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:90)
org.truffleruby.language.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:136)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.core.inlined.InlinedOperationNode.rewriteAndCallWithBlock(InlinedOperationNode.java:76)
...
------------------------------------------------
Sample time: 280.204559
----------------------------------------------
[engine] transferToInterpreter at
Array#<<((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:55)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.library.ZeroLengthArrayStoreGen$ArrayStoreLibraryExports$Cached.generalizeForValue(ZeroLengthArrayStoreGen.java:100)
org.truffleruby.core.array.ArrayAppendOneNode.appendOneGeneralizeNonMutable(ArrayAppendOneNode.java:85)
org.truffleruby.core.array.ArrayAppendOneNodeGen.executeAppendOne(ArrayAppendOneNodeGen.java:69)
org.truffleruby.core.array.ArrayNodes$AppendNode.append(ArrayNodes.java:1537)
org.truffleruby.core.array.ArrayNodesFactory$AppendNodeFactory$AppendNodeGen.execute(ArrayNodesFactory.java:7965)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:136)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:336) <split-62db0521>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-1b4ae4e0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-6ef1a1b9>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38)
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-6b3321fe>
MCTS::Root#initialize(lib/mcts/root.rb:4)
Class#new((core):1) <split-26772e54>
MCTS::MCTS#start(lib/mcts/mcts.rb:4)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayEachIteratorNodeGen.execute(ArrayEachIteratorNodeGen.java:70)
org.truffleruby.core.array.ArrayNodes$EachWithIndexNode.eachOther(ArrayNodes.java:652)
org.truffleruby.core.array.ArrayNodesFactory$EachWithIndexNodeFactory$EachWithIndexNodeGen.execute(ArrayNodesFactory.java:4136)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
...
[engine] transferToInterpreter at
Array#[]((core):1) <split-7f9e85ce>
Rubykon::Board#[](lib/rubykon/board.rb:30) <split-f287470>
Rubykon::MoveValidator#spot_unoccupied?(lib/rubykon/move_validator.rb:32) <split-6f24069c>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:16) <split-36be9b93>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-5a355e6d>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-6630db8b>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-4783d800>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <split-7139b010>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <split-62db0521>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-1b4ae4e0>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-6ef1a1b9>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38)
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-6b3321fe>
MCTS::Root#initialize(lib/mcts/root.rb:4)
Class#new((core):1) <split-26772e54>
MCTS::MCTS#start(lib/mcts/mcts.rb:4)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayReadNormalizedNodeGen.executeRead(ArrayReadNormalizedNodeGen.java:66)
org.truffleruby.core.array.ArrayReadDenormalizedNode.read(ArrayReadDenormalizedNode.java:36)
org.truffleruby.core.array.ArrayReadDenormalizedNodeGen.executeRead(ArrayReadDenormalizedNodeGen.java:36)
org.truffleruby.core.array.ArrayIndexNode.index(ArrayIndexNode.java:38)
org.truffleruby.core.array.ArrayNodesFactory$IndexNodeFactory$IndexNodeGen.execute(ArrayNodesFactory.java:779)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
MCTS::Node#initialize(lib/mcts/node.rb:5) <split-6b3321fe>
MCTS::Root#initialize(lib/mcts/root.rb:4)
Class#new((core):1) <split-26772e54>
MCTS::MCTS#start(lib/mcts/mcts.rb:4)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Binary.profile(ConditionProfile.java:249)
org.truffleruby.language.objects.WriteInstanceVariableNode.execute(WriteInstanceVariableNode.java:43)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.methods.CallInternalMethodNode.callMethodCached(CallInternalMethodNode.java:41)
org.truffleruby.language.methods.CallInternalMethodNodeGen.executeCallMethod(CallInternalMethodNodeGen.java:40)
org.truffleruby.language.supercall.CallSuperMethodNode.callMethod(CallSuperMethodNode.java:67)
org.truffleruby.language.supercall.CallSuperMethodNode.callSuperMethod(CallSuperMethodNode.java:59)
org.truffleruby.language.supercall.CallSuperMethodNodeGen.executeCallSuperMethod(CallSuperMethodNodeGen.java:17)
...
[engine] transferToInterpreter at
MCTS::Node#untried_moves?(lib/mcts/node.rb:66) <split-5bd02c2>
MCTS::Root#select(lib/mcts/root.rb:43) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:20)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.objects.MetaClassNodeGen.executeMetaClass(MetaClassNodeGen.java:108)
org.truffleruby.language.methods.LookupMethodNode.metaClass(LookupMethodNode.java:187)
org.truffleruby.language.methods.LookupMethodNodeGen.executeLookupMethod(LookupMethodNodeGen.java:54)
org.truffleruby.language.methods.LookupMethodNode.lookup(LookupMethodNode.java:50)
org.truffleruby.core.inlined.InlinedNotNodeGen.execute(InlinedNotNodeGen.java:48)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:86)
...
[engine] transferToInterpreter at
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:50) <split-500dd704>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-7eff6688>
MCTS::Node#create_child(lib/mcts/node.rb:82) <split-1a3b7d93>
MCTS::Node#expand(lib/mcts/node.rb:39) <split-32cdac72>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.language.locals.WriteLocalVariableNode.execute(WriteLocalVariableNode.java:39)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:33)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-1d68dbfa>
Rubykon::Group#add_liberty(lib/rubykon/group.rb:40) <split-2357a5e3>
block in Rubykon::GroupTracker#add_liberties(lib/rubykon/group_tracker.rb:118) <split-31a11d14>
Array#each((core):1) <split-3ec8727f>
Rubykon::GroupTracker#add_liberties(lib/rubykon/group_tracker.rb:117) <split-45409a1d>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:15) <split-61e616fc>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-4eea7cc2>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <split-500dd704>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <split-7eff6688>
MCTS::Node#create_child(lib/mcts/node.rb:82) <split-1a3b7d93>
MCTS::Node#expand(lib/mcts/node.rb:39) <split-32cdac72>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Binary.profile(ConditionProfile.java:255)
org.truffleruby.core.hash.SetNode.setPackedArray(SetNode.java:92)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:37)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
...
[engine] transferToInterpreter at
MCTS::Node#untried_moves?(lib/mcts/node.rb:66) <split-5bd02c2>
MCTS::Root#select(lib/mcts/root.rb:43) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:20)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.objects.MetaClassNodeGen.executeMetaClass(MetaClassNodeGen.java:108)
org.truffleruby.language.methods.LookupMethodNode.metaClass(LookupMethodNode.java:187)
org.truffleruby.language.methods.LookupMethodNodeGen.executeLookupMethod(LookupMethodNodeGen.java:54)
org.truffleruby.language.methods.LookupMethodNode.lookup(LookupMethodNode.java:50)
org.truffleruby.core.inlined.InlinedNotNodeGen.execute(InlinedNotNodeGen.java:48)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:86)
...
[engine] transferToInterpreter at
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <split-a58f9a6>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-76c944ce>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-253a891e>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38) <split-500bae0b>
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5adf0e83>
Class#new((core):1) <split-616e1ec>
MCTS::Node#create_child(lib/mcts/node.rb:83) <split-41019971>
MCTS::Node#expand(lib/mcts/node.rb:39) <split-83ec0b0>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileArguments(OptimizedCallTarget.java:994)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:387)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.yield.CallBlockNode.callBlockCached(CallBlockNode.java:53)
org.truffleruby.language.yield.CallBlockNodeGen.executeCallBlock(CallBlockNodeGen.java:45)
org.truffleruby.language.yield.YieldNode.dispatch(YieldNode.java:37)
org.truffleruby.language.yield.YieldNodeGen.executeDispatchWithArrayArguments(YieldNodeGen.java:30)
org.truffleruby.language.yield.YieldNode.executeDispatch(YieldNode.java:29)
org.truffleruby.core.array.ArrayNodes$EachWithIndexNode.accept(ArrayNodes.java:657)
org.truffleruby.core.array.ArrayEachIteratorNode.iterateMany(ArrayEachIteratorNode.java:80)
org.truffleruby.core.array.ArrayEachIteratorNodeGen.executeAndSpecialize(ArrayEachIteratorNodeGen.java:172)
org.truffleruby.core.array.ArrayEachIteratorNodeGen.execute(ArrayEachIteratorNodeGen.java:71)
org.truffleruby.core.array.ArrayNodes$EachWithIndexNode.eachOther(ArrayNodes.java:652)
org.truffleruby.core.array.ArrayNodesFactory$EachWithIndexNodeFactory$EachWithIndexNodeGen.executeAndSpecialize(ArrayNodesFactory.java:4157)
org.truffleruby.core.array.ArrayNodesFactory$EachWithIndexNodeFactory$EachWithIndexNodeGen.execute(ArrayNodesFactory.java:4140)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]=((core):1) <split-1fcff843>
block in Enumerable#uniq(resource:/truffleruby/core/enumerable.rb:971) <split-9736c2>
Array#each((core):1) <split-3c8d10b3>
Enumerable#uniq(resource:/truffleruby/core/enumerable.rb:969)
Array#uniq(resource:/truffleruby/core/array.rb:1645)
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Binary.profile(ConditionProfile.java:249)
org.truffleruby.core.hash.SetNode.setBuckets(SetNode.java:150)
org.truffleruby.core.hash.SetNodeGen.executeSet(SetNodeGen.java:44)
org.truffleruby.core.hash.HashNodes$SetIndexNode.set(HashNodes.java:245)
org.truffleruby.core.hash.HashNodesFactory$SetIndexNodeFactory$SetIndexNodeGen.execute(HashNodesFactory.java:632)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.RubyNode.doExecuteVoid(RubyNode.java:60)
...
[engine] transferToInterpreter at
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:50) <opt>
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-38f8e6d0>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-7c04b13>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-3ca85577>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-25e2b4b7>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <opt> <split-26132291>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <opt> <split-a58f9a6>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-76c944ce>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-253a891e>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38) <split-500bae0b>
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5adf0e83>
Class#new((core):1) <split-616e1ec>
MCTS::Node#create_child(lib/mcts/node.rb:83) <split-41019971>
MCTS::Node#expand(lib/mcts/node.rb:39) <opt> <split-83ec0b0>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileReturnValue(OptimizedCallTarget.java:1111)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:483)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
...
[engine] transferToInterpreter at
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:50) <opt>
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-38f8e6d0>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-7c04b13>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-3ca85577>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-25e2b4b7>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <opt> <split-26132291>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <opt> <split-a58f9a6>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-76c944ce>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-253a891e>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38) <split-500bae0b>
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5adf0e83>
Class#new((core):1) <split-616e1ec>
MCTS::Node#create_child(lib/mcts/node.rb:83) <split-41019971>
MCTS::Node#expand(lib/mcts/node.rb:39) <opt> <split-83ec0b0>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileReturnValue(OptimizedCallTarget.java:1111)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:483)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
...
[engine] transferToInterpreter at
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:51) <opt>
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-38f8e6d0>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-7c04b13>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-3ca85577>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-25e2b4b7>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <opt> <split-26132291>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <opt> <split-a58f9a6>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-76c944ce>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-253a891e>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38) <split-500bae0b>
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5adf0e83>
Class#new((core):1) <split-616e1ec>
MCTS::Node#create_child(lib/mcts/node.rb:83) <split-41019971>
MCTS::Node#expand(lib/mcts/node.rb:39) <opt> <split-83ec0b0>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileReturnValue(OptimizedCallTarget.java:1111)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:483)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
...
[engine] transferToInterpreter at
Rubykon::Board#neighbours_of(lib/rubykon/board.rb:51) <opt>
Rubykon::MoveValidator#no_suicide_move?(lib/rubykon/move_validator.rb:38) <opt>
Rubykon::MoveValidator#trusted_valid?(lib/rubykon/move_validator.rb:18) <split-38f8e6d0>
Rubykon::GameState#plausible_move?(lib/rubykon/game_state.rb:90) <split-7c04b13>
block in Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:39) <split-3ca85577>
block in Enumerable#inject(resource:/truffleruby/core/enumerable.rb:478) <split-25e2b4b7>
block in Rubykon::Board#each(lib/rubykon/board.rb:21) <opt> <split-26132291>
Enumerable#each_with_index(resource:/truffleruby/core/enumerable.rb:340) <opt> <split-a58f9a6>
Rubykon::Board#each(lib/rubykon/board.rb:20) <split-76c944ce>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:473) <split-253a891e>
Rubykon::GameState#all_valid_moves(lib/rubykon/game_state.rb:38) <split-500bae0b>
MCTS::Node#initialize(lib/mcts/node.rb:12) <split-5adf0e83>
Class#new((core):1) <split-616e1ec>
MCTS::Node#create_child(lib/mcts/node.rb:83) <split-41019971>
MCTS::Node#expand(lib/mcts/node.rb:39) <opt> <split-83ec0b0>
MCTS::Root#explore_tree(lib/mcts/root.rb:24)
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-148c7c4b>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-2009f9b0>
MCTS::MCTS#start(lib/mcts/mcts.rb:6)
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profileReturnValue(OptimizedCallTarget.java:1111)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:483)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.core.array.ArrayLiteralNode$ObjectArrayLiteralNode.execute(ArrayLiteralNode.java:234)
org.truffleruby.language.control.IfElseNode.execute(IfElseNode.java:43)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
...
------------------------------------------------
Sample time: 91.741652
----------------------------------------------
[engine] transferToInterpreter at
Array#<<((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:55)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayAppendOneNodeGen.executeAppendOne(ArrayAppendOneNodeGen.java:85)
org.truffleruby.core.array.ArrayNodes$AppendNode.append(ArrayNodes.java:1537)
org.truffleruby.core.array.ArrayNodesFactory$AppendNodeFactory$AppendNodeGen.execute(ArrayNodesFactory.java:7965)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
...
------------------------------------------------
Sample time: 9.684221
----------------------------------------------
[engine] transferToInterpreter at
MCTS::Node#untried_moves?(lib/mcts/node.rb:66) <split-1c7c8623>
MCTS::Root#select(lib/mcts/root.rb:43) <opt> <split-11616585>
MCTS::Root#explore_tree(lib/mcts/root.rb:20) <split-22fbea95>
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <split-3093f75f>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-65482336>
MCTS::MCTS#start(lib/mcts/mcts.rb:6) <split-2fea3289>
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
Proc#call((core):1) <split-5ac81385>
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:43)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.objects.MetaClassNodeGen.executeMetaClass(MetaClassNodeGen.java:108)
org.truffleruby.language.methods.LookupMethodNode.metaClass(LookupMethodNode.java:187)
org.truffleruby.language.methods.LookupMethodNodeGen.executeLookupMethod(LookupMethodNodeGen.java:54)
org.truffleruby.language.methods.LookupMethodNode.lookup(LookupMethodNode.java:50)
org.truffleruby.core.inlined.InlinedNotNodeGen.execute(InlinedNotNodeGen.java:48)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.CatchForMethodNode.execute(CatchForMethodNode.java:42)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:86)
...
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-3093f75f>
Integer#times(resource:/truffleruby/core/integer.rb:134) <split-65482336>
MCTS::MCTS#start(lib/mcts/mcts.rb:6) <split-2fea3289>
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
------------------------------------------------
Sample time: 27.057884
----------------------------------------------
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-3093f75f>
Integer#times(resource:/truffleruby/core/integer.rb:134) <opt> <split-65482336>
MCTS::MCTS#start(lib/mcts/mcts.rb:6) <split-2fea3289>
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
------------------------------------------------
Sample time: 19.766523
----------------------------------------------
------------------------------------------------
Sample time: 2.290701
----------------------------------------------
------------------------------------------------
Sample time: 1.709018
----------------------------------------------
------------------------------------------------
Sample time: 1.696002
----------------------------------------------
------------------------------------------------
Sample time: 1.695919
----------------------------------------------
------------------------------------------------
Sample time: 1.691995
----------------------------------------------
------------------------------------------------
Sample time: 1.684291
----------------------------------------------
------------------------------------------------
Sample time: 1.706919
----------------------------------------------
------------------------------------------------
Sample time: 1.6929539999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.699843
----------------------------------------------
------------------------------------------------
Sample time: 1.711204
----------------------------------------------
------------------------------------------------
Sample time: 1.699248
----------------------------------------------
------------------------------------------------
Sample time: 1.69538
----------------------------------------------
[engine] transferToInterpreter at
Array#<<((core):1)
Benchmark::Avg::Job#measure_block(lib/benchmark/avg/job.rb:55)
Benchmark::Avg::Job#measure_until(lib/benchmark/avg/job.rb:37)
Benchmark::Avg::Job#run(lib/benchmark/avg/job.rb:17)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29) <split-39ad12b6>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-5524b72f>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:29)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.graalvm.truffle/com.oracle.truffle.api.profiles.ConditionProfile$Counting.profile(ConditionProfile.java:174)
org.truffleruby.core.array.ArrayAppendOneNode.appendOneSameType(ArrayAppendOneNode.java:57)
org.truffleruby.core.array.ArrayAppendOneNodeGen.executeAppendOne(ArrayAppendOneNodeGen.java:50)
org.truffleruby.core.array.ArrayNodes$AppendNode.append(ArrayNodes.java:1537)
org.truffleruby.core.array.ArrayNodesFactory$AppendNodeFactory$AppendNodeGen.execute(ArrayNodesFactory.java:7965)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
------------------------------------------------
Sample time: 1.672741
----------------------------------------------
------------------------------------------------
Sample time: 1.686477
----------------------------------------------
------------------------------------------------
Sample time: 1.702402
----------------------------------------------
------------------------------------------------
Sample time: 1.684401
----------------------------------------------
------------------------------------------------
Sample time: 1.702912
----------------------------------------------
------------------------------------------------
Sample time: 1.701248
----------------------------------------------
------------------------------------------------
Sample time: 1.685635
----------------------------------------------
------------------------------------------------
Sample time: 1.69251
----------------------------------------------
------------------------------------------------
Sample time: 1.685548
----------------------------------------------
------------------------------------------------
Sample time: 1.692057
----------------------------------------------
------------------------------------------------
Sample time: 1.69237
----------------------------------------------
------------------------------------------------
Sample time: 1.698536
----------------------------------------------
------------------------------------------------
Sample time: 1.683141
----------------------------------------------
------------------------------------------------
Sample time: 1.693732
----------------------------------------------
------------------------------------------------
Sample time: 1.692669
----------------------------------------------
------------------------------------------------
Sample time: 1.7194180000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.702509
----------------------------------------------
------------------------------------------------
Sample time: 1.694437
----------------------------------------------
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-3093f75f>
Integer#times(resource:/truffleruby/core/integer.rb:134) <opt> <split-65482336>
MCTS::MCTS#start(lib/mcts/mcts.rb:6) <split-2fea3289>
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
------------------------------------------------
Sample time: 14.545068
----------------------------------------------
------------------------------------------------
Sample time: 1.696019
----------------------------------------------
------------------------------------------------
Sample time: 1.687554
----------------------------------------------
------------------------------------------------
Sample time: 1.692664
----------------------------------------------
------------------------------------------------
Sample time: 1.670594
----------------------------------------------
------------------------------------------------
Sample time: 1.699127
----------------------------------------------
------------------------------------------------
Sample time: 1.6943030000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.6898499999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.680997
----------------------------------------------
------------------------------------------------
Sample time: 1.680771
----------------------------------------------
------------------------------------------------
Sample time: 1.670761
----------------------------------------------
------------------------------------------------
Sample time: 1.687636
----------------------------------------------
------------------------------------------------
Sample time: 1.675111
----------------------------------------------
[engine] transferToInterpreter at
Hash#[]((core):1) <split-18ea1bc5>
Rubykon::GroupTracker#group(lib/rubykon/group_tracker.rb:32) <split-2f302a70>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-7d82ebaa>
block in Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:112) <opt> <split-2d98109c>
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:298)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
...
------------------------------------------------
Sample time: 14.748949
----------------------------------------------
------------------------------------------------
Sample time: 1.677385
----------------------------------------------
------------------------------------------------
Sample time: 1.680628
----------------------------------------------
------------------------------------------------
Sample time: 1.680703
----------------------------------------------
------------------------------------------------
Sample time: 1.714392
----------------------------------------------
------------------------------------------------
Sample time: 1.6893829999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6917900000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.690188
----------------------------------------------
------------------------------------------------
Sample time: 1.691659
----------------------------------------------
------------------------------------------------
Sample time: 1.705802
----------------------------------------------
------------------------------------------------
Sample time: 1.713079
----------------------------------------------
------------------------------------------------
Sample time: 1.69177
----------------------------------------------
------------------------------------------------
Sample time: 1.7037520000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.680969
----------------------------------------------
------------------------------------------------
Sample time: 1.687945
----------------------------------------------
------------------------------------------------
Sample time: 1.69821
----------------------------------------------
------------------------------------------------
Sample time: 1.687914
----------------------------------------------
------------------------------------------------
Sample time: 1.693529
----------------------------------------------
------------------------------------------------
Sample time: 1.685273
----------------------------------------------
------------------------------------------------
Sample time: 1.68331
----------------------------------------------
------------------------------------------------
Sample time: 1.691673
----------------------------------------------
------------------------------------------------
Sample time: 1.686131
----------------------------------------------
------------------------------------------------
Sample time: 1.681914
----------------------------------------------
------------------------------------------------
Sample time: 1.694297
----------------------------------------------
------------------------------------------------
Sample time: 1.690741
----------------------------------------------
------------------------------------------------
Sample time: 1.690769
----------------------------------------------
------------------------------------------------
Sample time: 1.682461
----------------------------------------------
[engine] transferToInterpreter at
Hash#[]((core):1) <split-7dff2c92>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-a6635ed>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-7d82ebaa>
block in Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:112) <split-2d98109c>
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:298)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-18ea1bc5>
Rubykon::GroupTracker#group(lib/rubykon/group_tracker.rb:32) <split-2f302a70>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-7d82ebaa>
block in Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:112) <split-2d98109c>
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-7dff2c92>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-a6635ed>
Rubykon::GroupTracker#group_of(lib/rubykon/group_tracker.rb:28) <split-7d82ebaa>
block in Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:112) <split-2d98109c>
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.LookupPackedEntryNodeGen.executePackedLookup(LookupPackedEntryNodeGen.java:46)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:177)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-2ead80cd>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-3e86acec>
block in Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:27) <split-57a2ed35>
block in Hash#select(resource:/truffleruby/core/hash.rb:308) <split-12ffd1de>
Hash#each_pair((core):1) <split-3d278b4d>
Hash#select(resource:/truffleruby/core/hash.rb:307) <split-4096aa05>
Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:26)
block in Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:106) <split-4492eede>
Array#each((core):1) <split-cbc8d0f>
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:298)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:448)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:36)
...
[engine] transferToInterpreter at
Hash#[]((core):1) <split-2ead80cd>
Rubykon::GroupTracker#group_id_of(lib/rubykon/group_tracker.rb:24) <split-3e86acec>
block in Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:27) <split-57a2ed35>
block in Hash#select(resource:/truffleruby/core/hash.rb:308) <split-12ffd1de>
Hash#each_pair((core):1) <split-3d278b4d>
Hash#select(resource:/truffleruby/core/hash.rb:307) <split-4096aa05>
Rubykon::Group#gain_liberties_from_capture_of(lib/rubykon/group.rb:26)
block in Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:106) <split-4492eede>
Array#each((core):1) <split-cbc8d0f>
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:55)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:80)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.CallDispatchHeadNode.call(CallDispatchHeadNode.java:64)
org.truffleruby.core.hash.HashNode.hash(HashNode.java:75)
org.truffleruby.core.hash.HashNode.hash(HashNode.java:40)
org.truffleruby.core.hash.HashNodes$HashLookupOrExecuteDefaultNode.getPackedArray(HashNodes.java:176)
org.truffleruby.core.hash.HashNodesFactory$HashLookupOrExecuteDefaultNodeGen.executeGet(HashNodesFactory.java:288)
org.truffleruby.core.hash.HashNodes$GetIndexNode.get(HashNodes.java:207)
org.truffleruby.core.hash.HashNodesFactory$GetIndexNodeFactory$GetIndexNodeGen.execute(HashNodesFactory.java:449)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
...
------------------------------------------------
Sample time: 18.321908
----------------------------------------------
------------------------------------------------
Sample time: 1.705266
----------------------------------------------
------------------------------------------------
Sample time: 1.696459
----------------------------------------------
------------------------------------------------
Sample time: 1.7221600000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.710751
----------------------------------------------
------------------------------------------------
Sample time: 1.698644
----------------------------------------------
------------------------------------------------
Sample time: 1.700609
----------------------------------------------
------------------------------------------------
Sample time: 1.6823830000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.691669
----------------------------------------------
------------------------------------------------
Sample time: 1.708655
----------------------------------------------
------------------------------------------------
Sample time: 1.691059
----------------------------------------------
------------------------------------------------
Sample time: 1.686641
----------------------------------------------
------------------------------------------------
Sample time: 1.6803460000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.6851150000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.688634
----------------------------------------------
------------------------------------------------
Sample time: 1.689262
----------------------------------------------
------------------------------------------------
Sample time: 1.689126
----------------------------------------------
------------------------------------------------
Sample time: 1.686814
----------------------------------------------
------------------------------------------------
Sample time: 1.678663
----------------------------------------------
------------------------------------------------
Sample time: 1.680973
----------------------------------------------
------------------------------------------------
Sample time: 1.6949040000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.687938
----------------------------------------------
------------------------------------------------
Sample time: 1.674293
----------------------------------------------
------------------------------------------------
Sample time: 1.696882
----------------------------------------------
------------------------------------------------
Sample time: 1.67229
----------------------------------------------
------------------------------------------------
Sample time: 1.693574
----------------------------------------------
------------------------------------------------
Sample time: 1.6843780000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.686764
----------------------------------------------
------------------------------------------------
Sample time: 1.712828
----------------------------------------------
------------------------------------------------
Sample time: 1.703019
----------------------------------------------
------------------------------------------------
Sample time: 1.679868
----------------------------------------------
------------------------------------------------
Sample time: 1.687467
----------------------------------------------
------------------------------------------------
Sample time: 1.680978
----------------------------------------------
------------------------------------------------
Sample time: 1.694635
----------------------------------------------
------------------------------------------------
Sample time: 1.699798
----------------------------------------------
------------------------------------------------
Sample time: 1.681658
----------------------------------------------
------------------------------------------------
Sample time: 1.6812520000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.679021
----------------------------------------------
------------------------------------------------
Sample time: 1.684721
----------------------------------------------
------------------------------------------------
Sample time: 1.69642
----------------------------------------------
------------------------------------------------
Sample time: 1.686203
----------------------------------------------
------------------------------------------------
Sample time: 1.6853989999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6839490000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.683547
----------------------------------------------
------------------------------------------------
Sample time: 1.674447
----------------------------------------------
------------------------------------------------
Sample time: 1.689751
----------------------------------------------
------------------------------------------------
Sample time: 1.677474
----------------------------------------------
------------------------------------------------
Sample time: 1.6904219999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6758220000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.6864949999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.674501
----------------------------------------------
------------------------------------------------
Sample time: 1.666242
----------------------------------------------
------------------------------------------------
Sample time: 1.679636
----------------------------------------------
------------------------------------------------
Sample time: 1.692615
----------------------------------------------
------------------------------------------------
Sample time: 1.685206
----------------------------------------------
------------------------------------------------
Sample time: 1.696764
----------------------------------------------
------------------------------------------------
Sample time: 1.676561
----------------------------------------------
------------------------------------------------
Sample time: 1.6817389999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.691503
----------------------------------------------
------------------------------------------------
Sample time: 1.70645
----------------------------------------------
------------------------------------------------
Sample time: 1.679887
----------------------------------------------
------------------------------------------------
Sample time: 1.68674
----------------------------------------------
------------------------------------------------
Sample time: 1.681033
----------------------------------------------
------------------------------------------------
Sample time: 1.68256
----------------------------------------------
------------------------------------------------
Sample time: 1.691739
----------------------------------------------
------------------------------------------------
Sample time: 1.686297
----------------------------------------------
------------------------------------------------
Sample time: 1.6934719999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6879
----------------------------------------------
------------------------------------------------
Sample time: 1.700889
----------------------------------------------
------------------------------------------------
Sample time: 1.701314
----------------------------------------------
------------------------------------------------
Sample time: 1.704887
----------------------------------------------
------------------------------------------------
Sample time: 1.684314
----------------------------------------------
------------------------------------------------
Sample time: 1.686297
----------------------------------------------
------------------------------------------------
Sample time: 1.696027
----------------------------------------------
------------------------------------------------
Sample time: 1.699111
----------------------------------------------
------------------------------------------------
Sample time: 1.69242
----------------------------------------------
------------------------------------------------
Sample time: 1.684569
----------------------------------------------
------------------------------------------------
Sample time: 1.692342
----------------------------------------------
------------------------------------------------
Sample time: 1.685705
----------------------------------------------
------------------------------------------------
Sample time: 1.683583
----------------------------------------------
------------------------------------------------
Sample time: 1.683576
----------------------------------------------
------------------------------------------------
Sample time: 1.691975
----------------------------------------------
------------------------------------------------
Sample time: 1.688067
----------------------------------------------
------------------------------------------------
Sample time: 1.688626
----------------------------------------------
------------------------------------------------
Sample time: 1.685232
----------------------------------------------
------------------------------------------------
Sample time: 1.695825
----------------------------------------------
------------------------------------------------
Sample time: 1.718969
----------------------------------------------
------------------------------------------------
Sample time: 1.6941030000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.674407
----------------------------------------------
------------------------------------------------
Sample time: 1.6786780000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.6835140000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.692962
----------------------------------------------
------------------------------------------------
Sample time: 1.701559
----------------------------------------------
------------------------------------------------
Sample time: 1.693375
----------------------------------------------
------------------------------------------------
Sample time: 1.696868
----------------------------------------------
------------------------------------------------
Sample time: 1.688316
----------------------------------------------
------------------------------------------------
Sample time: 1.700511
----------------------------------------------
------------------------------------------------
Sample time: 1.694032
----------------------------------------------
------------------------------------------------
Sample time: 1.690167
----------------------------------------------
------------------------------------------------
Sample time: 1.694292
----------------------------------------------
------------------------------------------------
Sample time: 1.703883
----------------------------------------------
------------------------------------------------
Sample time: 1.6997689999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.697673
----------------------------------------------
------------------------------------------------
Sample time: 1.6878790000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.699681
----------------------------------------------
------------------------------------------------
Sample time: 1.687447
----------------------------------------------
------------------------------------------------
Sample time: 1.684183
----------------------------------------------
------------------------------------------------
Sample time: 1.6881300000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.679887
----------------------------------------------
------------------------------------------------
Sample time: 1.702772
----------------------------------------------
------------------------------------------------
Sample time: 1.687076
----------------------------------------------
------------------------------------------------
Sample time: 1.676267
----------------------------------------------
------------------------------------------------
Sample time: 1.69573
----------------------------------------------
------------------------------------------------
Sample time: 1.679667
----------------------------------------------
------------------------------------------------
Sample time: 1.682849
----------------------------------------------
------------------------------------------------
Sample time: 1.69288
----------------------------------------------
------------------------------------------------
Sample time: 1.681359
----------------------------------------------
------------------------------------------------
Sample time: 1.684343
----------------------------------------------
------------------------------------------------
Sample time: 1.700731
----------------------------------------------
------------------------------------------------
Sample time: 1.703386
----------------------------------------------
------------------------------------------------
Sample time: 1.6947429999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6954690000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.68373
----------------------------------------------
------------------------------------------------
Sample time: 1.70148
----------------------------------------------
------------------------------------------------
Sample time: 1.6967889999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.696588
----------------------------------------------
------------------------------------------------
Sample time: 1.682569
----------------------------------------------
------------------------------------------------
Sample time: 1.696441
----------------------------------------------
------------------------------------------------
Sample time: 1.706443
----------------------------------------------
------------------------------------------------
Sample time: 1.698312
----------------------------------------------
------------------------------------------------
Sample time: 1.707012
----------------------------------------------
------------------------------------------------
Sample time: 1.6747130000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.680693
----------------------------------------------
------------------------------------------------
Sample time: 1.6840860000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.696101
----------------------------------------------
------------------------------------------------
Sample time: 1.684711
----------------------------------------------
------------------------------------------------
Sample time: 1.6745320000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.686682
----------------------------------------------
------------------------------------------------
Sample time: 1.689754
----------------------------------------------
------------------------------------------------
Sample time: 1.690442
----------------------------------------------
------------------------------------------------
Sample time: 1.710023
----------------------------------------------
------------------------------------------------
Sample time: 1.7099739999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.707615
----------------------------------------------
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-3093f75f>
Integer#times(resource:/truffleruby/core/integer.rb:134) <opt> <split-65482336>
MCTS::MCTS#start(lib/mcts/mcts.rb:6) <split-2fea3289>
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
------------------------------------------------
Sample time: 17.994765
----------------------------------------------
------------------------------------------------
Sample time: 1.684309
----------------------------------------------
------------------------------------------------
Sample time: 1.697387
----------------------------------------------
------------------------------------------------
Sample time: 1.706929
----------------------------------------------
------------------------------------------------
Sample time: 1.6884860000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.703379
----------------------------------------------
------------------------------------------------
Sample time: 1.682941
----------------------------------------------
------------------------------------------------
Sample time: 1.6952530000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.682074
----------------------------------------------
------------------------------------------------
Sample time: 1.694278
----------------------------------------------
------------------------------------------------
Sample time: 1.682055
----------------------------------------------
------------------------------------------------
Sample time: 1.677277
----------------------------------------------
------------------------------------------------
Sample time: 1.6776550000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.687633
----------------------------------------------
------------------------------------------------
Sample time: 1.6837010000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.6752479999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.6815380000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.690227
----------------------------------------------
------------------------------------------------
Sample time: 1.699037
----------------------------------------------
------------------------------------------------
Sample time: 1.69496
----------------------------------------------
------------------------------------------------
Sample time: 1.706647
----------------------------------------------
------------------------------------------------
Sample time: 1.679265
----------------------------------------------
------------------------------------------------
Sample time: 1.6852209999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.685149
----------------------------------------------
------------------------------------------------
Sample time: 1.694653
----------------------------------------------
------------------------------------------------
Sample time: 1.691019
----------------------------------------------
------------------------------------------------
Sample time: 1.6893980000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.685251
----------------------------------------------
------------------------------------------------
Sample time: 1.685589
----------------------------------------------
------------------------------------------------
Sample time: 1.689656
----------------------------------------------
------------------------------------------------
Sample time: 1.679671
----------------------------------------------
------------------------------------------------
Sample time: 1.689975
----------------------------------------------
------------------------------------------------
Sample time: 1.6879849999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.690582
----------------------------------------------
------------------------------------------------
Sample time: 1.684469
----------------------------------------------
------------------------------------------------
Sample time: 1.697229
----------------------------------------------
------------------------------------------------
Sample time: 1.687392
----------------------------------------------
------------------------------------------------
Sample time: 1.686741
----------------------------------------------
------------------------------------------------
Sample time: 1.677663
----------------------------------------------
------------------------------------------------
Sample time: 1.6862810000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.691009
----------------------------------------------
------------------------------------------------
Sample time: 1.701016
----------------------------------------------
------------------------------------------------
Sample time: 1.677568
----------------------------------------------
------------------------------------------------
Sample time: 1.678837
----------------------------------------------
------------------------------------------------
Sample time: 1.686131
----------------------------------------------
------------------------------------------------
Sample time: 1.695478
----------------------------------------------
------------------------------------------------
Sample time: 1.707039
----------------------------------------------
------------------------------------------------
Sample time: 1.6849349999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.689978
----------------------------------------------
------------------------------------------------
Sample time: 1.676907
----------------------------------------------
------------------------------------------------
Sample time: 1.673891
----------------------------------------------
------------------------------------------------
Sample time: 1.687714
----------------------------------------------
------------------------------------------------
Sample time: 1.677963
----------------------------------------------
------------------------------------------------
Sample time: 1.687557
----------------------------------------------
------------------------------------------------
Sample time: 1.67721
----------------------------------------------
------------------------------------------------
Sample time: 1.672743
----------------------------------------------
------------------------------------------------
Sample time: 1.688884
----------------------------------------------
------------------------------------------------
Sample time: 1.692905
----------------------------------------------
------------------------------------------------
Sample time: 1.6775120000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.709581
----------------------------------------------
------------------------------------------------
Sample time: 1.689959
----------------------------------------------
------------------------------------------------
Sample time: 1.676957
----------------------------------------------
------------------------------------------------
Sample time: 1.690838
----------------------------------------------
------------------------------------------------
Sample time: 1.682213
----------------------------------------------
------------------------------------------------
Sample time: 1.690735
----------------------------------------------
------------------------------------------------
Sample time: 1.683723
----------------------------------------------
------------------------------------------------
Sample time: 1.677908
----------------------------------------------
------------------------------------------------
Sample time: 1.705092
----------------------------------------------
------------------------------------------------
Sample time: 1.696584
----------------------------------------------
------------------------------------------------
Sample time: 1.683699
----------------------------------------------
------------------------------------------------
Sample time: 1.6861
----------------------------------------------
------------------------------------------------
Sample time: 1.675718
----------------------------------------------
------------------------------------------------
Sample time: 1.675522
----------------------------------------------
------------------------------------------------
Sample time: 1.687986
----------------------------------------------
------------------------------------------------
Sample time: 1.684676
----------------------------------------------
------------------------------------------------
Sample time: 1.679679
----------------------------------------------
------------------------------------------------
Sample time: 1.671065
----------------------------------------------
------------------------------------------------
Sample time: 1.709748
----------------------------------------------
------------------------------------------------
Sample time: 1.697401
----------------------------------------------
------------------------------------------------
Sample time: 1.681922
----------------------------------------------
------------------------------------------------
Sample time: 1.689825
----------------------------------------------
------------------------------------------------
Sample time: 1.698852
----------------------------------------------
------------------------------------------------
Sample time: 1.677825
----------------------------------------------
------------------------------------------------
Sample time: 1.6850019999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.688589
----------------------------------------------
------------------------------------------------
Sample time: 1.680625
----------------------------------------------
------------------------------------------------
Sample time: 1.679127
----------------------------------------------
------------------------------------------------
Sample time: 1.6830090000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.676199
----------------------------------------------
------------------------------------------------
Sample time: 1.695115
----------------------------------------------
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||
------------------------------------------------
Sample time: 1.6842640000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.694369
----------------------------------------------
------------------------------------------------
Sample time: 1.681463
----------------------------------------------
------------------------------------------------
Sample time: 1.675618
----------------------------------------------
------------------------------------------------
Sample time: 1.691455
----------------------------------------------
------------------------------------------------
Sample time: 1.685051
----------------------------------------------
------------------------------------------------
Sample time: 1.6840030000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.699949
----------------------------------------------
------------------------------------------------
Sample time: 1.684378
----------------------------------------------
------------------------------------------------
Sample time: 1.690653
----------------------------------------------
------------------------------------------------
Sample time: 1.697806
----------------------------------------------
------------------------------------------------
Sample time: 1.683296
----------------------------------------------
------------------------------------------------
Sample time: 1.6819250000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.679473
----------------------------------------------
------------------------------------------------
Sample time: 1.680527
----------------------------------------------
------------------------------------------------
Sample time: 1.687813
----------------------------------------------
------------------------------------------------
Sample time: 1.683243
----------------------------------------------
------------------------------------------------
Sample time: 1.6732960000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.6653229999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.669607
----------------------------------------------
------------------------------------------------
Sample time: 1.672651
----------------------------------------------
------------------------------------------------
Sample time: 1.6801409999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6781160000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.675188
----------------------------------------------
------------------------------------------------
Sample time: 1.688728
----------------------------------------------
------------------------------------------------
Sample time: 1.66886
----------------------------------------------
------------------------------------------------
Sample time: 1.677983
----------------------------------------------
------------------------------------------------
Sample time: 1.6888459999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.682468
----------------------------------------------
------------------------------------------------
Sample time: 1.680762
----------------------------------------------
------------------------------------------------
Sample time: 1.682634
----------------------------------------------
------------------------------------------------
Sample time: 1.676855
----------------------------------------------
------------------------------------------------
Sample time: 1.693056
----------------------------------------------
------------------------------------------------
Sample time: 1.67702
----------------------------------------------
------------------------------------------------
Sample time: 1.688132
----------------------------------------------
------------------------------------------------
Sample time: 1.686762
----------------------------------------------
------------------------------------------------
Sample time: 1.67047
----------------------------------------------
------------------------------------------------
Sample time: 1.693579
----------------------------------------------
------------------------------------------------
Sample time: 1.6861329999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.694124
----------------------------------------------
------------------------------------------------
Sample time: 1.676347
----------------------------------------------
------------------------------------------------
Sample time: 1.688053
----------------------------------------------
------------------------------------------------
Sample time: 1.679958
----------------------------------------------
------------------------------------------------
Sample time: 1.678393
----------------------------------------------
------------------------------------------------
Sample time: 1.69102
----------------------------------------------
------------------------------------------------
Sample time: 1.682793
----------------------------------------------
------------------------------------------------
Sample time: 1.679969
----------------------------------------------
------------------------------------------------
Sample time: 1.685902
----------------------------------------------
------------------------------------------------
Sample time: 1.687046
----------------------------------------------
------------------------------------------------
Sample time: 1.683031
----------------------------------------------
------------------------------------------------
Sample time: 1.670806
----------------------------------------------
------------------------------------------------
Sample time: 1.676889
----------------------------------------------
------------------------------------------------
Sample time: 1.679323
----------------------------------------------
------------------------------------------------
Sample time: 1.686931
----------------------------------------------
------------------------------------------------
Sample time: 1.685302
----------------------------------------------
------------------------------------------------
Sample time: 1.690986
----------------------------------------------
------------------------------------------------
Sample time: 1.68469
----------------------------------------------
------------------------------------------------
Sample time: 1.6730200000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.677144
----------------------------------------------
------------------------------------------------
Sample time: 1.697588
----------------------------------------------
------------------------------------------------
Sample time: 1.718018
----------------------------------------------
------------------------------------------------
Sample time: 1.688105
----------------------------------------------
------------------------------------------------
Sample time: 1.675133
----------------------------------------------
------------------------------------------------
Sample time: 1.676164
----------------------------------------------
------------------------------------------------
Sample time: 1.679743
----------------------------------------------
------------------------------------------------
Sample time: 1.685803
----------------------------------------------
------------------------------------------------
Sample time: 1.68769
----------------------------------------------
------------------------------------------------
Sample time: 1.673829
----------------------------------------------
------------------------------------------------
Sample time: 1.677734
----------------------------------------------
------------------------------------------------
Sample time: 1.67275
----------------------------------------------
------------------------------------------------
Sample time: 1.6938
----------------------------------------------
------------------------------------------------
Sample time: 1.678555
----------------------------------------------
------------------------------------------------
Sample time: 1.681468
----------------------------------------------
------------------------------------------------
Sample time: 1.690556
----------------------------------------------
------------------------------------------------
Sample time: 1.672917
----------------------------------------------
------------------------------------------------
Sample time: 1.689361
----------------------------------------------
------------------------------------------------
Sample time: 1.685819
----------------------------------------------
------------------------------------------------
Sample time: 1.684731
----------------------------------------------
------------------------------------------------
Sample time: 1.6866379999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.683189
----------------------------------------------
------------------------------------------------
Sample time: 1.686577
----------------------------------------------
------------------------------------------------
Sample time: 1.690728
----------------------------------------------
------------------------------------------------
Sample time: 1.689034
----------------------------------------------
------------------------------------------------
Sample time: 1.6669429999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.674409
----------------------------------------------
------------------------------------------------
Sample time: 1.6898309999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.6677680000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.688447
----------------------------------------------
------------------------------------------------
Sample time: 1.675619
----------------------------------------------
------------------------------------------------
Sample time: 1.6791070000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.684049
----------------------------------------------
------------------------------------------------
Sample time: 1.6916799999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.7040220000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.705987
----------------------------------------------
------------------------------------------------
Sample time: 1.71381
----------------------------------------------
------------------------------------------------
Sample time: 1.696979
----------------------------------------------
[engine] transferToInterpreter at
Hash#map((core):1) <split-2cc03cd1>
Rubykon::GroupTracker#neighboring_groups_of(lib/rubykon/group_tracker.rb:111)
Rubykon::GroupTracker#regain_liberties_from_capture(lib/rubykon/group_tracker.rb:105) <split-4e17913b>
Rubykon::GroupTracker#remove(lib/rubykon/group_tracker.rb:86) <split-149c3204>
block in Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:80) <split-64f16277>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-497aec8c>
Rubykon::GroupTracker#remove_caught_groups(lib/rubykon/group_tracker.rb:79) <split-3b9632d1>
Rubykon::GroupTracker#take_liberties_of_enemies(lib/rubykon/group_tracker.rb:61) <split-71d8cfe7>
Rubykon::GroupTracker#assign(lib/rubykon/group_tracker.rb:16) <opt> <split-1e530163>
Rubykon::Game#set_move(lib/rubykon/game.rb:101) <split-14d8444b>
Rubykon::Game#set_valid_move(lib/rubykon/game.rb:55) <opt> <split-71466383>
Rubykon::GameState#set_move(lib/rubykon/game_state.rb:25) <opt> <split-46d63dbb>
MCTS::Playout#playout(lib/mcts/playout.rb:18) <opt>
MCTS::Playout#play(lib/mcts/playout.rb:12) <opt>
MCTS::Node#rollout(lib/mcts/node.rb:44) <opt>
MCTS::Root#explore_tree(lib/mcts/root.rb:26) <split-22fbea95>
block in MCTS::MCTS#start(lib/mcts/mcts.rb:7) <opt> <split-3093f75f>
Integer#times(resource:/truffleruby/core/integer.rb:134) <opt> <split-65482336>
MCTS::MCTS#start(lib/mcts/mcts.rb:6) <split-2fea3289>
block (2 levels) in Object#<main>(benchmark/mcts_avg.rb:11) <split-6db27836>
...
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.array.ArrayBuilderNode$StartNode.start(ArrayBuilderNode.java:174)
org.truffleruby.core.array.ArrayBuilderNode$ArrayBuilderProxyNode.start(ArrayBuilderNode.java:74)
org.truffleruby.core.hash.HashNodes$MapNode.mapBuckets(HashNodes.java:695)
org.truffleruby.core.hash.HashNodesFactory$MapNodeFactory$MapNodeGen.execute(HashNodesFactory.java:1946)
org.truffleruby.builtins.EnumeratorSizeNode.execute(EnumeratorSizeNode.java:56)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.inlinedPERoot(OptimizedCallTarget.java:414)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:421)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:96)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:105)
org.truffleruby.language.control.FrameOnStackNode.execute(FrameOnStackNode.java:37)
...
------------------------------------------------
Sample time: 17.845152
----------------------------------------------
------------------------------------------------
Sample time: 1.693458
----------------------------------------------
------------------------------------------------
Sample time: 1.6879309999999998
----------------------------------------------
------------------------------------------------
Sample time: 1.6774390000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.687497
----------------------------------------------
------------------------------------------------
Sample time: 1.67481
----------------------------------------------
------------------------------------------------
Sample time: 1.6896010000000001
----------------------------------------------
------------------------------------------------
Sample time: 1.683034
----------------------------------------------
------------------------------------------------
Sample time: 1.6890939999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.687995
----------------------------------------------
------------------------------------------------
Sample time: 1.6820599999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.683055
----------------------------------------------
------------------------------------------------
Sample time: 1.690118
----------------------------------------------
------------------------------------------------
Sample time: 1.69988
----------------------------------------------
------------------------------------------------
Sample time: 1.687475
----------------------------------------------
------------------------------------------------
Sample time: 1.6720899999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.665404
----------------------------------------------
------------------------------------------------
Sample time: 1.6998419999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.693419
----------------------------------------------
------------------------------------------------
Sample time: 1.693123
----------------------------------------------
------------------------------------------------
Sample time: 1.675701
----------------------------------------------
------------------------------------------------
Sample time: 1.6840899999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.691442
----------------------------------------------
------------------------------------------------
Sample time: 1.679648
----------------------------------------------
------------------------------------------------
Sample time: 1.684033
----------------------------------------------
------------------------------------------------
Sample time: 1.6838920000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.690518
----------------------------------------------
------------------------------------------------
Sample time: 1.699387
----------------------------------------------
------------------------------------------------
Sample time: 1.696072
----------------------------------------------
------------------------------------------------
Sample time: 1.7018469999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.692871
----------------------------------------------
------------------------------------------------
Sample time: 1.683453
----------------------------------------------
------------------------------------------------
Sample time: 1.701187
----------------------------------------------
------------------------------------------------
Sample time: 1.678632
----------------------------------------------
------------------------------------------------
Sample time: 1.694339
----------------------------------------------
------------------------------------------------
Sample time: 1.691437
----------------------------------------------
------------------------------------------------
Sample time: 1.706049
----------------------------------------------
------------------------------------------------
Sample time: 1.685834
----------------------------------------------
------------------------------------------------
Sample time: 1.693041
----------------------------------------------
------------------------------------------------
Sample time: 1.6984029999999999
----------------------------------------------
------------------------------------------------
Sample time: 1.698069
----------------------------------------------
------------------------------------------------
Sample time: 1.737444
----------------------------------------------
------------------------------------------------
Sample time: 1.732836
----------------------------------------------
------------------------------------------------
Sample time: 1.698497
----------------------------------------------
------------------------------------------------
Sample time: 1.700224
----------------------------------------------
------------------------------------------------
Sample time: 1.689593
----------------------------------------------
------------------------------------------------
Sample time: 1.694133
----------------------------------------------
------------------------------------------------
Sample time: 1.715067
----------------------------------------------
------------------------------------------------
Sample time: 1.6785260000000002
----------------------------------------------
------------------------------------------------
Sample time: 1.684038
----------------------------------------------
------------------------------------------------
Sample time: 1.697468
----------------------------------------------
------------------------------------------------
Sample time: 1.705089
----------------------------------------------
------------------------------------------------
Sample time: 1.699817
----------------------------------------------
------------------------------------------------
Sample time: 1.723228
----------------------------------------------
------------------------------------------------
Sample time: 1.723062
----------------------------------------------
------------------------------------------------
Sample time: 1.684581
----------------------------------------------
------------------------------------------------
Sample time: 1.725177
----------------------------------------------
------------------------------------------------
Sample time: 1.687317
----------------------------------------------
------------------------------------------------
Sample time: 1.671331
----------------------------------------------
------------------------------------------------
Sample time: 1.683873
----------------------------------------------
------------------------------------------------
Sample time: 1.689962
----------------------------------------------
------------------------------------------------
Sample time: 1.709319
----------------------------------------------
------------------------------------------------
Sample time: 1.69255
----------------------------------------------
------------------------------------------------
Sample time: 1.687807
----------------------------------------------
------------------------------------------------
Sample time: 1.689875
----------------------------------------------
------------------------------------------------
Sample time: 1.681226
----------------------------------------------
------------------------------------------------
Sample time: 1.706829
----------------------------------------------
------------------------------------------------
Sample time: 1.711255
----------------------------------------------
------------------------------------------------
Sample time: 1.698225
----------------------------------------------
------------------------------------------------
Sample time: 1.729264
----------------------------------------------
------------------------------------------------
Sample time: 1.720861
----------------------------------------------
------------------------------------------------
Sample time: 1.683537
----------------------------------------------
------------------------------------------------
Sample time: 1.672044
----------------------------------------------
Finished measuring the run time for 19x19 1_000 iterations
Benchmarking finished, here are your reports...
Warm up results:
--------------------------------------------------------------------------------
[280.204559, 91.741652, 9.684221, 27.057884, 19.766523, 2.290701, 1.709018, 1.696002, 1.695919, 1.691995, 1.684291, 1.706919, 1.6929539999999998, 1.699843, 1.711204, 1.699248, 1.69538, 1.672741, 1.686477, 1.702402, 1.684401, 1.702912, 1.701248, 1.685635, 1.69251, 1.685548, 1.692057, 1.69237, 1.698536, 1.683141, 1.693732, 1.692669, 1.7194180000000001, 1.702509, 1.694437, 14.545068, 1.696019, 1.687554, 1.692664, 1.670594, 1.699127, 1.6943030000000001, 1.6898499999999999, 1.680997, 1.680771, 1.670761, 1.687636, 1.675111, 14.748949, 1.677385, 1.680628, 1.680703, 1.714392, 1.6893829999999999, 1.6917900000000001, 1.690188, 1.691659, 1.705802, 1.713079, 1.69177, 1.7037520000000002, 1.680969, 1.687945, 1.69821, 1.687914, 1.693529, 1.685273, 1.68331, 1.691673, 1.686131, 1.681914, 1.694297, 1.690741, 1.690769, 1.682461, 18.321908, 1.705266, 1.696459, 1.7221600000000001, 1.710751, 1.698644, 1.700609, 1.6823830000000002, 1.691669, 1.708655, 1.691059, 1.686641, 1.6803460000000001, 1.6851150000000001, 1.688634, 1.689262, 1.689126, 1.686814, 1.678663, 1.680973, 1.6949040000000002, 1.687938, 1.674293, 1.696882, 1.67229, 1.693574, 1.6843780000000002, 1.686764, 1.712828, 1.703019, 1.679868, 1.687467, 1.680978, 1.694635, 1.699798, 1.681658, 1.6812520000000002, 1.679021, 1.684721, 1.69642, 1.686203, 1.6853989999999999, 1.6839490000000001, 1.683547, 1.674447, 1.689751, 1.677474, 1.6904219999999999, 1.6758220000000001, 1.6864949999999999, 1.674501, 1.666242, 1.679636, 1.692615, 1.685206, 1.696764, 1.676561, 1.6817389999999999, 1.691503, 1.70645, 1.679887, 1.68674, 1.681033, 1.68256, 1.691739, 1.686297, 1.6934719999999999, 1.6879, 1.700889, 1.701314, 1.704887, 1.684314, 1.686297, 1.696027, 1.699111, 1.69242, 1.684569, 1.692342, 1.685705, 1.683583, 1.683576, 1.691975, 1.688067, 1.688626, 1.685232, 1.695825, 1.718969, 1.6941030000000001, 1.674407, 1.6786780000000001, 1.6835140000000002, 1.692962, 1.701559, 1.693375, 1.696868, 1.688316, 1.700511, 1.694032, 1.690167, 1.694292, 1.703883, 1.6997689999999999, 1.697673, 1.6878790000000001, 1.699681, 1.687447, 1.684183, 1.6881300000000001, 1.679887, 1.702772, 1.687076, 1.676267, 1.69573, 1.679667, 1.682849, 1.69288, 1.681359, 1.684343, 1.700731, 1.703386, 1.6947429999999999, 1.6954690000000001, 1.68373, 1.70148, 1.6967889999999999, 1.696588, 1.682569, 1.696441, 1.706443, 1.698312, 1.707012, 1.6747130000000001, 1.680693, 1.6840860000000002, 1.696101, 1.684711, 1.6745320000000001, 1.686682, 1.689754, 1.690442, 1.710023, 1.7099739999999999, 1.707615, 17.994765, 1.684309, 1.697387, 1.706929, 1.6884860000000002, 1.703379, 1.682941, 1.6952530000000001, 1.682074, 1.694278, 1.682055, 1.677277, 1.6776550000000001, 1.687633, 1.6837010000000001, 1.6752479999999998, 1.6815380000000002, 1.690227, 1.699037, 1.69496, 1.706647, 1.679265, 1.6852209999999999, 1.685149, 1.694653, 1.691019, 1.6893980000000002, 1.685251, 1.685589, 1.689656, 1.679671, 1.689975, 1.6879849999999998, 1.690582, 1.684469, 1.697229, 1.687392, 1.686741, 1.677663, 1.6862810000000001, 1.691009, 1.701016, 1.677568, 1.678837, 1.686131, 1.695478, 1.707039, 1.6849349999999998, 1.689978, 1.676907, 1.673891, 1.687714, 1.677963, 1.687557, 1.67721, 1.672743, 1.688884, 1.692905, 1.6775120000000001, 1.709581, 1.689959, 1.676957, 1.690838, 1.682213, 1.690735, 1.683723, 1.677908, 1.705092, 1.696584, 1.683699, 1.6861, 1.675718, 1.675522, 1.687986, 1.684676, 1.679679, 1.671065, 1.709748, 1.697401, 1.681922, 1.689825, 1.698852, 1.677825, 1.6850019999999999, 1.688589, 1.680625, 1.679127, 1.6830090000000002, 1.676199, 1.695115]
[engine] transferToInterpreter at
Float#+((core):1)
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449)
Benchmark::Avg::Job#extract_times(lib/benchmark/avg/job.rb:91)
Benchmark::Avg::Job#report(lib/benchmark/avg/job.rb:72)
Benchmark::Avg::Job#warmup_report(lib/benchmark/avg/job.rb:27)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:34) <split-ec39713>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-3d6ba036>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:34)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.numeric.FloatNodesFactory$AddNodeFactory$AddNodeGen.execute(FloatNodesFactory.java:216)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:90)
org.truffleruby.language.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:136)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.core.array.ArrayNodes$InjectNode.injectSymbolHelper(ArrayNodes.java:1264)
org.truffleruby.core.array.ArrayNodes$InjectNode.injectSymbolNoInitial(ArrayNodes.java:1253)
...
[engine] transferToInterpreter at
Float#+((core):1)
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449)
Benchmark::Avg::Job#extract_times(lib/benchmark/avg/job.rb:91)
Benchmark::Avg::Job#report(lib/benchmark/avg/job.rb:72)
Benchmark::Avg::Job#warmup_report(lib/benchmark/avg/job.rb:27)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:34) <split-ec39713>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-3d6ba036>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:34)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.language.arguments.ProfileArgumentNodeGen.execute(ProfileArgumentNodeGen.java:79)
org.truffleruby.core.numeric.FloatNodesFactory$AddNodeFactory$AddNodeGen.execute(FloatNodesFactory.java:216)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:446)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:90)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.core.array.ArrayNodes$InjectNode.injectSymbolHelper(ArrayNodes.java:1264)
org.truffleruby.core.array.ArrayNodes$InjectNode.injectSymbolNoInitial(ArrayNodes.java:1253)
org.truffleruby.core.array.ArrayNodesFactory$InjectNodeFactory$InjectNodeGen.executeAndSpecialize(ArrayNodesFactory.java:6718)
...
[engine] transferToInterpreter at
Integer#+((core):1)
block in Benchmark::Avg::Job#extract_times(lib/benchmark/avg/job.rb:96) <split-6d3ec117>
Enumerable#inject(resource:/truffleruby/core/enumerable.rb:449) <split-4f007fac>
Benchmark::Avg::Job#extract_times(lib/benchmark/avg/job.rb:95)
Benchmark::Avg::Job#report(lib/benchmark/avg/job.rb:72)
Benchmark::Avg::Job#warmup_report(lib/benchmark/avg/job.rb:27)
block in Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:34) <split-ec39713>
Array#each((core):1)
Benchmark::Avg::BenchmarkSuite#each_job(lib/benchmark/avg/benchmark_suite.rb:55) <split-3d6ba036>
Benchmark::Avg::BenchmarkSuite#run(lib/benchmark/avg/benchmark_suite.rb:34)
Benchmark::Avg#avg(lib/benchmark/avg.rb:9) <split-24b4d544>
<main>(benchmark/mcts_avg.rb:4)
Truffle::Boot.main((core):1)
block in Object#<top (required)>(main_boot_source:1) <split-c2bb2f5>
org.graalvm.polyglot.Value<DynamicObjectBasic>.execute(Unknown)
org.graalvm.truffle/com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:90)
org.truffleruby.core.numeric.IntegerNodesFactory$AddNodeFactory$AddNodeGen.execute(IntegerNodesFactory.java:569)
org.truffleruby.language.arguments.CheckArityNode.execute(CheckArityNode.java:41)
org.truffleruby.language.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:33)
org.truffleruby.language.LazyRubyNode.execute(LazyRubyNode.java:41)
org.truffleruby.language.RubyRootNode.execute(RubyRootNode.java:61)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:505)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:482)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:432)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirectOrInlined(OptimizedCallTarget.java:388)
jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
org.truffleruby.language.dispatch.CachedDispatchNode.call(CachedDispatchNode.java:132)
org.truffleruby.language.dispatch.CachedUnboxedDispatchNode.executeDispatch(CachedUnboxedDispatchNode.java:90)
org.truffleruby.language.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:136)
org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:44)
org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:117)
org.truffleruby.core.inlined.InlinedOperationNode.rewriteAndCallWithBlock(InlinedOperationNode.java:76)
org.truffleruby.core.inlined.InlinedOperationNode.rewriteAndCall(InlinedOperationNode.java:71)
org.truffleruby.core.inlined.InlinedAddNode.fallback(InlinedAddNode.java:49)
org.truffleruby.core.inlined.InlinedAddNodeGen.executeAndSpecialize(InlinedAddNodeGen.java:153)
...
19x19 1_000 iterations 18.48 i/min 3.25 s (avg) (± 517.24%)
Runtime results:
--------------------------------------------------------------------------------
[1.6842640000000002, 1.694369, 1.681463, 1.675618, 1.691455, 1.685051, 1.6840030000000001, 1.699949, 1.684378, 1.690653, 1.697806, 1.683296, 1.6819250000000001, 1.679473, 1.680527, 1.687813, 1.683243, 1.6732960000000001, 1.6653229999999999, 1.669607, 1.672651, 1.6801409999999999, 1.6781160000000002, 1.675188, 1.688728, 1.66886, 1.677983, 1.6888459999999998, 1.682468, 1.680762, 1.682634, 1.676855, 1.693056, 1.67702, 1.688132, 1.686762, 1.67047, 1.693579, 1.6861329999999999, 1.694124, 1.676347, 1.688053, 1.679958, 1.678393, 1.69102, 1.682793, 1.679969, 1.685902, 1.687046, 1.683031, 1.670806, 1.676889, 1.679323, 1.686931, 1.685302, 1.690986, 1.68469, 1.6730200000000002, 1.677144, 1.697588, 1.718018, 1.688105, 1.675133, 1.676164, 1.679743, 1.685803, 1.68769, 1.673829, 1.677734, 1.67275, 1.6938, 1.678555, 1.681468, 1.690556, 1.672917, 1.689361, 1.685819, 1.684731, 1.6866379999999999, 1.683189, 1.686577, 1.690728, 1.689034, 1.6669429999999998, 1.674409, 1.6898309999999999, 1.6677680000000001, 1.688447, 1.675619, 1.6791070000000001, 1.684049, 1.6916799999999999, 1.7040220000000001, 1.705987, 1.71381, 1.696979, 17.845152, 1.693458, 1.6879309999999998, 1.6774390000000001, 1.687497, 1.67481, 1.6896010000000001, 1.683034, 1.6890939999999999, 1.687995, 1.6820599999999999, 1.683055, 1.690118, 1.69988, 1.687475, 1.6720899999999999, 1.665404, 1.6998419999999999, 1.693419, 1.693123, 1.675701, 1.6840899999999999, 1.691442, 1.679648, 1.684033, 1.6838920000000002, 1.690518, 1.699387, 1.696072, 1.7018469999999999, 1.692871, 1.683453, 1.701187, 1.678632, 1.694339, 1.691437, 1.706049, 1.685834, 1.693041, 1.6984029999999999, 1.698069, 1.737444, 1.732836, 1.698497, 1.700224, 1.689593, 1.694133, 1.715067, 1.6785260000000002, 1.684038, 1.697468, 1.705089, 1.699817, 1.723228, 1.723062, 1.684581, 1.725177, 1.687317, 1.671331, 1.683873, 1.689962, 1.709319, 1.69255, 1.687807, 1.689875, 1.681226, 1.706829, 1.711255, 1.698225, 1.729264, 1.720861, 1.683537, 1.672044]
19x19 1_000 iterations 33.64 i/min 1.78 s (avg) (± 69.47%)
--------------------------------------------------------------------------------
tobi@speedy:~/github/rubykon(main)$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment