|
Hi all,
I'm Fikret Güney Ersezer, and I'd like to introduce a new project proposal that has just been made public for community review:
Eclipse Canon-C.
Canon-C is a header-only semantic standard library for C99, designed around explicit ownership, predictable allocation, and formal verification. The goal is not to add new functionality to C, but to make program intent — ownership, lifetime, failure, and data
flow — visible directly at call sites, so that safety-critical C code is easier to read, reason about, and verify.
The project is targeted at the IoT and embedded space, with particular attention to RTOS and bare-metal environments.
What may interest this list specifically:
The substrate (core/primitives/ and some parts of core/) is formally verified using Frama-C WP with ACSL contracts. CI enforces named-residual invariants on every push to master — verification status is encoded as a contract, not a
soft target. Current state: 5 headers verified, ~4800 proof obligations, ~99% discharged automatically, with all unproved goals documented in a deviations record with manual proof arguments. The aim is to provide a reusable substrate that reduces the verification
burden for application code targeting DO-178C, ISO 26262, IEC 62304, and similar standards.
The proposal is now in community review (minimum 2 weeks per the EDP). Feedback, questions, and concerns from the ThreadX community would be very welcome — particularly from anyone with experience integrating verification-grade libraries into RTOS-based products,
or anyone who sees gaps where Canon-C's conventions wouldn't fit their workflow.
Best regards,
Fikret Güney Ersezer
|