Skip to content

Commit 819cce7

Browse files
committed
Update examples with output of current implementation
Reflects the progress made on bytecodealliance/wasm-tools#867
1 parent f53ffb3 commit 819cce7

File tree

1 file changed

+31
-27
lines changed

1 file changed

+31
-27
lines changed

design/mvp/WIT.md

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,12 +1124,13 @@ would correspond to:
11241124
(component
11251125
(type (export "host") (component
11261126
(type $types (instance
1127-
(export "level" (type (enum "info" "debug")))
1127+
(type $level (enum "info" "debug"))
1128+
(export "level" (type (eq $level)))
11281129
))
11291130
(export $types "types" (instance (type $types)))
11301131
(alias export $types "level" (type $level))
11311132
(type $console (instance
1132-
(alias outer 1 $level (type $level'))
1133+
(export $level' "level" (type (eq $level)))
11331134
(export "log" (func (param "level" $level') (param "msg" string)))
11341135
))
11351136
(export "console" (instance (type $console)))
@@ -1155,11 +1156,10 @@ would correspond to:
11551156
```wasm
11561157
(component
11571158
(type (export "host") (component
1158-
(type $the-world (component
1159-
(import "test" (func))
1159+
(export "the-world" (component
1160+
(export "test" (func))
11601161
(export "run" (func))
11611162
))
1162-
(export "the-world" (type $the-world))
11631163
))
11641164
)
11651165
```
@@ -1189,12 +1189,11 @@ would correspond to:
11891189
(export "log" (func (param "arg" string)))
11901190
))
11911191
(export "console" (instance (type $console)))
1192-
(type $the-world (component
1192+
(export "the-world" (component
11931193
(import "console" (instance
11941194
(export "log" (func (param "arg" string)))
11951195
))
11961196
))
1197-
(export "the-world" (type $the-world))
11981197
))
11991198
)
12001199
```
@@ -1243,12 +1242,11 @@ would correspond to:
12431242
(type (export "foo") (component
12441243
(import "types" "URL" (instance $types
12451244
(type $some-type ...)
1246-
(export "some-type" (type $some-type))
1245+
(export "some-type" (type (eq $some-type)))
12471246
))
12481247
(alias export $types "some-type" (type $some-type))
12491248
(type $foo (instance
1250-
(alias outer 1 $some-type (type $some-type'))
1251-
(export "some-type" (type $some-type'))
1249+
(export "some-type" (type (eq $some-type)))
12521250
))
12531251
(export "foo" (instance (type $foo)))
12541252
))
@@ -1291,54 +1289,60 @@ and its corresponding binary encoding would be:
12911289
;; corresponds to `wit/types.wit`
12921290
(type (export "types") (component
12931291
(export "types" (instance
1294-
(export "request" (type (sub resource)))
1295-
(export "response" (type (sub resource)))
1292+
(type $request (record))
1293+
(type $response (record))
1294+
(export "request" (type (eq $request)))
1295+
(export "response" (type (eq $response)))
12961296
))
12971297
))
12981298
;; corresponds to `wit/handler.wit`
12991299
(type (export "handler") (component
13001300
;; interfaces not required in a document are imported here. The name "types"
13011301
;; with no URL refers to the `types` document in this package.
1302-
(import "types" (instance $types
1303-
(export "request" (type (sub resource)))
1304-
(export "response" (type (sub resource)))
1302+
(import "types" "pkg:/types/types" (instance $types
1303+
(type $request (record))
1304+
(type $response (record))
1305+
(export "request" (type (eq $request)))
1306+
(export "response" (type (eq $response)))
13051307
))
13061308
13071309
;; aliases represent `use` from the imported document
13081310
(alias export $types "request" (type $request))
13091311
(alias export $types "response" (type $response))
13101312
(export "handler" (instance
1311-
(export $request' "request" (type $request))
1312-
(export $response' "response" (type $response))
1313-
(export "handle" (func (param (own $request')) (result (own $response'))))
1313+
(export $request' "request" (type (eq $request)))
1314+
(export $response' "response" (type (eq $response)))
1315+
(export "handle" (func (param "request" $request') (result $response')))
13141316
))
13151317
))
13161318
;; corresponds to `wit/proxy.wit`
13171319
(type (export "proxy") (component
13181320
(export "proxy" (component
13191321
;; This world transitively depends on "types" so it's listed as an
13201322
;; import.
1321-
(import "types" (instance $types
1322-
(export "request" (type (sub resource)))
1323-
(export "response" (type (sub resource)))
1323+
(import "types" "pkg:/types/types" (instance $types
1324+
(type $request (record))
1325+
(type $response (record))
1326+
(export "request" (type (eq $request)))
1327+
(export "response" (type (eq $response)))
13241328
))
13251329
(alias export $types "request" (type $request))
13261330
(alias export $types "response" (type $response))
13271331
13281332
;; This is filled in with the contents of what `wasi-logging.backend`
13291333
;; resolved to
1330-
(import "console" "URL-for-wasi-logging.backend" (instance
1331-
...
1334+
(import "console" "dep:/foo/bar/baz" (instance
1335+
;; ...
13321336
))
1333-
(import "origin" (instance
1337+
(import "origin" "pkg:/handler/handler" (instance
13341338
(export $request' "request" (type (eq $request)))
13351339
(export $response' "response" (type (eq $response)))
1336-
(export "handle" (func (param (own $request)) (result (own $response))))
1340+
(export "handle" (func (param "request" $request') (result $response')))
13371341
))
1338-
(export "handler" (instance $handler
1342+
(export "handler" "pkg:/handler/handler" (instance
13391343
(export $request' "request" (type (eq $request)))
13401344
(export $response' "response" (type (eq $response)))
1341-
(export "handle" (func (param (own $request')) (result (own $response'))))
1345+
(export "handle" (func (param "request" $request') (result $response')))
13421346
))
13431347
))
13441348
))

0 commit comments

Comments
 (0)