Tcl Source Code

Check-in [596751cc2e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:experimental: same fix for yield into coro as [3950bbd3d0] for tailcall.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | sebres-bug-723a2f4ac3
Files: files | file ages | folders
SHA3-256: 596751cc2ea0cf7049d6fa8bb5779ef2495d34889fa814f0146d535821f3f535
User & Date: sebres 2018-08-03 12:59:57.142
Context
2018-08-03
16:03
fixed [723a2f4ac3], all test cases passed now (also proper call-stack in error-info of safe-11.7.1/s... check-in: 34526b0071 user: sebres tags: sebres-bug-723a2f4ac3
12:59
experimental: same fix for yield into coro as [3950bbd3d0] for tailcall. check-in: 596751cc2e user: sebres tags: sebres-bug-723a2f4ac3
11:15
amend with new tests: now contains all tests affected from [723a2f4ac3] as well as executed non-comp... check-in: 7d4bfdea1c user: sebres tags: sebres-bug-723a2f4ac3
Changes
Unified Diff Ignore Whitespace Patch
Changes to generic/tclBasic.c.
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
    iPtr->execEnvPtr = corPtr->eePtr;

    TclNRAddCallback(interp, NRCoroutineExitCallback, corPtr,
	    NULL, NULL, NULL);

    /* ensure that the command is looked up in the correct namespace */
    iPtr->lookupNsPtr = lookupNsPtr;
    Tcl_NREvalObj(interp, Tcl_NewListObj(objc-2, objv+2), 0);
    iPtr->numLevels--;

    SAVE_CONTEXT(corPtr->running);
    RESTORE_CONTEXT(corPtr->caller);
    iPtr->execEnvPtr = corPtr->callerEEPtr;

    /*







|







9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
    iPtr->execEnvPtr = corPtr->eePtr;

    TclNRAddCallback(interp, NRCoroutineExitCallback, corPtr,
	    NULL, NULL, NULL);

    /* ensure that the command is looked up in the correct namespace */
    iPtr->lookupNsPtr = lookupNsPtr;
    Tcl_NREvalObj(interp, Tcl_NewListObj(objc-2, objv+2), TCL_EVAL_NOERR);
    iPtr->numLevels--;

    SAVE_CONTEXT(corPtr->running);
    RESTORE_CONTEXT(corPtr->caller);
    iPtr->execEnvPtr = corPtr->callerEEPtr;

    /*