Fixed caching of kernels that use target-specific overloads
Caching of kernels using target-specific overloads now works. This includes use
of cooperative group sync, which is now implemented with a target-specific overload.
Fix issues with np.searchsorted not handling np.datetime64
This patch fixes two issues with np.searchsorted. First, a regression is
fixed in the support of np.datetime64. Second, adopt NAT-aware
comparisons to fix mishandling of NAT value.
Allow use of Python 3.12 PEP-695 type parameter syntax
A patch is added to properly parse the PEP 695 syntax. While Numba
does not yet take advantage of type parameters, it will no longer erroneously
reject functions defined with the new Python 3.12 syntax.