From: SourceForge.net <no...@so...> - 2009-04-13 21:13:33
|
Bugs item #2759119, was opened at 2009-04-13 16:03 Message generated for change (Settings changed) made by dkf You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2759119&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 01. Bindings Group: development: 8.6b1.1 >Status: Closed >Resolution: Fixed Priority: 9 Private: No Submitted By: Don Porter (dgp) Assigned to: Donal K. Fellows (dkf) Summary: failed conversions to [tailcall] use Initial Comment: Last two commits to tk.tcl broke the HEAD. Example test failure: ==== filebox-3.5-0 tk_getOpenFile command FAILED ==== Contents of test case: catch {unset tv} catch {unset typeName} ToPressButton $parent ok if {[info exists tv]} { } else { } set choice [tk_getOpenFile -title "Press Ok" -filetypes $filters($x) -parent $parent -initialfile $fileName -initialdir $fileDir -typevariable tv] if {[info exists tv]} { regexp {^(.*) \(.*\)$} $tv dummy typeName } else { set typeName "-unset-" } set typeName ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- errorInfo: bad level "2" while executing "uplevel 2 [list info exists $data(-typevariable)]" (procedure "::tk::dialog::file::" line 75) invoked from within "::tk::dialog::file:: open -title {Press Ok} -filetypes { {"Text files" {.txt .doc} } {"Text files" {} TEXT} {"Tcl Scripts" {.tcl} TEXT} {"C S..." invoked from within "tk_getOpenFile -title "Press Ok" -filetypes $filters($x) -parent $parent -initialfile $fileName -initialdir $fileDir -typevariable tv" ("uplevel" body line 8) invoked from within "uplevel 1 $script" ---- errorCode: TCL VALUE LEVEL ==== filebox-3.5-0 FAILED Appears that conversions of return [foo] to tailcall foo failed to account for hardcoded level values in [up*] commands in "foo". FWIW, I think this is a demonstration that any values besides #0, 0, or 1 for the level argument to [up*] are just bugs waiting to happen. ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2009-04-13 16:16 Message: Another symptom which I believe has the same cause. Nothing at all in safe.test works. Appears that the HEAD version of tk.tcl throws errors in safe interps. ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2009-04-13 16:07 Message: >From another perspective, [tailcall] is documented as the equivalent of return [uplevel 1 ...] so when transforming existing code to it, the [uplevel] has to be there for the conversion to be equivalent. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2759119&group_id=12997 |