diff --git a/design/mvp/Binary.md b/design/mvp/Binary.md index 3a2fa83b..f1081e49 100644 --- a/design/mvp/Binary.md +++ b/design/mvp/Binary.md @@ -228,8 +228,8 @@ instancedecl ::= 0x00 t: => t | 0x01 t: => t | 0x02 a: => a | 0x04 ed: => ed -importdecl ::= in: ed: => (import in ed) -exportdecl ::= en: ed: => (export en ed) +importdecl ::= in: ed: => (import in ed) +exportdecl ::= en: ed: => (export en ed) externdesc ::= 0x00 0x11 i: => (core module (type i)) | 0x01 i: => (func (type i)) | 0x02 b: => (value b) 🪙 @@ -386,13 +386,15 @@ flags are set. (See [Import and Export Definitions](Explainer.md#import-and-export-definitions) in the explainer.) ```ebnf -import ::= in: ed: => (import in ed) -export ::= en: si: ed?:? => (export en si ed?) -importname' ::= 0x00 len: in: => in (if len = |in|) - | 0x01 len: in: vs: => in vs (if len = |in|) 🔗 -exportname' ::= 0x00 len: en: => en (if len = |en|) - | 0x01 len: en: vs: => in vs (if len = |in|) 🔗 -versionsuffix' ::= len: vs: => (versionsuffix vs) (if len = |vs|) 🔗 +import ::= in: ed: => (import in ed) +export ::= en: si: ed?:? => (export en si ed?) +importname ::= 0x00 len: in: => in (if len = |in|) + | 0x01 len: in: => in (if len = |in|) + | 0x02 len: in: vs: => in vs (if len = |in|) 🔗 +exoprtname ::= 0x00 len: in: => in (if len = |in|) + | 0x01 len: in: => in (if len = |in|) + | 0x02 len: in: vs: => in vs (if len = |in|) 🔗 +versionsuffix ::= len: vs: => (versionsuffix vs) (if len = |vs|) 🔗 ``` Notes: @@ -406,6 +408,8 @@ Notes: of the inferred `externdesc` of the `sortidx`. * `` and `` refer to the productions defined in the [text format](Explainer.md#import-and-export-definitions). +* `` and `` will [be cleaned up for a 1.0 + release](##binary-format-warts-to-fix-in-a-10-release). * The ``s of a component must all be [strongly-unique]. Separately, the ``s of a component must also all be [strongly-unique]. * Validation requires that annotated `plainname`s only occur on `func` imports @@ -519,9 +523,9 @@ named once. * The two `depname` cases should be merged into one (`dep=<...>`) * The two `list` type codes should be merged into one with an optional immediate and similarly for `func`. -* The `0x00` variant of `importname'` and `exportname'` will be removed. Any - remaining variant(s) will be renumbered or the prefix byte will be removed or - repurposed. +* The `0x00` and `0x01` variant of `importname` and `exportname` will be + removed. Any remaining variant(s) will be renumbered or the prefix byte will + be removed or repurposed. * Most built-ins should have a `*` immediate instead of an ad hoc subset of `canonopt`s. * Add optional `shared` immediate to all canonical definitions (explicitly or