summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2015-04-08 19:08:57 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2015-04-08 19:08:57 (GMT)
commit594db8256437eeb9c5e78ca5ec38b22f441cdb00 (patch)
treefbaf51e83268dab5c03b4ecb458f608270c19e7d
parent5ca69cacce4e0c066a7270d88ac64d9ba7097ef0 (diff)
downloadtcl-594db8256437eeb9c5e78ca5ec38b22f441cdb00.zip
tcl-594db8256437eeb9c5e78ca5ec38b22f441cdb00.tar.gz
tcl-594db8256437eeb9c5e78ca5ec38b22f441cdb00.tar.bz2
improve comments for TclMarkTailcall and friends
-rw-r--r--generic/tclBasic.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index f6f66ed..1220239 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -8186,9 +8186,16 @@ Tcl_NRCmdSwap(
*
* One delicate point is to properly define the NRCommand where the tailcall
* will execute. There are functions whose purpose is to help define the
- * precise spot: TclMarkTailcall ("this is the spot") and TclSkipTailcall
- * ("skip the next command: we are redirecting to it, tailcalls should run
- * after WE return"), TclPushTailcallPoint (special for OO).
+ * precise spot:
+ * TclMarkTailcall: if the NEXT command to be pushed tailcalls, execution
+ * should continue right here
+ * TclSkipTailcall: if the NEXT command to be pushed tailcalls, execution
+ * should continue after the CURRENT command is fully returned ("skip
+ * the next command: we are redirecting to it, tailcalls should run
+ * after WE return")
+ * TclPushTailcallPoint: the search for a tailcalling spot cannot traverse
+ * this point. This is special for OO, as some of the oo constructs
+ * that behave like commands may not push an NRCommand callback.
*/
void