Posted to tcl by kbk at Fri Oct 29 14:54:11 GMT 2010view raw

  1. Compiling body of proc "x"
  2.  
  3. ByteCode 0x0x9d44dd8, refCt 1, epoch 4, interp 0x0x9cd9ab8 (epoch 4)
  4. Source "\n variable result1\n for {set i 0} {$i < 100} {inc"
  5. Cmds 10, src 255, inst 177, litObjs 8, aux 0, stkDepth 6, code/src 1.91
  6. Code 488 = header 104+inst 177+litObj 32+exc 112+aux 0+cmdMap 56
  7. Proc 0x0x9d4a480, refCt 1, args 0, compiled locals 7
  8. slot 0, scalar, "result1"
  9. slot 1, scalar, "i"
  10. slot 2, scalar, "status2"
  11. slot 3, scalar, "result2"
  12. slot 4, scalar, "options2"
  13. slot 5, scalar, "status1"
  14. slot 6, scalar, "options1"
  15. Exception ranges 4, depth 3:
  16. 0: level 0, loop, pc 29-149, continue 151, break 174
  17. 1: level 0, loop, pc 151-162, continue -1, break 174
  18. 2: level 1, catch, pc 43-107, catch 125
  19. 3: level 2, catch, pc 57-78, catch 96
  20. Commands 10:
  21. 1: pc 0-9, src 5-20 2: pc 10-175, src 26-253
  22. 3: pc 19-22, src 31-37 4: pc 29-137, src 63-203
  23. 5: pc 38-134, src 76-202 6: pc 43-107, src 89-182
  24. 7: pc 52-105, src 102-181 8: pc 57-78, src 112-157
  25. 9: pc 138-149, src 206-247 10: pc 151-162, src 52-57
  26. Command 1: "variable result1"
  27. (0) push1 0 # "result1"
  28. (2) variable %v0 # var "result1"
  29. (7) push1 1 # ""
  30. (9) pop
  31. Command 2: "for {set i 0} {$i < 100} {incr i} {\n\tset status2 [catch"
  32. (10) startCommand +166 2 # next cmd at pc 176, 2 cmds start here
  33. Command 3: "set i 0"
  34. (19) push1 2 # "0"
  35. (21) storeScalar1 %v1 # var "i"
  36. (23) pop
  37. (24) jump4 +140 # pc 164
  38. Command 4: "set status2 [catch {\n\t set status1 [catch {\n\t\treturn"
  39. (29) startCommand +108 2 # next cmd at pc 137, 2 cmds start here
  40. Command 5: "catch {\n\t set status1 [catch {\n\t\treturn -code error "
  41. (38) beginCatch4 2
  42. Command 6: "set status1 [catch {\n\t\treturn -code error -level 0 \"ori"
  43. (43) startCommand +65 2 # next cmd at pc 108, 2 cmds start here
  44. Command 7: "catch {\n\t\treturn -code error -level 0 \"original failure"
  45. (52) beginCatch4 3
  46. Command 8: "return -code error -level 0 \"original failure\""
  47. (57) startCommand +22 1 # next cmd at pc 79
  48. (66) push1 3 # "original failure"
  49. (68) push1 4 # ""
  50. (70) returnImm +1 0
  51. (79) pushReturnOpts
  52. (80) over 1
  53. (85) storeScalar1 %v0 # var "result1"
  54. (87) pop
  55. (88) storeScalar1 %v6 # var "options1"
  56. (90) pop
  57. (91) pop
  58. (92) push1 2 # "0"
  59. (94) jump1 +11 # pc 105
  60. (96) pushReturnOpts
  61. (97) pushResult
  62. (98) storeScalar1 %v0 # var "result1"
  63. (100) pop
  64. (101) storeScalar1 %v6 # var "options1"
  65. (103) pop
  66. (104) pushReturnCode
  67. (105) endCatch
  68. (106) storeScalar1 %v5 # var "status1"
  69. (108) pushReturnOpts
  70. (109) over 1
  71. (114) storeScalar1 %v3 # var "result2"
  72. (116) pop
  73. (117) storeScalar1 %v4 # var "options2"
  74. (119) pop
  75. (120) pop
  76. (121) push1 2 # "0"
  77. (123) jump1 +11 # pc 134
  78. (125) pushReturnOpts
  79. (126) pushResult
  80. (127) storeScalar1 %v3 # var "result2"
  81. (129) pop
  82. (130) storeScalar1 %v4 # var "options2"
  83. (132) pop
  84. (133) pushReturnCode
  85. (134) endCatch
  86. (135) storeScalar1 %v2 # var "status2"
  87. (137) pop
  88. Command 9: "lappend retval $status2 $result2 $options2"
  89. (138) push1 5 # "lappend"
  90. (140) push1 6 # "retval"
  91. (142) loadScalar1 %v2 # var "status2"
  92. (144) loadScalar1 %v3 # var "result2"
  93. (146) loadScalar1 %v4 # var "options2"
  94. (148) invokeStk1 5
  95. (150) pop
  96. Command 10: "incr i"
  97. (151) startCommand +12 1 # next cmd at pc 163
  98. (160) incrScalar1Imm %v1 +1 # var "i"
  99. (163) pop
  100. (164) loadScalar1 %v1 # var "i"
  101. (166) push1 7 # "100"
  102. (168) lt
  103. (169) jumpTrue4 -140 # pc 29
  104. (174) push1 1 # ""
  105. (176) done