kobako 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +30 -0
- data/Cargo.lock +3 -3
- data/README.md +3 -3
- data/ROADMAP.md +26 -0
- data/crates/kobako-runtime/CHANGELOG.md +7 -0
- data/crates/kobako-runtime/Cargo.toml +1 -1
- data/crates/kobako-runtime/README.md +1 -1
- data/crates/kobako-runtime/src/error.rs +8 -0
- data/crates/kobako-wasmtime/CHANGELOG.md +7 -0
- data/crates/kobako-wasmtime/Cargo.toml +2 -2
- data/crates/kobako-wasmtime/README.md +1 -1
- data/crates/kobako-wasmtime/src/driver.rs +1 -1
- data/crates/kobako-wasmtime/src/frames.rs +1 -1
- data/crates/kobako-wasmtime/src/instance_pre.rs +7 -6
- data/crates/kobako-wasmtime/src/invocation.rs +4 -5
- data/crates/kobako-wasmtime/src/trap.rs +42 -21
- data/data/kobako.wasm +0 -0
- data/ext/kobako/Cargo.toml +1 -1
- data/lib/kobako/catalog/handles.rb +2 -2
- data/lib/kobako/catalog/namespaces.rb +2 -2
- data/lib/kobako/catalog/snippets.rb +1 -1
- data/lib/kobako/codec/decoder.rb +7 -7
- data/lib/kobako/codec/encoder.rb +2 -2
- data/lib/kobako/codec/error.rb +3 -3
- data/lib/kobako/codec/factory.rb +10 -10
- data/lib/kobako/codec/handle_walk.rb +17 -21
- data/lib/kobako/codec/utils.rb +9 -9
- data/lib/kobako/codec.rb +3 -3
- data/lib/kobako/errors.rb +14 -39
- data/lib/kobako/handle.rb +5 -2
- data/lib/kobako/namespace.rb +3 -3
- data/lib/kobako/outcome.rb +1 -0
- data/lib/kobako/sandbox.rb +10 -12
- data/lib/kobako/transport/dispatcher.rb +17 -14
- data/lib/kobako/transport/request.rb +2 -2
- data/lib/kobako/transport/response.rb +2 -2
- data/lib/kobako/transport/run.rb +1 -1
- data/lib/kobako/transport/yield.rb +3 -3
- data/lib/kobako/transport/yielder.rb +6 -6
- data/lib/kobako/version.rb +1 -1
- data/release-please-config.json +37 -7
- data/sig/kobako/codec/handle_walk.rbs +2 -2
- data/sig/kobako/codec.rbs +11 -0
- data/sig/kobako/handle.rbs +0 -2
- data/sig/kobako/transport/dispatcher.rbs +8 -8
- data/sig/kobako/transport/run.rbs +1 -1
- data/sig/kobako/transport/yielder.rbs +2 -2
- data/sig/kobako/transport.rbs +8 -0
- metadata +2 -1
data/release-please-config.json
CHANGED
|
@@ -29,28 +29,28 @@
|
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
},
|
|
32
|
-
"wasm/kobako": {
|
|
33
|
-
"component": "kobako-
|
|
32
|
+
"wasm/kobako-mruby": {
|
|
33
|
+
"component": "kobako-mruby",
|
|
34
34
|
"release-type": "rust",
|
|
35
35
|
"extra-files": [
|
|
36
36
|
{
|
|
37
37
|
"type": "toml",
|
|
38
38
|
"path": "/wasm/Cargo.lock",
|
|
39
|
-
"jsonpath": "$.package[?(@.name=='kobako')].version"
|
|
39
|
+
"jsonpath": "$.package[?(@.name=='kobako-mruby')].version"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"type": "toml",
|
|
43
|
-
"path": "/wasm/kobako/Cargo.toml",
|
|
43
|
+
"path": "/wasm/kobako-mruby/Cargo.toml",
|
|
44
44
|
"jsonpath": "$.dependencies['kobako-core'].version"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"type": "toml",
|
|
48
|
-
"path": "/wasm/kobako/Cargo.toml",
|
|
48
|
+
"path": "/wasm/kobako-mruby/Cargo.toml",
|
|
49
49
|
"jsonpath": "$.dependencies['kobako-codec'].version"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"type": "generic",
|
|
53
|
-
"path": "/wasm/kobako/README.md"
|
|
53
|
+
"path": "/wasm/kobako-mruby/README.md"
|
|
54
54
|
}
|
|
55
55
|
]
|
|
56
56
|
},
|
|
@@ -178,13 +178,43 @@
|
|
|
178
178
|
"path": "/crates/kobako-wasmtime/README.md"
|
|
179
179
|
}
|
|
180
180
|
]
|
|
181
|
+
},
|
|
182
|
+
"crates/kobako": {
|
|
183
|
+
"component": "kobako-sdk",
|
|
184
|
+
"release-type": "rust",
|
|
185
|
+
"extra-files": [
|
|
186
|
+
{
|
|
187
|
+
"type": "toml",
|
|
188
|
+
"path": "/crates/Cargo.lock",
|
|
189
|
+
"jsonpath": "$.package[?(@.name=='kobako')].version"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"type": "toml",
|
|
193
|
+
"path": "/crates/kobako/Cargo.toml",
|
|
194
|
+
"jsonpath": "$.dependencies['kobako-codec'].version"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"type": "toml",
|
|
198
|
+
"path": "/crates/kobako/Cargo.toml",
|
|
199
|
+
"jsonpath": "$.dependencies['kobako-runtime'].version"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"type": "toml",
|
|
203
|
+
"path": "/crates/kobako/Cargo.toml",
|
|
204
|
+
"jsonpath": "$.dependencies['kobako-wasmtime'].version"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "generic",
|
|
208
|
+
"path": "/crates/kobako/README.md"
|
|
209
|
+
}
|
|
210
|
+
]
|
|
181
211
|
}
|
|
182
212
|
},
|
|
183
213
|
"plugins": [
|
|
184
214
|
{
|
|
185
215
|
"type": "linked-versions",
|
|
186
216
|
"groupName": "kobako crates",
|
|
187
|
-
"components": ["kobako-codec", "kobako-core", "kobako-
|
|
217
|
+
"components": ["kobako-codec", "kobako-core", "kobako-mruby", "kobako-io", "kobako-json", "kobako-regexp", "kobako-baker", "kobako-runtime", "kobako-wasmtime", "kobako-sdk"]
|
|
188
218
|
}
|
|
189
219
|
],
|
|
190
220
|
"extra-files": [
|
|
@@ -5,9 +5,9 @@ module Kobako
|
|
|
5
5
|
|
|
6
6
|
def self?.representable?: (untyped value) -> bool
|
|
7
7
|
|
|
8
|
-
def self?.deep_wrap: (untyped value, Kobako::
|
|
8
|
+
def self?.deep_wrap: (untyped value, Kobako::Codec::_HandleTable handler) -> untyped
|
|
9
9
|
|
|
10
|
-
def self?.deep_restore: (untyped value, Kobako::
|
|
10
|
+
def self?.deep_restore: (untyped value, Kobako::Codec::_HandleTable handler) -> untyped
|
|
11
11
|
|
|
12
12
|
def self?.primitive_type?: (untyped value) -> bool
|
|
13
13
|
|
data/sig/kobako/codec.rbs
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
module Kobako
|
|
2
2
|
module Codec
|
|
3
|
+
# The Handle allocator/resolver a wire walk works against: alloc
|
|
4
|
+
# registers a non-wire-representable object and returns its Handle,
|
|
5
|
+
# fetch resolves a wire Handle id back to the live object. The
|
|
6
|
+
# Sandbox's Kobako::Catalog::Handles is the production conformer;
|
|
7
|
+
# modelled structurally so the Codec and Transport tiers need no
|
|
8
|
+
# upward dependency on Catalog.
|
|
9
|
+
interface _HandleTable
|
|
10
|
+
def alloc: (untyped object) -> Kobako::Handle
|
|
11
|
+
|
|
12
|
+
def fetch: (Integer id) -> untyped
|
|
13
|
+
end
|
|
3
14
|
end
|
|
4
15
|
end
|
data/sig/kobako/handle.rbs
CHANGED
|
@@ -12,9 +12,9 @@ module Kobako
|
|
|
12
12
|
|
|
13
13
|
CALLABLE_ALLOW: Array[Symbol]
|
|
14
14
|
|
|
15
|
-
def self?.dispatch: (String request_bytes, Kobako::
|
|
15
|
+
def self?.dispatch: (String request_bytes, Kobako::Transport::_NamespaceRegistry namespaces, Kobako::Codec::_HandleTable handler, Kobako::Transport::_GuestYielder yield_to_guest) -> String
|
|
16
16
|
|
|
17
|
-
def self?.resolve_call_args: (Kobako::Transport::Request request, Kobako::
|
|
17
|
+
def self?.resolve_call_args: (Kobako::Transport::Request request, Kobako::Codec::_HandleTable handler) -> [Array[untyped], Hash[Symbol, untyped]]
|
|
18
18
|
|
|
19
19
|
def self?.encode_caught_error: (StandardError error) -> String
|
|
20
20
|
|
|
@@ -24,17 +24,17 @@ module Kobako
|
|
|
24
24
|
|
|
25
25
|
def self?.reject_unexposed!: (untyped target, Symbol name) -> void
|
|
26
26
|
|
|
27
|
-
def self?.resolve_arg: (untyped value, Kobako::
|
|
27
|
+
def self?.resolve_arg: (untyped value, Kobako::Codec::_HandleTable handler) -> untyped
|
|
28
28
|
|
|
29
|
-
def self?.resolve_target: (String | Kobako::Handle target, Kobako::
|
|
29
|
+
def self?.resolve_target: (String | Kobako::Handle target, Kobako::Transport::_NamespaceRegistry namespaces, Kobako::Codec::_HandleTable handler) -> untyped
|
|
30
30
|
|
|
31
|
-
def self?.resolve_path: (String path, Kobako::
|
|
31
|
+
def self?.resolve_path: (String path, Kobako::Transport::_NamespaceRegistry namespaces) -> untyped
|
|
32
32
|
|
|
33
|
-
def self?.require_live_object!: (Integer id, Kobako::
|
|
33
|
+
def self?.require_live_object!: (Integer id, Kobako::Codec::_HandleTable handler) -> untyped
|
|
34
34
|
|
|
35
|
-
def self?.encode_ok: (untyped value, Kobako::
|
|
35
|
+
def self?.encode_ok: (untyped value, Kobako::Codec::_HandleTable handler) -> String
|
|
36
36
|
|
|
37
|
-
def self?.wrap_as_handle: (untyped value, Kobako::
|
|
37
|
+
def self?.wrap_as_handle: (untyped value, Kobako::Codec::_HandleTable handler) -> Kobako::Handle
|
|
38
38
|
|
|
39
39
|
def self?.encode_error: (String type, String message) -> String
|
|
40
40
|
end
|
|
@@ -11,7 +11,7 @@ module Kobako
|
|
|
11
11
|
|
|
12
12
|
def initialize: (entrypoint: Symbol | String, ?args: Array[untyped], ?kwargs: Hash[untyped, untyped]) -> void
|
|
13
13
|
|
|
14
|
-
def encode: (Kobako::
|
|
14
|
+
def encode: (Kobako::Codec::_HandleTable handler) -> String
|
|
15
15
|
|
|
16
16
|
private
|
|
17
17
|
|
|
@@ -3,10 +3,10 @@ module Kobako
|
|
|
3
3
|
class Yielder
|
|
4
4
|
@yield_to_guest: Kobako::Transport::_GuestYielder
|
|
5
5
|
@break_tag: Symbol
|
|
6
|
-
@handler: Kobako::
|
|
6
|
+
@handler: Kobako::Codec::_HandleTable
|
|
7
7
|
@active: bool
|
|
8
8
|
|
|
9
|
-
def initialize: (Kobako::Transport::_GuestYielder yield_to_guest, Symbol break_tag, Kobako::
|
|
9
|
+
def initialize: (Kobako::Transport::_GuestYielder yield_to_guest, Symbol break_tag, Kobako::Codec::_HandleTable handler) -> void
|
|
10
10
|
|
|
11
11
|
def yield: (*untyped args) -> untyped
|
|
12
12
|
|
data/sig/kobako/transport.rbs
CHANGED
|
@@ -8,5 +8,13 @@ module Kobako
|
|
|
8
8
|
interface _GuestYielder
|
|
9
9
|
def call: (String) -> String
|
|
10
10
|
end
|
|
11
|
+
|
|
12
|
+
# The Service registry a dispatch resolves constant-path targets
|
|
13
|
+
# against. The Sandbox's Kobako::Catalog::Namespaces is the
|
|
14
|
+
# production conformer; modelled structurally so the Transport
|
|
15
|
+
# layer needs no upward dependency on Catalog.
|
|
16
|
+
interface _NamespaceRegistry
|
|
17
|
+
def lookup: (String target) -> untyped
|
|
18
|
+
end
|
|
11
19
|
end
|
|
12
20
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kobako
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aotokitsuruya
|
|
@@ -53,6 +53,7 @@ files:
|
|
|
53
53
|
- Cargo.toml
|
|
54
54
|
- LICENSE
|
|
55
55
|
- README.md
|
|
56
|
+
- ROADMAP.md
|
|
56
57
|
- SECURITY.md
|
|
57
58
|
- crates/kobako-runtime/CHANGELOG.md
|
|
58
59
|
- crates/kobako-runtime/Cargo.toml
|