Lines Matching full:tcl

10 /* TCL/TK VERSION INFO:
12 Only Tcl/Tk 8.5.12 and later are supported. Older versions are not
14 Tcl/Tk libraries.
17 /* XXX Further speed-up ideas, involving Tcl 8.0 features:
19 - Register a new Tcl type, "Python callable", which can be called more
42 /* If Tcl is compiled for threads, we must also define TCL_THREAD. We define
43 it always; if Tcl is not threaded, the thread functions in
44 Tcl are empty. */
48 #include <Tcl/tcl.h>
51 #include <tcl.h>
86 messiness. In Tcl 8.0 and later, it is not available on Windows (and on
96 /* If Tcl can wait for a Unix file descriptor, define the EventHook() routine
97 which uses this to handle Tcl events while the user is typing commands. */
106 Tcl objects.
108 "surrogatepass" error handler for converting to/from Tcl Unicode objects.
110 to/from Tcl String objects. */
144 tcl_library_path = PyUnicode_FromString("\\tcl\\tcl" TCL_VERSION); in _get_tcl_lib_path()
162 Py_TCLTK_DIR "\\lib\\tcl" TCL_VERSION); in _get_tcl_lib_path()
172 reset errno and leave Tcl to its own devices */ in _get_tcl_lib_path()
186 /* The threading situation is complicated. Tcl is not thread-safe, except
189 So we need to use a lock around all uses of Tcl. Previously, the
191 problems when other Python threads need to run while Tcl is blocked
194 To solve this problem, a separate lock for Tcl is introduced.
200 used whenever a call into Tcl is made that could call an event
201 handler, or otherwise affect the state of a Tcl interpreter. These
204 and the lock for Tcl has been acquired.
206 Sometimes, it is necessary to have both the Python lock and the Tcl
207 lock. (For example, when transferring data from the Tcl
211 doesn't release the Tcl lock; LEAVE_OVERLAP_TCL releases the Tcl
214 By contrast, ENTER_PYTHON and LEAVE_PYTHON are used in Tcl event
216 are entered while the lock for Tcl is held; the event handler
218 Tcl and acquires the Python interpreter lock, restoring the
220 interpreter lock and re-acquires the lock for Tcl. It is okay for
227 If Tcl is threaded, this approach won't work anymore. The Tcl
238 In addition, for a threaded Tcl, a single global tcl_tstate won't
239 be sufficient anymore, since multiple Tcl interpreters may
240 simultaneously dispatch in different threads. So we use the Tcl TLS
288 "Calling Tcl from different apartment"); \
407 /* Tcl encodes null character as \xc0\x80. in unicodeFromTclStringAndSize()
592 "Tcl is threaded but _tkinter is not"); in Tkapp_New()
598 /* If Tcl is threaded, we don't need the lock. */ in Tkapp_New()
747 /** Tcl Eval **/
845 PyDoc_STRVAR(get_typename__doc__, "name of the Tcl type");
1214 /* fall through: return tcl object. */ in FromObj()
1223 /* booleanString type is not registered in Tcl */ in FromObj()
1230 /* bignum type is not registered in Tcl */ in FromObj()
1261 /* Convert Python objects to Tcl objects. This must happen in the
1351 the Tcl interpreter thread. Initially, it holds the Tcl lock, and doesn't
1393 /* This is the main entry point for calling a Tcl command.
1395 1. Tcl is not threaded: Must have the Tcl lock, then can invoke command in
1397 2. Tcl is threaded, caller of the command is in the interpreter thread:
1398 Execute the command in the calling thread. Since the Tcl lock will
1400 3. Tcl is threaded, caller is in a different thread: Must queue an event to
1401 the interpreter thread. Allocation of Tcl objects needs to occur in the
1590 /** Tcl Variable **/
1730 /* Tcl is not threaded, or this is the interpreter thread. */ in var_invoke()
1747 /* XXX Acquire tcl lock??? */ in SetVar()
1769 /* XXX must hold tcl lock already??? */ in SetVar()
1886 /** Tcl to Python **/
2208 /** Tcl Command **/
2225 /* This is the Tcl command that acts as a wrapper for Python
2375 PyErr_SetString(Tkinter_TclError, "can't create Tcl command"); in _tkinter_tkapp_createcommand_impl()
2426 PyErr_SetString(Tkinter_TclError, "can't delete Tcl command"); in _tkinter_tkapp_deletecommand_impl()
3378 /* Tk_MacOSXSetupTkNotifier must be called before Tcl's subsystems in PyInit__tkinter()
3384 * Tcl interpreter for now. It probably should work to do this in PyInit__tkinter()
3392 /* This helps the dynamic loader; in Unicode aware Tcl versions in PyInit__tkinter()
3393 it also helps Tcl find its encodings. */ in PyInit__tkinter()