5 ms·
>musl (used by default on Alpine and Chimera Linux) and the BSD libc’s on the other hand are much more minimal and conservative. Read: slower and with less com
by dralley 3y ago
>musl (used by default on Alpine and Chimera Linux) and the BSD libc’s on the other hand are much more minimal and conservative.
Read: slower and with less comprehensive standards compliance (even if some of those standards are a bit nutty).
- yjftsjthsd-h 3y agoI was under the impression that musl does care about standards compliance, hitting problems mostly when people expect non-standardized behavior.
- saagarjha 3y agoMusl is somewhat the embodiment of malicious compliance to the standard.
- blueflow 3y agomusl has a better track record of standards compliance than glibc. Common method for porting to musl is putting non-standard compliant code into an ifdef glibc.
- kazinator 3y agoCounterexample: musl's crypt() does silly things, like treat all unrecognized inputs as DES, even if the salt characters are invalid.
- q66 3y agoat least it actually supports blowfish
- kelnos 3y agoThis is, of course, the same musl that refused to implement TCP DNS requests until very recently. And they only did so because the DNS standards people got fed up with people not implementing it, and made it a requirement.
- blueflow 3y agoAnd glibc is the one not implementing strlcpy and strlcat until June 2023.
- pantalaimon 3y agostrscpy is the better API anyway
- fanf2 3y agoIt was made a requirement by RFC 7766 in 2016 https://www.rfc-editor.org/rfc/rfc7766#page-6 https://www.rfc-editor.org/rfc/rfc7766#page-6
- smsm42 3y agoI do not know about standards, but I know the only deployment images I have problems all the time with random weird DNS failures are the musl-based ones. No idea what causes it, but makes me wish to get rid of all musl usage just to have stable deployments.
- q66 3y agopretty much the only place where it's meaningfully slower is the allocator (which has a massive impact) so in chimera we have a special musl build that uses llvm's scudo instead (same as e.g. android) and is faster as well as more secure than glibc's allocator the rest is mostly fewer specialized implementations of stuff for different cpus, but that rarely makes a difference in practice (i.e. outside of microbenchmarks) the overall standards compliance is pretty good in musl