June 27th, 2024

The C Standard charter was updated, now with security principles as well

The ISO/IEC JTC1/SC22/WG14 committee oversees C Standard development, focusing on portability, efficiency, and stability. Collaboration with the C++ committee ensures compatibility. Principles guide feature integration, code efficiency, security, and adaptability.

Read original articleLink Icon
The C Standard charter was updated, now with security principles as well

The C Standard charter, represented by the ISO/IEC JTC1/SC22/WG14 committee, oversees the development and maintenance of the C programming language. C, a versatile language crucial for system programming, has evolved since its inception on the Unix system for the PDP-11 computer. The committee aims to balance portability, efficiency, and stability while incorporating new ideas without compromising the language's core structure. Collaboration with the C++ committee ensures compatibility between the two languages. When revising C, the committee considers technical corrections, safety-critical software, security issues, and advancements in programming languages and implementations. Guided by principles like upholding the language's character, simplicity, portability, performance, and security, the committee ensures that new features integrate seamlessly, maintain code efficiency, and allow for programming freedom. The principles also emphasize avoiding ambiguities, facilitating migration to newer editions, and enabling secure and functional safety in programming. Additionally, the committee focuses on interoperability, adherence to international standards, and ensuring that C remains a widely implementable and adaptable language across diverse systems and architectures.

Related

A specification for adding human/machine readable meaning to commit messages

A specification for adding human/machine readable meaning to commit messages

The Conventional Commits specification simplifies commit messages for clarity and automation. It categorizes changes, aids in generating changelogs, and promotes organized development practices without strict case sensitivity requirements.

Huawei unveils its own programming language the "Cangjie"

Huawei unveils its own programming language the "Cangjie"

Huawei introduces "Cangjie" programming language at HDC 2024. Promises security, intelligence, and performance. To integrate with HarmonyOS for user-friendly development. Features AgentDSL, supports various styles, type inference, generics, pattern matching. Lightweight, scalable with new garbage collection for improved performance. Developers to explore benefits post-launch.

Cosmopolitan v3.5

Cosmopolitan v3.5

Cosmopolitan Libc transforms C into a universal language by modifying GCC and Clang to create a POSIX-compliant polyglot format. Users can compile programs using the `cosmocc` compiler and access debugging techniques. The project provides platform notes, a Discord chatroom, and funding acknowledgments.

How the STL Uses Explicit

How the STL Uses Explicit

The WG21 meeting in St. Louis discusses a paper on using the `explicit` keyword in C++ proposals to establish a style guide for consistency. Guidelines differ between industry and Standard Library practices.

CISA and Partners Guidance for Memory Safety in Critical Open Source Projects

CISA and Partners Guidance for Memory Safety in Critical Open Source Projects

CISA, FBI, and Australian Cyber Security Centre collaborate on memory safety guidance for open source projects. Emphasizes risk understanding, roadmap creation, and collaboration with the open source community for enhanced cybersecurity.

Link Icon 6 comments
By @dwheeler - 5 months
I appreciate the direct nod to security. But as written I doubt it's enough. The goal is to "enable" secure programming, and C already meets that goal since it is theoretically possible. The problem is that busy human developers are not good at being perfect. There are far more ways to get things wrong, and minor mistakes become far more serious problems in C and C++ compared to other languages. I do wish the group good luck!!
By @davikr - 5 months
> Undefined behaviors, unspecified behaviors, implementation-defined behaviors, and other portability issues enumerated in Annex J of the Standard should be eliminated or reduced.
By @pornel - 5 months
Almost every other principle in the charter can be used to shoot down changes for safety, so I'm afraid the safety part is only wishful thinking, hoping for a Sufficiently Smart Compiler/Analyzer to save them.

The charter also calls for codifying known solutions, and not new inventions. But the known solutions for memory safety require things like more advanced type systems, that aren't in "the character of the language", and aren't "small and simple". Safety could be improved by severely restricting pointers, in conflict with the "programming freedom" principle, and of course performance overheads or backwards-incompatible changes are unacceptable.

So the charter says that C should have a cake and eat it.

By @hgs3 - 5 months
Maybe C will finally get slices.
By @lenerdenator - 5 months
... that wasn't there before?