@@ -294,7 +294,7 @@ sort ::= core <core:sort>
294294 | type
295295 | component
296296 | instance
297- inlineexport ::= (export <exportname> <sortidx>)
297+ inlineexport ::= (export <exportname> <fullversion>? < sortidx>)
298298```
299299Because component-level function, type and instance definitions are different
300300than core-level function, type and instance definitions, they are put into
@@ -574,8 +574,9 @@ instancedecl ::= core-prefix(<core:type>)
574574 | <alias>
575575 | <exportdecl>
576576 | <value> 🪙
577- importdecl ::= (import <importname> bind-id(<externdesc>))
578- exportdecl ::= (export <exportname> bind-id(<externdesc>))
577+ importdecl ::= (import <importname> <fullversion>? bind-id(<externdesc>))
578+ exportdecl ::= (export <exportname> <fullversion>? bind-id(<externdesc>))
579+ fullversion ::= (fullversion <valid semver>)
579580externdesc ::= (<sort> (type <u32>) )
580581 | core-prefix(<core:moduletype>)
581582 | <functype>
@@ -2242,8 +2243,8 @@ the identifier `$x`). In the case of exports, the `<id>?` right after the
22422243preceding definition being exported (e.g., ` (export $x "x" (func $f)) ` binds a
22432244new identifier ` $x ` ).
22442245``` ebnf
2245- import ::= (import "<importname>" bind-id(<externdesc>))
2246- export ::= (export <id>? "<exportname>" <sortidx> <externdesc>?)
2246+ import ::= (import "<importname>" <fullversion>? bind-id(<externdesc>))
2247+ export ::= (export <id>? "<exportname>" <fullversion>? < sortidx> <externdesc>?)
22472248```
22482249All import names are required to be [ strongly-unique] . Separately, all export
22492250names are also required to be [ strongly-unique] . The rest of the grammar for
@@ -2283,10 +2284,13 @@ words ::= <word>
22832284 | <words> '-' <word>
22842285projection ::= '/' <label>
22852286version ::= '@' <valid semver>
2287+ | '@' [1-9] [0-9]*
2288+ | '@0.' [1-9] [0-9]*
22862289depname ::= 'unlocked-dep=<' <pkgnamequery> '>'
22872290 | 'locked-dep=<' <pkgname> '>' ( ',' <hashname> )?
22882291pkgnamequery ::= <pkgpath> <verrange>?
2289- pkgname ::= <pkgpath> <version>?
2292+ pkgname ::= <pkgpath> <pkgversion>?
2293+ pkgversion ::= '@' <valid semver>
22902294pkgpath ::= <namespace> <words>
22912295 | <namespace>+ <words> <projection>* 🪺
22922296verrange ::= '@*'
0 commit comments