[MacPorts] #64906: fixing Ruby for PowerPC

MacPorts noreply at macports.org
Sat Apr 16 06:08:36 UTC 2022


#64906: fixing Ruby for PowerPC
-----------------------------+-------------------------------------------
  Reporter:  barracuda156    |      Owner:  kimuraw
      Type:  defect          |     Status:  closed
  Priority:  Normal          |  Milestone:
 Component:  ports           |    Version:  2.7.2
Resolution:  wontfix         |   Keywords:  powerpc, leopard, snowleopard
      Port:  ruby27, ruby30  |
-----------------------------+-------------------------------------------

Comment (by barracuda156):

 Replying to [comment:2 evanmiller]:
 > When I was tinkering with Ruby on PPC, I ran into some issues with
 coroutines. It's possible that's the source of the hangs, but it could be
 something else. Try attaching to the hanging process using Sampler (found
 in Developer > Applications > Performance Tools). If you record a sample
 then you should be able to see where the process CPU time is going and
 maybe get a hint about what's freezing.

 I have done it, but in what way I should export its output?

 Besides, a basic sampling via Activity Monitor gives this:


 {{{
 Analysis of sampling ruby3.1 (pid 31703) every 1 millisecond
 Call graph:
     1807 Thread_362b
       1807 start
         1807 main
           1807 ruby_run_node
             1807 rb_ec_exec_node
               1807 rb_vm_exec
                 1807 vm_exec_core
                   1807 vm_sendish
                     1807 vm_call_cfunc_with_frame
                       1807 rb_require_string
                         1807 require_internal
                           1807 rb_vm_exec
                             1807 vm_exec_core
                               1807 vm_sendish
                                 1807 vm_call_method_each_type
                                   1807 vm_call_cfunc_with_frame
                                     1807 rb_ary_each
                                       1807 rb_yield
                                         1807 vm_yield_with_cref
                                           1807 rb_vm_exec
                                             1807 vm_exec_core
                                               1807 vm_sendish
                                                 1807
 vm_call_method_each_type
                                                   1807
 vm_call_cfunc_with_frame
                                                     1807 rb_ary_each
                                                       1807 rb_yield
                                                         1807
 vm_yield_with_cref
                                                           1807 rb_vm_exec
                                                             1807
 vm_exec_core
                                                               1807
 vm_sendish
                                                                 1807
 vm_call_cfunc_with_frame
                                                                   1807
 rb_ary_collect
                                                                     1807
 rb_yield
                                                                       1807
 vm_yield_with_cref
 1807 rb_vm_exec
 1807 vm_exec_core
 1807 vm_sendish
 1807 vm_call_cfunc_with_frame
 1807 tcp_accept
 1807 rsock_s_accept
 1807 rb_io_maybe_wait_readable
 1807 rb_io_wait
 1807 rb_thread_wait_for_single_fd
 1807 rb_ensure
 1807 select_single
 1807 rb_thread_fd_select
 1807 rb_ensure
 1807 select$DARWIN_EXTSN
 1807 select$DARWIN_EXTSN
     1807 Thread_3703
       1807 timer_pthread_fn
         1807 poll$UNIX2003
           1807 poll$UNIX2003
     1807 Thread_3803
       1807 _pthread_start
         1807 coroutine_trampoline
           1807 fiber_entry
             1807 rb_fiber_start
               1807 fiber_switch
                 1807 fiber_setcontext
                   1807 coroutine_transfer
                     1807 _pthread_cond_wait
                       1807 __semwait_signal
                         1807 __semwait_signal
     1807 Thread_3903
       1807 _pthread_start
         1807 coroutine_trampoline
           1807 fiber_entry
             1807 rb_fiber_start
               1807 fiber_switch
                 1807 fiber_setcontext
                   1807 coroutine_transfer
                     1807 _pthread_cond_wait
                       1807 __semwait_signal
                         1807 __semwait_signal
     1807 Thread_3a03
       1807 _pthread_start
         1807 coroutine_trampoline
           1807 fiber_entry
             1807 rb_fiber_start
               1807 fiber_switch
                 1807 fiber_setcontext
                   1807 coroutine_transfer
                     1807 _pthread_cond_wait
                       1807 __semwait_signal
                         1807 __semwait_signal
     1807 Thread_3b03
       1807 _pthread_start
         1807 coroutine_trampoline
           1807 fiber_entry
             1807 rb_fiber_start
               1807 fiber_switch
                 1807 fiber_setcontext
                   1807 coroutine_transfer
                     1807 _pthread_cond_wait
                       1807 __semwait_signal
                         1807 __semwait_signal
     1807 Thread_3c03
       1807 _pthread_start
         1807 coroutine_trampoline
           1807 fiber_entry
             1807 rb_fiber_start
               1807 fiber_switch
                 1807 fiber_setcontext
                   1807 coroutine_transfer
                     1807 _pthread_cond_wait
                       1807 __semwait_signal
                         1807 __semwait_signal

 Total number in stack (recursive counted multiple, when >=5):
         5       __semwait_signal
         5       _pthread_cond_wait
         5       _pthread_start
         5       coroutine_trampoline
         5       coroutine_transfer
         5       fiber_entry
         5       fiber_setcontext
         5       fiber_switch
         5       rb_fiber_start
         5       rb_vm_exec
         5       vm_call_cfunc_with_frame
         5       vm_exec_core
         5       vm_sendish

 Sort by top of stack, same collapsed (when >= 5):
         __semwait_signal        9035
         poll$UNIX2003        1807
         select$DARWIN_EXTSN        1807
 }}}

 Developer sampler also specifies library, libSystem.B.dylib.

-- 
Ticket URL: <https://trac.macports.org/ticket/64906#comment:18>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list