On Sun, 12 Dec 2021 08:59:04 +0100
Laslo Hunhold <[email protected]> wrote:

Dear Michael,

> Two questions remain:
> 
>  1) Would you also go down the route of just demanding an array of
>     unsigned integers of at least 8 bits?
>  2) Would you define it as "unsigned char *" or "uint_least8_t *"?
>     I'd almost favor the latter, given the entire library is already
>     using the stdint-types.

and there's also POSIX to think about. Given we're using POSIX
interfaces all over libgrapheme and POSIX states "(The POSIX standard
explicitly requires 8-bit char and two's-complement arithmetic.)"[0],
maybe simply going with "uint8_t *" is the real deal.

This still justifies the use of uint_least32_t, as POSIX does not
mandate uint32_t to exist, but we can legally assume an 8-bit-type
exists. This might be stronger to convey in the API using the explicit
uint8_t rather than using "unsigned char", which still has all the
"legacy" attached to it, and FFIs have no open questions about what we
are accepting.

With best regards

Laslo

[0]:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html

Reply via email to