Conversation
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
August 17, 2026 10:47
06b37fd to
efef9cc
Compare
fffonion
changed the base branch from
plan/wide-local-bytecode
to
fix/frame-aware-local-allocation
August 17, 2026 10:53
This was referenced Aug 17, 2026
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
August 17, 2026 11:02
efef9cc to
f12b976
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
August 17, 2026 11:21
f12b976 to
97e9a9c
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
August 17, 2026 11:26
97e9a9c to
872bba2
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
August 24, 2026 22:09
872bba2 to
eafbc05
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
August 26, 2026 10:45
eafbc05 to
e183e0c
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
2 times, most recently
from
August 31, 2026 06:14
537a479 to
4b74986
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
September 9, 2026 10:52
4b74986 to
f849714
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
September 9, 2026 10:53
f849714 to
acc6096
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
September 9, 2026 13:18
acc6096 to
9147258
Compare
fffonion
force-pushed
the
plan/callable-stream-integration
branch
from
September 9, 2026 13:23
9147258 to
3aba65e
Compare
Introduce catalog-level HostStructSchema / HostTypeSchema::Named so host functions can declare fixed-shape struct params and returns. Runtime values stay maps; dynamic Map semantics are unchanged. Compiler mapping produces TypeSchema::Named identity plus Object field definitions installed from the catalog, enabling field access, object-literal call matching, nested resources, and named hover/labels. Fingerprint format version is 2 with a deterministic structs section.
Keep TypeSchema::Named as compile identity and Value::Map at runtime. Walk catalog struct bodies at exact registration so resource-bearing named params/returns are classified correctly, recurse Object/Callable during named expansion, and validate nested Named structs without a function reach.
Preserve extra callable parameters instead of dropping them via zip, so unequal arity cannot silently match.
…ration Keep TypeSchema::Named as compile identity and Value::Map at runtime. Install catalog named-struct bodies through catalog_import_schemas_into and HostExtension::install_into so production registration uses the same path as tests, without adding a public HostFunctionRegistry clone helper.
Register HttpRequest, HttpResponse, SseCallbackAction, and SseSummary in the HTTP catalog so scripts can use field access and typed object literals. Runtime values remain maps; headers and SSE inbound events stay dynamic maps.
Cover string and bytes request bodies with optional unknown while keeping runtime validation. Split SseRequest so buffered HttpRequest does not expose timeout_ms. Treat Null optional headers and timeout as omitted. Check SSE callbacks against SseCallbackAction named or object results rather than arbitrary maps.
Register SqliteOpenOptions, SqliteLimits, SqliteExecuteResult, SqliteQueryResult, and SqliteStatement so scripts can use field access and typed object literals. Runtime values remain maps; positional params and row arrays stay dynamic.
Treat present Null on optional sqlite fields as omitted, keep next_cursor as a named optional that is Null when absent, and accept the documented open-mode identifiers.
Compiler/VM consume jit_host_catalog() with a named JitConfig struct. Runtime values remain maps; JIT positional overloads stay on the generated builtin path.
Include JitConfig and both set_config overloads in standard_host_catalog so default compile/LSP fingerprints match the runtime JIT surface.
HostTypeSchema::Named grew CatalogRegistrationError past Clippy's result_large_err budget; box the mismatched schemas. Adapt remaining JIT/HTTP tests to host_import_schemas and Result-returning async bridge install.
Keep catalog HostTypeSchema::Named on ResolvedHostCall so VMBC sidecars exact-bind instead of collapsing to map. Adapt HTTP/JIT/foundation tests to compile against the standard catalog and register exact adapters.
Default bytecode compile omitted the host catalog, so SseCallbackAction was unknown on compile_source even though http::client::sse was admitted. Thread http_host_catalog through compile/REPL entry points and exact-register that snapshot on the default host registry so SSE named structs and function schemas resolve without converting io/sqlite/jit builtins into host imports.
Catalog-free dialect/import-scan/REPL fallback installed the full standard_host_catalog, reserving JitConfig and SqliteLimits without host functions. Install http_host_catalog only when the HTTP surface is on; install nothing when HTTP is off. Explicit catalogs stay authoritative.
Use a pid/nanos unique file under std::env::temp_dir() and remove it on Drop so the file frontend test cleans up after panics.
Typed-host scripts compiled sqlite::close(&db) against take_owned. Keep execute/query/transaction as borrows, close by value, and exact-bind sqlite from the standard catalog so runtime tests actually close.
Runtime TypeSchema::Named now looks up installed named_struct_schemas, fails closed on unknown names, and walks nested resource/array/optional fields with depth and complexity bounds. install_named_struct_schemas merges identical bodies and rejects conflicts transactionally. Host Named returns may omit Optional fields. callable_schema_matches matches Named by name without accepting maps. Gate foundation tests on runtime.
TypeSchema::Named on callable prototypes previously resolved only against the host named_struct_schemas catalog, so ordinary guest structs such as LruCacheState failed closed as unknown. Keep host catalog lookup fail-closed and field-strict. Attach compiler StructDecl tables to Program, instantiate generic guest bodies at validation time, and walk guest Named as objects (resource fields only) so nested host resources stay enforced without treating unknown Named as any map.
Keep catalog structs off Program.named_struct_decls, require resource-bearing guest Named fields, make generic substitution load-bearing, and frame the named-struct section behind ABI v13 so trailing zeros are not a valid table.
nostd skip_host_schema now walks v13 HostTypeSchema::Named (tag 13) with the std name/field-count/nested-schema layout and existing depth/count/blob budgets. Host Named lookup and callable schema match fail closed on nonempty type args without changing guest generic lookup. Generic stream rustdocs describe Named/Object results and SSE's exact SseCallbackAction contract.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stack
4b74986Validation
cargo test --workspace --all-targets --all-features