| Ticket UUID: | 2823282 | ||
| Title: | direct eval [expr] not NRE safe (Tcl_ExprObj) | ||
| Type: | Bug | Created on: | 2009-07-17 20:01:43 |
| Submitter: | dgp | Assigned to: | dgp |
| Subsystem: | 47. Bytecode Compiler | Severity: | |
| Priority: | 5 Medium | Last modified: | 2009-08-13 00:01:30 |
| Status: | Closed | Closed by: | dgp |
| Resolution: | Fixed | Closed on: | 2009-08-12 17:01:30 |
| Version: | obsolete: 8.6b1.1 | ||
| Description: | ||||
% coroutine foo apply {{} {set expr expr; $expr {[yield]}}}
cannot yield: C stack busy
I think this also causes trouble in the expression
evaluation portion of direct eval [for] and [while]
commands.
| ||||
| User Comments: | ||||
dkf added on 2009-07-18 19:29:13:
There's no TclNRExpr() API or equivalent, so fixing this requires substantial work. Assigning to person better suited than me to carry this out. dgp added on 2009-07-19 01:43:56:
Patch under construction. dgp added on 2009-07-19 11:15:53:
File Added - 335608: 2823282.patch dgp added on 2009-07-19 11:16:32:
Needs some more refinement but here's a first functional patch that fixes the bug. dgp added on 2009-07-25 03:49:20:
Here's a cleaned up patch to review. There are still a couple of TODO's regarding a more careful audit of where the interp state should be saved/reset/restored, but the big picture is right now, and better commented. Also missing is docs and the TIP for the new public routine Tcl_NRExprObj(). dgp added on 2009-07-25 03:50:18:
File Added - 336457: 2823282-1.patch dgp added on 2009-07-25 03:50:27:
File Deleted - 335608: dgp added on 2009-07-30 22:54:30:
File Added - 337337: 2823282-2.patch dgp added on 2009-07-30 22:54:42:
File Deleted - 336457: dgp added on 2009-07-30 22:54:56:
Latest patch includes updates to docs. dgp added on 2009-08-12 23:07:32:
Patch / TIP 353 committed to HEAD. Still open while I check on the [for], [while] claims. dgp added on 2009-08-13 00:01:30:
allow_comments - 1 Patching up the callers of Tcl_ExprBooleanObj() is better tracked in Bug 2823276. | ||||
Attachments:
- 2823282-2.patch [download] added by dgp on 2009-07-30 22:54:30. [details]
