I am trying to determine what GUI toolkit to use in Julia. I want to avoid pursuing a toolkit which is unstable and prone to crashes forcing me to switch toolkit midstream.
I am interested in using Gtk but I know from the past that it has often not been great on macOS. I get simple toy examples to work fine, but I am uncertain about how stable things will be with more complex GUIs. E.g. I have noticed that Glade UI builder which I installed through Homebrew is prone to crashing very easily.
My worry is that this is not merely a Glade problem but an underlying problem with Gtk, which I will hit as well as I build a more complex solution. Can anyone who has used Gtk on macOS verify whether Gtk works well?
If it doesn’t what is the recommended solution which is most mature and stable?
I am including description of my Glade errors. While not related directly to Julia, it may inform you whether this is a general problem with Gtk on Mac or likely Glade specific.
In the console I get this when a crash happens:
$ GladeUI-Message: 16:16:54.601: Glade needs artwork; a default icon will be used for the following classes: GtkFileChooserNative needs an icon named 'widget-gtk-filechoosernative' GtkApplicationWindow needs an icon named 'widget-gtk-applicationwindow' GThemedIcon needs an icon named 'widget-gtk-themedicon' GFileIcon needs an icon named 'widget-gtk-fileicon' GladeInstantiableGtkBin needs an icon named 'widget-gtk-bin' GladeUI-Message: 16:16:54.633: No DevHelp installed on your system, devhelp feature will be disabled. ** Message: 16:16:55.237: No TLS support in GIO, Registration & User Survey disabled. (missing glib-networking package) fish: 'glade &' terminated by signal SIGSEGV (Address boundary error)
While the Apple Problem report dialog gives the following info (I have just extracted what I thought might be useful):
Crashed Thread: 0 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00000001112337d8 Exception Note: EXC_CORPSE_NOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler  VM Regions Near 0x1112337d8: CoreAnimation 10d297000-10d434000 [ 1652K] rw-/rwx SM=PRV --> STACK GUARD 70000291a000-70000291b000 [ 4K] ---/rwx SM=NUL stack guard for thread 1 Thread 0 Crashed: 0 libobjc.A.dylib 0x00007fff202837a9 0x7fff2027d000 + 26537 1 libgdk-3.0.dylib 0x0000000101146ec0 _gdk_quartz_display_queue_events + 1360 2 libgdk-3.0.dylib 0x000000010114987a gdk_event_dispatch + 26 3 libglib-2.0.0.dylib 0x000000010087603e g_main_context_dispatch + 366 4 libglib-2.0.0.dylib 0x00000001008763bd g_main_context_iterate + 525 5 libglib-2.0.0.dylib 0x0000000100876702 g_main_loop_run + 258 6 libgtk-3.0.dylib 0x0000000100a4b74e gtk_dialog_run + 350 7 glade