In Tcl releases 8.5.0 through 8.5.7, the public header file tcl.h contains the typedef:
typedef unsigned long mp_digit;
Starting in Tcl 8.5.8, this is changed to:
typedef unsigned int mp_digit;
The purpose of this page is to discuss what incompatibilities this may introduce for C code that uses the Tcl public interface, and how to manage them.
First, note that on many (32-bit) systems, long and int are just two names for the same thing. If your C code is only ever compiled on such systems, the change is not really a change at all, and you have no compatibility issues to worry about.
For C code that does get compiled for L64 systems, read on...