| Ticket UUID: | 9dfae3413d66da5252296c923fff8a0bde59d45d | ||
| Title: | interp limit commands still seems to be 32 bits | ||
| Type: | Bug | Created on: | 2025-06-25 20:47:02 |
| Submitter: | sbron | Assigned to: | jan.nijtmans |
| Subsystem: | 20. [interp] | Severity: | Important |
| Priority: | 5 Medium | Last modified: | 2025-06-27 15:34:06 |
| Status: | Closed | Closed by: | jan.nijtmans |
| Resolution: | Fixed | Closed on: | 2025-06-27 15:34:06 |
| Version: | 54eb90319d | ||
| Description: | ||||
|
After running for quite some time, some interp in my program has executed 2147000000. As the interp doesn't seem to be misbehaving, I would like to increase its command limit by another 1000000. That results in an error: "command limit value must be at least 0" This happened on Tcl 8.6.14, so I thought to test in the latest 9.0 as that changed "everything" to 64 bits. But to my dismay I could still easily reproduce the error:
The manual page for Tcl_LimitSetCommands() does indicate that commandLimit is of type Tcl_Size. But the reverse function, Tcl_LimitGetCommands() is still documented to return an int. Diving into the source code, I see that Tcl_LimitGetCommands() actually returns a Tcl_Size, as I would have expected. However, I also find that ChildCommandLimitCmd() calls Tcl_LimitSetCommands() with variable | ||||
| User Comments: | ||||
oehhar added on 2025-06-26 05:42:58:
Schelte, great catch. May I motivate you to work on a patch? Even if you refuse to write C code, it may be a start ;-) Or what about a branch with a test case? Thanks for all, Harald jan.nijtmans added on 2025-06-26 08:04:22:
Does this work better? jan.nijtmans added on 2025-06-27 15:34:06:
Fixed [9e759845da6d8235|here] | ||||
