def determine_64_bit_int():
    """
    The only configuration parameter needed at compile-time is how to
    specify a 64-bit signed integer.  Python's ctypes module can get us
    that information.
    If we can't be absolutely certain, we default to "long long int",
    which is correct on most platforms (x86, x86_64).  If we find
    platforms where this heuristic doesn't work, we may need to
    hardcode for them.
    """
    try:
        try:
            import ctypes
        except ImportError:
            raise ValueError()
        if ctypes.sizeof(ctypes.c_longlong) == 8:
            return 'long long int'
        elif ctypes.sizeof(ctypes.c_long) == 8:
            return 'long int'
        elif ctypes.sizeof(ctypes.c_int) == 8:
            return 'int'
        else:
            raise ValueError()
    except ValueError:
        return 'long long int'
