Tcl currently has this code in pge2past.tg:
$S0 = node['decimal']
$I0 = length $S0
if $I0 < 10 goto decimal
if $I0 > 10 goto bignum_hack
if $S0 >= "2147483647" goto bignum_hack
decimal:
$S0 = node
past['value'] = $S0
past['class'] = "TclInt"
.return (past)
bignum_hack:
past['value'] = 0
past['class'] = "TclInt"
.return(past)
This checks if the value is too big to be represented by a normal
integer. If it is, then it sets the value to zero. This makes any
tests fail, but it makes them at least compile. It shouldn't be too
much harder to make numbers promote properly.
--
Matt Diephouse