Menu

#568 Should Tcl_Main() exit if appInitProc returns TCL_ERROR?

open
5
2009-10-19
2009-10-18
No

Hi!

It is documented in Tcl_AppInit(3) that appInitProc() may return TCL_ERROR along with an error message. Tcl_Main() prints out the error message and continues working. Wouldn't it be better if Tcl_Main() exited in case of appInitProc() returned TCL_ERROR? Or may be it should be documented that if application initialization failure is fatal then appInitProc() should call exit()? Or may be something else?

Discussion

  • Don Porter

    Don Porter - 2009-10-19
    • labels: --> 50. Embedding Support
    • assigned_to: nobody --> dgp
     
  • Don Porter

    Don Porter - 2009-10-19

    I agree that it would be a more consistent behavior
    for Tcl_Main to exit() when the appInitProc returns
    TCL_ERROR. However the existing behavior has
    been in place since release 7.5, since long before
    any of the current maintainers got started, and I
    have no clear idea how much code is written with
    that expectation.

    The way forward is to TIP this feature change in
    the early days of feature development once the
    window opens on the 8.7/9.0 feature chase. Then
    the TIP discussion will have some change to chase
    down the pros/cons of the proposed change.

    As you observe, the appInitProc() writer has a
    workaround available to simply call exit() for
    itself if it has already determined that the error
    ought to be a fatal one.