ruby / ruby/tk

Ruby crashes during `require "tk"` on Mac OS 15

Aperta
#64 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Ruby
Stelle
137
Fork
29
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I am on Mac OS 15.2 M2, using Ruby 3.4.1 which is installed from chruby, and it seems that #33 has reappeared:

irb(main):001> require "tk"
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow should only be instantiated on the main thread!'
*** First throw call stack:
(
        0   CoreFoundation                      0x000000018df12e80 __exceptionPreprocess + 176
        1   libobjc.A.dylib                     0x000000018d9facd8 objc_exception_throw + 88
        2   CoreFoundation                      0x000000018df37534 _CFBundleGetValueForInfoKey + 0
        3   AppKit                              0x0000000191a1ac4c -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 260
        4   AppKit                              0x0000000191a1ab3c -[NSWindow initWithContentRect:styleMask:backing:defer:] + 48
        5   libtk8.6.dylib                      0x0000000127b0bb5c TkMacOSXMakeRealWindowExist + 496
        6   libtk8.6.dylib                      0x0000000127b0b85c TkWmMapWindow + 56
        7   libtk8.6.dylib                      0x0000000127a7cffc MapFrame + 76
        8   libtcl8.6.dylib                     0x000000012784450c TclServiceIdle + 84
        9   libtcl8.6.dylib                     0x0000000127828660 Tcl_DoOneEvent + 296
        10  libtk8.6.dylib                      0x0000000127aff81c TkpInit + 712
        11  libtk8.6.dylib                      0x0000000127a76030 Initialize + 2372
        12  tcltklib.bundle                     0x00000001273b0584 ruby_tk_stubs_init + 12
        13  tcltklib.bundle                     0x00000001273b4a08 ip_init + 852
        14  ruby                                0x0000000104e41aec vm_call_cfunc_with_frame_ + 240
        15  ruby                                0x0000000104e25d64 vm_exec_core + 9248
        16  ruby                                0x0000000104e22430 rb_vm_exec + 492
        17  ruby                                0x0000000104e48398 rb_call0 + 888
        18  ruby                                0x0000000104d1d574 rb_class_new_instance_pass_kw + 64
        19  ruby                                0x0000000104e41aec vm_call_cfunc_with_frame_ + 240
        20  ruby                                0x0000000104e25d64 vm_exec_core + 9248
        21  ruby                                0x0000000104e22430 rb_vm_exec + 492
        22  ruby                                0x0000000104e368c4 vm_invoke_proc + 712
        23  ruby                                0x0000000104df68f0 thread_do_start_proc + 668
        24  ruby                                0x0000000104df5fbc thread_start_func_2 + 796
        25  ruby                                0x0000000104df5b38 nt_start + 248
        26  libsystem_pthread.dylib             0x000000018ddb82e4 _pthread_start + 136
        27  libsystem_pthread.dylib             0x000000018ddb30fc thread_start + 8
)
libc++abi: terminating due to uncaught exception of type NSException
[1]    39903 abort      irb

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo require "tk" in irb su Mac OS 15.2 con Ruby 3.4.1, quindi confronta il comportamento con issue #33. Traccia il percorso di inizializzazione attraverso i frame dello stack di tcltklib.bundle e libtk8.6.dylib; il lavoro è concluso quando il require di tk non termina più Ruby nella configurazione segnalata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
ruby
Ambito
desktop
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.