On 2015-09-05 17:09, Stefan Behnel wrote:
It now appends the 'U' suffix only to literals that are used in an unsigned
context (e.g. assignment to unsigned variable), and additionally appends
L/LL suffixes for integers that might exceed the int/long limits.

Why not just keep it simple, append no suffixes and let the C/C++ compiler deal with it? No heuristics needed.

More concretely, I would handle this as follows:
* do not use any L or U suffix
* write all DEF constants as hexadecimal in the source code

This way, the C/C++ compiler will determine the integral type. It will use the first type in the following list which can represent the number:
- int
- unsigned int
- long
- unsigned long
- long long
- unsigned long long

The reason for the *hexadecimal* constants is that the unsigned types are not tried for decimal constants.
_______________________________________________
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel

Reply via email to