ForNeVeR/Cesium

C23 standard compatibility

ForNeVeR opened this issue · 0 comments

At this point, Cesium aims to be fully C23-compliant. There's a long way ahead, though.

Here, I'll enumerate the standard sections and show their current status. The current version of the standard draft we're working on should be mentioned in the README.

I'll map the standard sections here in a lazy way: i.e. only those sections where certain work is done will be "expanded".

If there's more to say on any particular section than just its name and the implementation status, it'll go to a separate issue.

  • [N/A] 1 Scope
  • [N/A] 2 Normative references
  • [N/A] 3 Terms, definitions, and symbols
  • 4 Conformance: #63
  • 5 Environment
    • 5.1 Conceptual models
      • 5.1.1 Translation environment
      • 5.1.2 Execution environments
    • 5.2 Environmental considerations
      • 5.2.1 Character sets
      • 5.2.2 Character display semantics
      • 5.2.3 Signals and interrupts
      • 5.2.4 Environmental limits
  • 6 Language: #78
    • [N/A] 6.1 Notation
    • 6.2 Concepts
    • 6.3 Conversions
    • 6.4 Lexical elements: #76
    • 6.5 Expressions
    • 6.6 Constant expressions
    • 6.7 Declarations
    • 6.8 Statements and blocks
    • 6.9 External definitions
    • 6.10 Preprocessing directives: #77
    • 6.11 [N/A] Future language directions
  • 7 Library
  • [N/A] Annex A (informative) Language syntax summary
  • [N/A] Annex B (informative) Library summary
  • [N/A] Annex C (informative) Sequence points
  • [N/A] Annex D (informative) Universal character names for identifiers
  • [N/A] Annex E (informative) Implementation limits
  • Annex F (normative) IEC 60559 floating-point arithmetic
  • Annex G (normative) IEC 60559-compatible complex arithmetic
  • Annex H (normative) IEC 60559 interchange and extended types
  • [N/A] Annex I (informative) Common warnings
  • [N/A] Annex J (informative) Portability issues
  • Annex K (normative) Bounds-checking interfaces
  • Annex L (normative) Analyzability
  • [N/A] Annex M (informative) Change History