Tcl Source Code

Check-in [3950bbd3d0]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

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

Overview
Comment:experimental: try to fix [723a2f4ac3] - avoid to generate exception handlers in tailcall (because the same scope/frame of parent); faults on safe-11.7.1/safe-11.8.1 because of missing "invokehidden" in call-stack of error-info.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | sebres-bug-723a2f4ac3
Files: files | file ages | folders
SHA3-256: 3950bbd3d02b5d0c89de25b24fab1ebaba45b0fffa04e7d0982eb868a55be1a2
User & Date: sebres 2018-08-02 16:37:33
References
2018-08-03
12:59
experimental: same fix for yield into coro as [3950bbd3d0] for tailcall. check-in: 596751cc2e user: sebres tags: sebres-bug-723a2f4ac3
Context
2018-08-02
17:09
amend to fix with test-cases covering correct behavior by tailcall with direct break/return into loo... check-in: cfe546af5b user: sebres tags: sebres-bug-723a2f4ac3
16:37
experimental: try to fix [723a2f4ac3] - avoid to generate exception handlers in tailcall (because th... check-in: 3950bbd3d0 user: sebres tags: sebres-bug-723a2f4ac3
2018-07-31
19:49
Remove some actually dead code check-in: a887506f5e user: jan.nijtmans tags: core-8-6-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclBasic.c.

8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
    /*
     * Perform the tailcall
     */

    TclMarkTailcall(interp);
    TclNRAddCallback(interp, TclNRReleaseValues, listPtr, NULL, NULL,NULL);
    iPtr->lookupNsPtr = (Namespace *) nsPtr;
    return TclNREvalObjv(interp, objc-1, objv+1, 0, NULL);
}

int
TclNRReleaseValues(
    ClientData data[],
    Tcl_Interp *interp,
    int result)






|







8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
    /*
     * Perform the tailcall
     */

    TclMarkTailcall(interp);
    TclNRAddCallback(interp, TclNRReleaseValues, listPtr, NULL, NULL,NULL);
    iPtr->lookupNsPtr = (Namespace *) nsPtr;
    return TclNREvalObjv(interp, objc-1, objv+1, TCL_EVAL_NOERR, NULL);
}

int
TclNRReleaseValues(
    ClientData data[],
    Tcl_Interp *interp,
    int result)