TIP: | 56 |
Title: | Standardize Call Interface to Tcl_Eval* Functions |
Version: | $Revision: 1.4 $ |
Author: | Miguel Sofer <msofer at users dot sourceforge dot net> |
State: | Final |
Type: | Project |
Tcl-Version: | 8.4 |
Vote: | Done |
Created: | Tuesday, 28 August 2001 |
This TIP replaces Tcl_EvalTokens with Tcl_EvalTokensStandard, which obeys the standard result management conventions for script evaluation functions.
The standard call interface for Tcl_Eval* functions returns a Tcl completion code (TCL_OK, TCL_ERROR, TCL_RETURN, TCL_BREAK, or TCL_CONTINUE), and sets a result object in the interpreter. The single exception is the function Tcl_EvalTokens, that returns a pointer to the result object, or a NULL when an exception occurs. This effectively transforms all exceptions into errors. This TIP proposes to replace Tcl_EvalTokens with a new function Tcl_EvalTokensStandard that performs the same chores but adheres to the standard call interface.
There are two arguments for the replacement of Tcl_EvalTokens:
Present a consistent call interface to all Tcl_Eval* functions.
Allow the return of non-error exceptional returns when evaluating tokens; the impossibility to do this is the cause of Bugs #455151 (https://sourceforge.net/tracker/index.php?func=detail&aid=455151&group_id=10894&atid=110894) and #219384 (https://sourceforge.net/tracker/index.php?func=detail&aid=219384&group_id=10894&atid=110894)
The proposal is to deprecate the use of Tcl_EvalTokens and replace it with a new Tcl_EvalTokensStandard. The core should only use the new function, the old one remains only for backward compatibility with extensions.
The proposal is implemented in the patch included in [Bug: 455151] https://sourceforge.net/tracker/index.php?func=detail&aid=455151&group_id=10894&atid=110894
This document has been placed in the public domain.
[Index] [History] [HTML Format] [Source Format] [LaTeX Format] [Text Format] [XML Format] [*roff Format (experimental)] [RTF Format (experimental)]
TIP AutoGenerator - written by Donal K. Fellows