@@ -294,7 +294,7 @@ sort ::= core <core:sort>
294
294
| type
295
295
| component
296
296
| instance
297
- inlineexport ::= (export <exportname> <sortidx>)
297
+ inlineexport ::= (export <exportname> <fullversion>? < sortidx>)
298
298
```
299
299
Because component-level function, type and instance definitions are different
300
300
than core-level function, type and instance definitions, they are put into
@@ -574,8 +574,9 @@ instancedecl ::= core-prefix(<core:type>)
574
574
| <alias>
575
575
| <exportdecl>
576
576
| <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>)
579
580
externdesc ::= (<sort> (type <u32>) )
580
581
| core-prefix(<core:moduletype>)
581
582
| <functype>
@@ -2242,8 +2243,8 @@ the identifier `$x`). In the case of exports, the `<id>?` right after the
2242
2243
preceding definition being exported (e.g., ` (export $x "x" (func $f)) ` binds a
2243
2244
new identifier ` $x ` ).
2244
2245
``` 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>?)
2247
2248
```
2248
2249
All import names are required to be [ strongly-unique] . Separately, all export
2249
2250
names are also required to be [ strongly-unique] . The rest of the grammar for
@@ -2283,10 +2284,13 @@ words ::= <word>
2283
2284
| <words> '-' <word>
2284
2285
projection ::= '/' <label>
2285
2286
version ::= '@' <valid semver>
2287
+ | '@' [1-9] [0-9]*
2288
+ | '@0.' [1-9] [0-9]*
2286
2289
depname ::= 'unlocked-dep=<' <pkgnamequery> '>'
2287
2290
| 'locked-dep=<' <pkgname> '>' ( ',' <hashname> )?
2288
2291
pkgnamequery ::= <pkgpath> <verrange>?
2289
- pkgname ::= <pkgpath> <version>?
2292
+ pkgname ::= <pkgpath> <pkgversion>?
2293
+ pkgversion ::= '@' <valid semver>
2290
2294
pkgpath ::= <namespace> <words>
2291
2295
| <namespace>+ <words> <projection>* 🪺
2292
2296
verrange ::= '@*'
0 commit comments