# Check-in [84e714bd8c]

Bounty program for improvements to Tcl and certain Tcl packages.

 ```42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 .. 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 ``` ```1 % string is wide 18446744073709551615 1 % string is wide 18446744073709551616 0 So, valid wide integers appear to range from -2^64+1 to +2^64-1. Most people learn in school that 64-bit integers range from -2^63 to 2^63-1. Are Tcl's wide integers 65-bit, but then excluding -18446744073709551616?
% expr int(2147483648)          ; #on LP64/ILP64 platforms 2147483648 % expr int(2147483648)          ; #on other platforms -2147483648 ................................................................................  * On all platforms, the int() math function is modified to do 64-bit truncation, as it already does on [LP64/ILP64](https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models) systems (e.g. 64-bit Linux).    int() will thus become synonym for wide(). The wide() function will become deprecated in Tcl 9.0, but it will not be removed yet.   * The ranges of "string is integer" and "string is wideinteger" are changed to match the range of the int()/wide() math function.    So these functions will report true (1) if the number is in the range -9223372036854775808..9223372036854775807.    The "string is wideinteger" command will be deprecated in Tcl 9.0, but it will not be removed yet.   * The C function Tcl\_GetIntFromObj() is changed to return TCL\_OK if the Tcl_Obj contains values in the range of -2147483648..4294967295. So,    it succeeds if the number fits in either a platform "int", either a platform "unsigned int" type.      * The C function Tcl\_GetLongFromObj() is changed to behave like Tcl\_GetIntFromObj() if sizeof(long) == sizeof(ing), and to behave like Tcl\_GetWideIntFromObj() if sizeof(long) == sizeof(Tcl_WideInt)  # Implementation  Currently, the proposed implementation is available in the [all-wideint branch] (https://core.tcl.tk/tcl/timeline?r=all-wideint). (WIP)  # Copyright  This document has been placed in the public domain. ```  ```      |                 |   > > > |     |     ```  ```42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 .. 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 ```  ```1 % string is wide 18446744073709551615 1 % string is wide 18446744073709551616 0