Menu

#4388 direct eval [expr] not NRE safe (Tcl_ExprObj)

obsolete: 8.6b1.1
closed-fixed
5
2009-08-12
2009-07-17
Don Porter
No

% 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.

Discussion

  • Donal K. Fellows

    There's no TclNRExpr() API or equivalent, so fixing this requires substantial work. Assigning to person better suited than me to carry this out.

     
  • Donal K. Fellows

    • assigned_to: dkf --> msofer
     
  • Don Porter

    Don Porter - 2009-07-18

    Patch under construction.

     
  • Don Porter

    Don Porter - 2009-07-18
    • labels: 105657 --> 47. Bytecode Compiler
    • assigned_to: msofer --> dgp
     
  • Don Porter

    Don Porter - 2009-07-19

    Needs some more refinement but here's
    a first functional patch that fixes the bug.

     
  • Don Porter

    Don Porter - 2009-07-24

    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().

     
  • Don Porter

    Don Porter - 2009-07-30
     
  • Don Porter

    Don Porter - 2009-07-30

    Latest patch includes updates to docs.

     
  • Don Porter

    Don Porter - 2009-08-12

    Patch / TIP 353 committed to HEAD.

    Still open while I check on the [for], [while] claims.

     
  • Don Porter

    Don Porter - 2009-08-12
    • milestone: --> obsolete: 8.6b1.1
    • status: open --> closed-fixed
     
  • Don Porter

    Don Porter - 2009-08-12

    Patching up the callers of Tcl_ExprBooleanObj()
    is better tracked in Bug 2823276.

     
MongoDB Logo MongoDB