50 lines
2.1 KiB
ReStructuredText
50 lines
2.1 KiB
ReStructuredText
Proposed source-7 clarification — pending integration
|
|
===================================================
|
|
|
|
This is a proposed replacement for the DataTypeDefinition table in
|
|
``docs/language.rst`` section 4.5, plus a clarification of the Legacy port
|
|
paragraph in section 4. Windows admission-1 passed ten focused tests on
|
|
2026-09-13; the linked evidence report defines their limits. Peer integration
|
|
and incorporation into the reference remain pending. It changes no parser
|
|
behavior.
|
|
|
|
.. list-table:: Reusable definitions
|
|
:header-rows: 1
|
|
|
|
* - Constructor
|
|
- Required fields when this constructor is selected
|
|
- Fields permitted to be omitted in source 7
|
|
* - Boolean
|
|
- None
|
|
- None
|
|
* - Integer
|
|
- None
|
|
- ``minimum``, ``maximum``: optional signed 64-bit integers; each defaults to ``none``
|
|
* - Real
|
|
- None
|
|
- ``minimum``, ``maximum``: optional finite IEEE-754 binary64 values; each defaults to ``none``
|
|
* - String
|
|
- ``minimum_length``: u32
|
|
- ``maximum_length``: optional u32; defaults to ``none``
|
|
* - Enumeration
|
|
- ``literals``: unique nonempty, case-sensitive strings
|
|
- None
|
|
* - Record
|
|
- None
|
|
- ``supertype``: same-layer Record ref?; defaults to ``none``
|
|
|
|
These are selected-constructor contracts. Omitting an entire DataType
|
|
``definition`` uses the declaration default, String with minimum length 0 and
|
|
no maximum. Selecting ``String {}`` instead MUST reject because its required
|
|
``minimum_length`` is absent. Explicit ``none`` remains accepted for nullable
|
|
fields. Unknown and duplicate fields still reject. These omission rules do not
|
|
make all nullable fields in every constructor omissible.
|
|
|
|
For a supplied ``legacy`` port record, ``direction`` is required; ``interface``
|
|
may be omitted and then means ``none``. For example,
|
|
``legacy { direction InOut; };`` and
|
|
``legacy { direction InOut; interface none; };`` describe the same legacy record.
|
|
``contract Legacy`` remains explicit, and model validation requires the legacy
|
|
record for that contract. The omission permission does not supply a missing direction or remove
|
|
port ownership and compatibility checks.
|