Crash when using Qt5 and Guile 3.x

I don’t know if this is totally my fault, but this is very annoying since I lose data when TM crash:

;;; WARNING: compilation of /Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/graphics/graphics-env.scm failed:
;;; Throw to key `texmacs-error' with args `("tm-define-sub" "unknown option ~S" (#:state-slots) #f)'.
warning: conditional master routine focus-hidden-menu
   (lambda (t) (if (tree-in? t (quote (draw-over draw-under))) (menu-dynamic --- (Enter graphics (graphics-enter)) (assuming (hidden-child? t 2) (dynamic (string-input-menu t 2)))) (former t)))
warning: conditional master routine focus-hidden-icons
   (lambda (t) (if (tree-in? t (quote (draw-over draw-under))) (menu-dynamic (glue #f #f 10 0) ((balloon (icon tm_enter_image.xpm) Enter graphics mode) (graphics-enter)) (assuming (hidden-child? t 2) (dynamic (string-input-icon t 2)))) (former t)))
;;; note: source file /Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-define.scm
;;;       newer than compiled /Users/proffan/.cache/guile/ccache/3.0-LE-8-4.6/Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-define.scm.go
;;; compiling /Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-define.scm
;;; note: source file /Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-texmacs-drd.scm
;;;       newer than compiled /Users/proffan/.cache/guile/ccache/3.0-LE-8-4.6/Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-texmacs-drd.scm.go
;;; compiling /Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-texmacs-drd.scm
;;; compiled /Users/proffan/.cache/guile/ccache/3.0-LE-8-4.6/Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-texmacs-drd.scm.go
;;; compiled /Users/proffan/.cache/guile/ccache/3.0-LE-8-4.6/Users/proffan/Projects/Development/DOC/texmacs/build/TeXmacs.app/Contents/Resources/share/TeXmacs/progs/convert/latex/latex-define.scm.go
Throwing segmentation fault
-------------------------------------------------
Error message:
  segmentation fault

System information:
  TeXmacs version  : 2.1
  Built by         : proffan
  Building date    : 2022-03-17T14:07:00
  Operating system : linux-gnu
  Vendor           : pc
  Processor        : arm64
  Crash date       : Thu Mar 17 14:30:08 EDT 2022

Editor status:
  Root path          : [ 2 ]
  Current path       : [ 2, 2, 1 ]
  Shifted path       : [ 2, 2, 1 ]
  Physical selection : [ 2, 2, 1 ] -- [ 2, 2, 1 ]

Backtrace of C++ stack:
  1   TeXmacs                             0x00000001012af6f0 : get_crash_report(char const*) + 368
  2   TeXmacs                             0x0000000101123e64 : tm_throw(char const*) + 88
  3   TeXmacs                             0x0000000100b91a58 : clean_exit_on_segfault(int) + 28
  4   libsystem_platform.dylib            0x00000001b2dcd4c4 : _sigtramp() + 56
  5   TeXmacs                             0x0000000101154690 : tmscm_is_path(scm_unused_struct*) + 60
  6   TeXmacs                             0x000000010116a050 : tmg_path_end(scm_unused_struct*, scm_unused_struct*) + 76
  7   libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  8   libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  9   libguile-3.0.1.dylib                0x00000001027d81d8 : scm_call_2() + 44
  10  TeXmacs                             0x0000000101150774 : TeXmacs_call(arg_list*) + 168
  11  libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  12  libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  13  libguile-3.0.1.dylib                0x00000001028544e0 : catch_body() + 184
  14  libguile-3.0.1.dylib                0x0000000102854678 : scm_c_with_throw_handler() + 44
  15  TeXmacs                             0x00000001011506c0 : TeXmacs_lazy_call_scm(arg_list*) + 52
  16  libguile-3.0.1.dylib                0x00000001027da1bc : scm_c_with_exception_handler() + 472
  17  libguile-3.0.1.dylib                0x0000000102854640 : scm_internal_catch() + 44
  18  TeXmacs                             0x000000010114f498 : TeXmacs_call_scm(arg_list*) + 48
  19  TeXmacs                             0x000000010114f580 : call_scheme(scm_unused_struct*, scm_unused_struct*, scm_unused_struct*) + 92
  20  TeXmacs                             0x00000001011b7cc8 : call(char const*, object, object) + 144
  21  TeXmacs                             0x0000000101205b84 : save_to_server(url, string) + 260
  22  TeXmacs                             0x00000001011e4d30 : save_string(url, string, bool) + 132
  23  TeXmacs                             0x0000000101293c2c : export_tree(tree, url, string) + 1448
  24  TeXmacs                             0x0000000101294680 : buffer_export(url, url, string) + 2448
  25  TeXmacs                             0x0000000101294e70 : buffer_save(url) + 268
  26  TeXmacs                             0x000000010118f84c : tmg_buffer_save(scm_unused_struct*) + 136
  27  libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  28  libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  29  TeXmacs                             0x0000000101150720 : TeXmacs_call(arg_list*) + 84
  30  libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  31  libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  32  libguile-3.0.1.dylib                0x00000001028544e0 : catch_body() + 184
  33  libguile-3.0.1.dylib                0x0000000102854678 : scm_c_with_throw_handler() + 44
  34  TeXmacs                             0x00000001011506c0 : TeXmacs_lazy_call_scm(arg_list*) + 52
  35  libguile-3.0.1.dylib                0x00000001027da1bc : scm_c_with_exception_handler() + 472
  36  libguile-3.0.1.dylib                0x0000000102854640 : scm_internal_catch() + 44
  37  TeXmacs                             0x000000010114f498 : TeXmacs_call_scm(arg_list*) + 48
  38  TeXmacs                             0x000000010114f434 : call_scheme(scm_unused_struct*) + 60
  39  TeXmacs                             0x00000001011be784 : object_command_rep::apply() + 60
  40  TeXmacs                             0x00000001012c9764 : command::operator()() + 36
  41  TeXmacs                             0x0000000100f173f4 : edit_interface_rep::try_shortcut(string) + 3924
  42  TeXmacs                             0x0000000100f18368 : edit_interface_rep::key_press(string) + 3520
  43  TeXmacs                             0x00000001011a3708 : tmg_key_press(scm_unused_struct*) + 136
  44  libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  45  libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  46  libguile-3.0.1.dylib                0x00000001027d81d8 : scm_call_2() + 44
  47  TeXmacs                             0x0000000101150774 : TeXmacs_call(arg_list*) + 168
  48  libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  49  libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  50  libguile-3.0.1.dylib                0x00000001028544e0 : catch_body() + 184
  51  libguile-3.0.1.dylib                0x0000000102854678 : scm_c_with_throw_handler() + 44
  52  TeXmacs                             0x00000001011506c0 : TeXmacs_lazy_call_scm(arg_list*) + 52
  53  libguile-3.0.1.dylib                0x00000001027da1bc : scm_c_with_exception_handler() + 472
  54  libguile-3.0.1.dylib                0x0000000102854640 : scm_internal_catch() + 44
  55  TeXmacs                             0x000000010114f498 : TeXmacs_call_scm(arg_list*) + 48
  56  TeXmacs                             0x000000010114f580 : call_scheme(scm_unused_struct*, scm_unused_struct*, scm_unused_struct*) + 92
  57  TeXmacs                             0x00000001011b7cc8 : call(char const*, object, object) + 144
  58  TeXmacs                             0x0000000100f1a774 : edit_interface_rep::handle_keypress(string, long) + 1820
  59  TeXmacs                             0x00000001017d6ccc : qt_gui_rep::process_queued_events(int) + 428
  60  TeXmacs                             0x00000001017d6768 : qt_gui_rep::update() + 620
  61  TeXmacs                             0x0000000101792c98 : QTMGuiHelper::doUpdate() + 28
  62  TeXmacs                             0x0000000100b9d57c : QTMGuiHelper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 220
  63  QtCore                              0x0000000104c95cc8 : QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 3412
  64  QtCore                              0x0000000104c9ee30 : QTimer::timerEvent(QTimerEvent*) + 120
  65  QtCore                              0x0000000104c8dce8 : QObject::event(QEvent*) + 88
  66  QtWidgets                           0x000000010344671c : QApplicationPrivate::notify_helper(QObject*, QEvent*) + 292
  67  QtWidgets                           0x0000000103447ab4 : QApplication::notify(QObject*, QEvent*) + 548
  68  TeXmacs                             0x0000000100ba27ec : QTMApplication::notify(QObject*, QEvent*) + 40
  69  QtCore                              0x0000000104c65924 : QCoreApplication::notifyInternal2(QObject*, QEvent*) + 208
  70  QtCore                              0x0000000104cc5ffc : QTimerInfoList::activateTimers() + 932
  71  libqcocoa.dylib                     0x00000001039ed278 : qt_plugin_instance() + 179732
  72  CoreFoundation                      0x00000001b2e829a0 : __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__() + 28
  73  CoreFoundation                      0x00000001b2e828ec : __CFRunLoopDoSource0() + 208
  74  CoreFoundation                      0x00000001b2e825ec : __CFRunLoopDoSources0() + 268
  75  CoreFoundation                      0x00000001b2e80f6c : __CFRunLoopRun() + 828
  76  CoreFoundation                      0x00000001b2e80490 : CFRunLoopRunSpecific() + 600
  77  HIToolbox                           0x00000001bbaa0dd8 : RunCurrentEventLoopInMode() + 292
  78  HIToolbox                           0x00000001bbaa0b54 : ReceiveNextEventCommon() + 564
  79  HIToolbox                           0x00000001bbaa0908 : _BlockUntilNextEventMatchingListInModeWithFilter() + 72
  80  AppKit                              0x00000001b59dfbcc : _DPSNextEvent() + 860
  81  AppKit                              0x00000001b59de4c4 -[NSApplication(NSEvent) : _nextEventMatchingEventMask:untilDate:inMode:dequeue:]() + 1328
  82  AppKit                              0x00000001b59d0690 -[NSApplication : run]() + 596
  83  libqcocoa.dylib                     0x00000001039edcac : qt_plugin_instance() + 182344
  84  QtCore                              0x0000000104c61a08 : QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 524
  85  QtCore                              0x0000000104c65f50 : QCoreApplication::exec() + 132
  86  TeXmacs                             0x00000001017d64f0 : qt_gui_rep::event_loop() + 48
  87  TeXmacs                             0x00000001017d69dc : gui_start_loop() + 20
  88  TeXmacs                             0x0000000100b96ea8 : TeXmacs_main(int, char**) + 17068
  89  TeXmacs                             0x000000010114f104 : new_call_back(void*, int, char**) + 44
  90  libguile-3.0.1.dylib                0x00000001027f0914 : invoke_main_func() + 64
  91  libguile-3.0.1.dylib                0x00000001027d4234 : c_body() + 24
  92  libguile-3.0.1.dylib                0x0000000102856c4c : vm_regular_engine() + 540
  93  libguile-3.0.1.dylib                0x00000001028566a4 : scm_call_n() + 372
  94  libguile-3.0.1.dylib                0x00000001028544e0 : catch_body() + 184
  95  libguile-3.0.1.dylib                0x00000001027da1bc : scm_c_with_exception_handler() + 472
  96  libguile-3.0.1.dylib                0x00000001027d4194 : scm_i_with_continuation_barrier() + 156
  97  libguile-3.0.1.dylib                0x00000001027d420c : scm_c_with_continuation_barrier() + 80
  98  libguile-3.0.1.dylib                0x00000001028522c8 : with_guile() + 76
  99  libgc.1.dylib                       0x00000001029be754 : GC_call_with_stack_base() + 36
  100 libguile-3.0.1.dylib                0x00000001027f08c0 : scm_boot_guile() + 68
  101 TeXmacs                             0x000000010114f0cc : start_scheme(int, char**, void (*)(int, char**)) + 84
  102 TeXmacs                             0x0000000100b98cf8 : main() + 1916
  103 dyld                                0x00000001028fd088 : start() + 516

-------------------------------------------------
TeXmacs] failed-error, Exception, segmentation fault

It would be great if the TM crash report includes the C++ exception info…

This happens when I use the bibliography database function and click save after inserting a new database entry.

To reproduce:

  • Create a new bibliographic database
  • Paste the following bibtex using Edit->Paste from
  • Save (F3) and watch it crash
@book{10.5555/1349759, author = {Chan, Raymond Hon-Fu and Jin, Xiao-Qing}, title = {An Introduction to Iterative Toeplitz Solvers (Fundamentals of Algorithms)}, year = {2007}, isbn = {0898716365}, abstract = {Toeplitz systems arise in a variety of applications in mathematics, scientific computing, and engineering, including numerical partial and ordinary differential equations, numerical solutions of convolution-type integral equations, stationary autoregressive time series in statistics, minimal realization problems in control theory, system identification problems in signal processing, and image restoration problems in image processing. This practical book introduces current developments in using iterative methods for solving Toeplitz systems based on the preconditioned conjugate gradient method. The authors focus on the important aspects of iterative Toeplitz solvers and give special attention to the construction of efficient circulant preconditioners. Applications of iterative Toeplitz solvers to practical problems are addressed, enabling readers to use the book s methods and algorithms to solve their own problems. An appendix containing the MATLAB programs used to generate the numerical results is included. Students and researchers in computational mathematics and scientific computing will benefit from this book.} }

Thanks for the report. Guile 3 is not yet officially supported, so it’s not advised for production use.

That being said, this also crashes with Guile 1.8.
See this bug report:
https://savannah.gnu.org/bugs/?60125

As a workaround you can add a Publisher field.

@jeroen I think this has something to do with the “Last name” functionality. Since it does not crash if I just type the name without specifying which part is Last name in the toolbar