In today's call we discussed that the current Array API standard does not regulate the default integer and floating-point types across all implementations, only that each implementation should pick one, document clearly and stick to it. However, this is not strong enough, as there could be cross-platform/portability issues.
For example, NumPy is inconsistent in handling the Python integers between Windows and Linux:
import numpy as np
a = np.arange(10, dtype=int)
a.dtype # np.int32 on Windows, np.int64 on Linux
Similar issues can be found in other APIs.
It's worth noting that as pointed out by @kgryte, the standard does not permit passing dtype=int to most of the functions, so this could eliminate a large class of such inconsistencies. But it's still good to be explicit in the standard to ensure portability.
In today's call we discussed that the current Array API standard does not regulate the default integer and floating-point types across all implementations, only that each implementation should pick one, document clearly and stick to it. However, this is not strong enough, as there could be cross-platform/portability issues.
For example, NumPy is inconsistent in handling the Python integers between Windows and Linux:
Similar issues can be found in other APIs.
It's worth noting that as pointed out by @kgryte, the standard does not permit passing
dtype=intto most of the functions, so this could eliminate a large class of such inconsistencies. But it's still good to be explicit in the standard to ensure portability.