kobako 0.23.0 → 0.26.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 +89 -0
- data/Cargo.lock +156 -110
- data/README.md +19 -18
- data/ROADMAP.md +12 -12
- data/crates/kobako-runtime/CHANGELOG.md +14 -0
- data/crates/kobako-runtime/Cargo.toml +2 -2
- data/crates/kobako-runtime/README.md +1 -1
- data/crates/kobako-runtime/src/profile.rs +2 -2
- data/crates/kobako-transport/CHANGELOG.md +14 -0
- data/crates/kobako-transport/Cargo.toml +1 -1
- data/crates/kobako-transport/README.md +1 -1
- data/crates/kobako-transport/src/abi.rs +2 -0
- data/crates/kobako-transport/src/envelope/bytes.rs +6 -0
- data/crates/kobako-transport/src/envelope/call.rs +9 -0
- data/crates/kobako-transport/src/envelope/error_record.rs +3 -0
- data/crates/kobako-transport/src/envelope/fault.rs +5 -0
- data/crates/kobako-transport/src/envelope/invocation_frames.rs +9 -0
- data/crates/kobako-transport/src/envelope/outcome.rs +11 -0
- data/crates/kobako-transport/src/envelope/reply.rs +9 -0
- data/crates/kobako-transport/src/envelope/run.rs +3 -0
- data/crates/kobako-wasmtime/CHANGELOG.md +16 -0
- data/crates/kobako-wasmtime/Cargo.toml +5 -5
- data/crates/kobako-wasmtime/README.md +1 -1
- data/crates/kobako-wasmtime/src/ambient.rs +2 -0
- data/crates/kobako-wasmtime/src/capture.rs +8 -0
- data/crates/kobako-wasmtime/src/frames.rs +3 -1
- data/crates/kobako-wasmtime/src/guest_mem.rs +8 -0
- data/crates/kobako-wasmtime/src/invocation.rs +10 -0
- data/crates/kobako-wasmtime/src/trap.rs +6 -0
- data/data/kobako.wasm +0 -0
- data/ext/kobako/Cargo.toml +1 -1
- data/lib/kobako/capture.rb +8 -22
- data/lib/kobako/catalog/handles.rb +33 -9
- data/lib/kobako/catalog/services.rb +9 -7
- data/lib/kobako/codec/encoder.rb +4 -13
- data/lib/kobako/codec/handle_walk.rb +1 -1
- data/lib/kobako/codec/nesting.rb +43 -0
- data/lib/kobako/codec.rb +4 -2
- data/lib/kobako/context.rb +8 -8
- data/lib/kobako/handle.rb +10 -40
- data/lib/kobako/sandbox.rb +5 -0
- data/lib/kobako/transport/dispatcher.rb +29 -26
- data/lib/kobako/transport/exposure.rb +100 -0
- data/lib/kobako/transport/reflection.rb +19 -20
- data/lib/kobako/transport/run.rb +5 -2
- data/lib/kobako/transport/yielder.rb +6 -4
- data/lib/kobako/transport.rb +4 -2
- data/lib/kobako/usage.rb +11 -22
- data/lib/kobako/version.rb +1 -1
- data/release-please-config.json +1 -1
- data/sig/kobako/catalog/handles.rbs +2 -0
- data/sig/kobako/catalog/services.rbs +1 -1
- data/sig/kobako/codec/nesting.rbs +9 -0
- data/sig/kobako/context.rbs +1 -1
- data/sig/kobako/transport/dispatcher.rbs +7 -7
- data/sig/kobako/transport/exposure.rbs +43 -0
- data/sig/kobako/transport/reflection.rbs +1 -3
- data/sig/kobako/transport.rbs +11 -1
- metadata +5 -1
data/sig/kobako/context.rbs
CHANGED
|
@@ -9,7 +9,7 @@ module Kobako
|
|
|
9
9
|
|
|
10
10
|
def bind: (Symbol | String path, untyped object) -> self
|
|
11
11
|
|
|
12
|
-
def lookup: (Symbol | String path) ->
|
|
12
|
+
def lookup: (Symbol | String path) -> Kobako::Transport::Exposure
|
|
13
13
|
|
|
14
14
|
def eval: (String code) ?{ (Kobako::Context) -> void } -> Kobako::Execution
|
|
15
15
|
|
|
@@ -14,9 +14,9 @@ module Kobako
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
def self?.dispatch: (Kobako::Transport::Call call, Kobako::Transport::_ServiceRegistry resolver, Kobako::
|
|
17
|
+
def self?.dispatch: (Kobako::Transport::Call call, Kobako::Transport::_ServiceRegistry resolver, Kobako::Transport::_HandleTable handler, Kobako::Transport::_GuestYielder yield_to_guest) -> [bool, String, String?]
|
|
18
18
|
|
|
19
|
-
def self?.run: (Kobako::Transport::Call call, Kobako::Transport::_ServiceRegistry resolver, Kobako::
|
|
19
|
+
def self?.run: (Kobako::Transport::Call call, Kobako::Transport::_ServiceRegistry resolver, Kobako::Transport::_HandleTable handler, Kobako::Transport::Yielder? yielder) -> untyped
|
|
20
20
|
|
|
21
21
|
def self?.resolve_call_args: (Kobako::Payload::Arguments arguments, Kobako::Codec::_HandleTable handler, bool carried_handle) -> [Array[untyped], Hash[Symbol, untyped]]
|
|
22
22
|
|
|
@@ -24,18 +24,18 @@ module Kobako
|
|
|
24
24
|
|
|
25
25
|
def self?.caught_fault: (StandardError error, Kobako::Transport::Yielder? yielder) -> [String, String]
|
|
26
26
|
|
|
27
|
-
def self?.invoke: (
|
|
27
|
+
def self?.invoke: (Kobako::Transport::Exposure exposure, String method, Array[untyped] args, Hash[Symbol, untyped] kwargs, ?Kobako::Transport::Yielder? yielder) -> untyped
|
|
28
28
|
|
|
29
|
-
def self?.reject_unreachable!: (
|
|
29
|
+
def self?.reject_unreachable!: (Kobako::Transport::Exposure exposure, Symbol name) -> void
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def self?.resolve_arg: (untyped value, Kobako::Codec::_HandleTable handler) -> untyped
|
|
33
33
|
|
|
34
|
-
def self?.resolve_target: (String | Integer target, Kobako::Transport::_ServiceRegistry resolver, Kobako::
|
|
34
|
+
def self?.resolve_target: (String | Integer target, Kobako::Transport::_ServiceRegistry resolver, Kobako::Transport::_HandleTable handler) -> Kobako::Transport::Exposure
|
|
35
35
|
|
|
36
|
-
def self?.resolve_path: (String path, Kobako::Transport::_ServiceRegistry resolver) ->
|
|
36
|
+
def self?.resolve_path: (String path, Kobako::Transport::_ServiceRegistry resolver) -> Kobako::Transport::Exposure
|
|
37
37
|
|
|
38
|
-
def self?.
|
|
38
|
+
def self?.resolve_handle: (Integer id, Kobako::Transport::_HandleTable handler) -> Kobako::Transport::Exposure
|
|
39
39
|
|
|
40
40
|
def self?.encode_ok: (untyped value, Kobako::Codec::_HandleTable handler) -> String
|
|
41
41
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
class Exposure < Data
|
|
4
|
+
PREDICATE: Symbol
|
|
5
|
+
CLASS_OF: UnboundMethod
|
|
6
|
+
SINGLETON_CLASS_OF: UnboundMethod
|
|
7
|
+
SINGLETON_METHODS: UnboundMethod
|
|
8
|
+
PRIVATE_METHODS: UnboundMethod
|
|
9
|
+
CALLABLE: Set[Symbol]
|
|
10
|
+
NOTHING: Set[Symbol]
|
|
11
|
+
|
|
12
|
+
attr_reader object: untyped
|
|
13
|
+
attr_reader names: Set[Symbol]?
|
|
14
|
+
|
|
15
|
+
def self.new: (object: untyped, names: Set[Symbol]?) -> Exposure
|
|
16
|
+
| (untyped, Set[Symbol]?) -> Exposure
|
|
17
|
+
|
|
18
|
+
def self.of: (untyped object, ?Hash[Module, Set[Symbol]] surfaces) -> Exposure
|
|
19
|
+
|
|
20
|
+
def initialize: (object: untyped, names: Set[Symbol]?) -> void
|
|
21
|
+
|
|
22
|
+
def with: (?object: untyped, ?names: Set[Symbol]?) -> Exposure
|
|
23
|
+
|
|
24
|
+
def ==: (untyped other) -> bool
|
|
25
|
+
|
|
26
|
+
def hash: () -> Integer
|
|
27
|
+
|
|
28
|
+
def exposes?: (Symbol name) -> bool
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def self.narrows_itself?: (untyped object, Module klass) -> bool
|
|
33
|
+
|
|
34
|
+
def self.default_names: (untyped object, Module klass, Hash[Module, Set[Symbol]] surfaces) -> Set[Symbol]
|
|
35
|
+
|
|
36
|
+
def self.class_names: (untyped object, Module klass) -> Set[Symbol]
|
|
37
|
+
|
|
38
|
+
def self.with_singleton: (untyped object, Set[Symbol] names) -> Set[Symbol]
|
|
39
|
+
|
|
40
|
+
def self.authored: (Module owner) -> Array[Symbol]
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -5,13 +5,11 @@ module Kobako
|
|
|
5
5
|
GADGET_OWNERS: Array[Module]
|
|
6
6
|
CALLABLE_ALLOW: Array[Symbol]
|
|
7
7
|
|
|
8
|
-
def self?.refusal: (
|
|
8
|
+
def self?.refusal: (Kobako::Transport::Exposure exposure, Symbol name) -> String?
|
|
9
9
|
|
|
10
10
|
def self?.ambient_refusal: (untyped target, Symbol name) -> String?
|
|
11
11
|
|
|
12
12
|
def self?.ambient_owner?: (Module owner, untyped target) -> bool
|
|
13
|
-
|
|
14
|
-
def self?.narrowing_refusal: (untyped target, Symbol name) -> String?
|
|
15
13
|
end
|
|
16
14
|
end
|
|
17
15
|
end
|
data/sig/kobako/transport.rbs
CHANGED
|
@@ -20,7 +20,17 @@ module Kobako
|
|
|
20
20
|
# production conformer; modelled structurally so the Transport
|
|
21
21
|
# layer needs no upward dependency on Catalog.
|
|
22
22
|
interface _ServiceRegistry
|
|
23
|
-
def lookup: (String target) ->
|
|
23
|
+
def lookup: (String target) -> Exposure
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# The per-invocation Handle table as a dispatch reads it: the codec's
|
|
27
|
+
# allocate / restore pair, plus the Exposure a Handle was minted with,
|
|
28
|
+
# which authorizes a call made through it. Kobako::Catalog::Handles is
|
|
29
|
+
# the production conformer.
|
|
30
|
+
interface _HandleTable
|
|
31
|
+
include Kobako::Codec::_HandleTable
|
|
32
|
+
|
|
33
|
+
def exposure: (Integer id) -> Exposure
|
|
24
34
|
end
|
|
25
35
|
end
|
|
26
36
|
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.26.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aotokitsuruya
|
|
@@ -117,6 +117,7 @@ files:
|
|
|
117
117
|
- lib/kobako/codec/error.rb
|
|
118
118
|
- lib/kobako/codec/ext_types.rb
|
|
119
119
|
- lib/kobako/codec/handle_walk.rb
|
|
120
|
+
- lib/kobako/codec/nesting.rb
|
|
120
121
|
- lib/kobako/codec/state.rb
|
|
121
122
|
- lib/kobako/codec/utils.rb
|
|
122
123
|
- lib/kobako/context.rb
|
|
@@ -138,6 +139,7 @@ files:
|
|
|
138
139
|
- lib/kobako/transport/call.rb
|
|
139
140
|
- lib/kobako/transport/dispatcher.rb
|
|
140
141
|
- lib/kobako/transport/error.rb
|
|
142
|
+
- lib/kobako/transport/exposure.rb
|
|
141
143
|
- lib/kobako/transport/reflection.rb
|
|
142
144
|
- lib/kobako/transport/run.rb
|
|
143
145
|
- lib/kobako/transport/yielder.rb
|
|
@@ -159,6 +161,7 @@ files:
|
|
|
159
161
|
- sig/kobako/codec/error.rbs
|
|
160
162
|
- sig/kobako/codec/ext_types.rbs
|
|
161
163
|
- sig/kobako/codec/handle_walk.rbs
|
|
164
|
+
- sig/kobako/codec/nesting.rbs
|
|
162
165
|
- sig/kobako/codec/state.rbs
|
|
163
166
|
- sig/kobako/codec/utils.rbs
|
|
164
167
|
- sig/kobako/context.rbs
|
|
@@ -180,6 +183,7 @@ files:
|
|
|
180
183
|
- sig/kobako/transport/call.rbs
|
|
181
184
|
- sig/kobako/transport/dispatcher.rbs
|
|
182
185
|
- sig/kobako/transport/error.rbs
|
|
186
|
+
- sig/kobako/transport/exposure.rbs
|
|
183
187
|
- sig/kobako/transport/reflection.rbs
|
|
184
188
|
- sig/kobako/transport/run.rbs
|
|
185
189
|
- sig/kobako/transport/yielder.rbs
|