Codethink recently announced this: https://www.codethink.co.uk/news/trustable-software.html, which is an astounding achievement. Now I was curious... because as a core C library developer I know a thing or two about glibc. In the public Exida certificate they write: "To address weaknesses in Glibc: specification is very stable, essentially POSIX since 80s. Little feature development done here either." Little feature development? As an integrator looking at this certificate... I have questions. @dalias What do you think?
@neal@dalias I think the perceived weakness is that it's written in unmanaged memory unsafe languages e.g. C and assembly. That the specific has been stable is a benefit, any specification that has remained stable long enough become well understood and the misuses well understood. Also without the safety manual we don't know the conditions of use e.g. no pthread condvars. Some APIs also while semantically stable see constant hardware updates e.g. memset.
@codonell@dalias On the other hand, a lot of people consider POSIX a pretty weak foundation to build upon in the first place. The fact that divergent and incompatible C standard library implementations exist while equally conforming to POSIX is somewhat indicative of this.
@codonell@dalias I suppose it depends on whether you consider POSIX a good specification? Or whether the scope and capability of the C standard library is at the right level. I could see how you could view it as a weakness depending on how you answer those questions.
@dalias@neal@codonell Yeah specially when POSIX is about building a portable set of APIs between different implementations, which realistically all have extensions as it's for operating systems APIs. Extensions which then can become standard when shared between multiple implementations (POSIX being pretty descriptive rather than prescriptive).