Ticket UUID: | 9dfae3413d66da5252296c923fff8a0bde59d45d | |||
Title: | interp limit commands still seems to be 32 bits | |||
Type: | Bug | Version: | 54eb90319d | |
Submitter: | sbron | Created on: | 2025-06-25 20:47:02 | |
Subsystem: | 20. [interp] | Assigned To: | nobody | |
Priority: | 5 Medium | Severity: | Important | |
Status: | Open | Last Modified: | 2025-06-26 08:04:22 | |
Resolution: | None | Closed By: | nobody | |
Closed on: | ||||
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: |
jan.nijtmans added on 2025-06-26 08:04:22:
Does this work better? 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 |
