4 Conformance

4.1 Conforming implementation

A conforming implementation of Ori is one that accepts and correctly executes any conforming program, subject only to resource limitations.

A conforming implementation shall:

  • accept all conforming programs;
  • reject all non-conforming programs with appropriate diagnostics;
  • produce the behavior specified by this document for all conforming programs.

4.2 Conforming program

A conforming program is one that is accepted by a conforming implementation and whose behavior is fully defined by this document.

4.3 Extensions

A conforming implementation may have extensions, provided they do not alter the behavior of any conforming program.

4.4 Implementation-defined behavior

Certain aspects of this specification are described as implementation-defined. A conforming implementation shall document its choices for all implementation-defined behavior.

4.5 Undefined behavior

Ori is designed to minimize undefined behavior. Where this document does not specify behavior, a conforming implementation shall either:

  • reject the program with a diagnostic; or
  • produce a panic at run time.

Silent undefined behavior is not permitted in a conforming implementation.