Sometimes I have to dig very deep to find that what folks call "portable C" is actually POSIX-dependent.
It doesn't appear to be the case after going through the code for a bit, so that's promising.
Sometimes I have to dig very deep to find that what folks call "portable C" is actually POSIX-dependent.
It doesn't appear to be the case after going through the code for a bit, so that's promising.
[1] https://github.com/bellard/quickjs/blob/master/libunicode.c
[2] https://github.com/svaarala/duktape/blob/master/src-input/du...
On the contrary, every single programming language and platform should by default include ICU and provide easy bindings to its functionality. Because even normalization and equality comparisons are often done poorly or not at all in these "simple" libraries.
It gets updated quite often, and changes between versions can be substantial. If the developer cares about correctness, they need to have explicit control over the actual version of ICU they're bundling, instead of having the language/platform dealing with it as a black box.
It can be argued that in such cases they can always bundle their own custom version, but then the argument boils down to whether it's better to assure the developer that it works automagically even though it's only correct 99% of the time, or whether to not provide a default implementation and risk them choosing to implement a poor one themselves?