Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 17 additions & 17 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,30 @@ edition = "2024"
rust-version = "1.85.0"
license = "MIT"
repository = "https://github.com/pulseengine/kiln"
version = "0.4.2"
version = "0.4.3"


[workspace.dependencies]
anyhow = "1.0"
wit-bindgen = "0.41.0"

# Internal crate versions
kiln-error = { path = "kiln-error", version = "0.4.2", default-features = false }
kiln-sync = { path = "kiln-sync", version = "0.4.2", default-features = false }
kiln-format = { path = "kiln-format", version = "0.4.2", default-features = false }
kiln-foundation = { path = "kiln-foundation", version = "0.4.2", default-features = false }
kiln-decoder = { path = "kiln-decoder", version = "0.4.2", default-features = false, features = ["std"] }
kiln-debug = { path = "kiln-debug", version = "0.4.2", default-features = false }
kiln-runtime = { path = "kiln-runtime", version = "0.4.2", default-features = false }
kiln-logging = { path = "kiln-logging", version = "0.4.2", default-features = false }
kiln-instructions = { path = "kiln-instructions", version = "0.4.2", default-features = false }
kiln-component = { path = "kiln-component", version = "0.4.2", default-features = false }
kiln-host = { path = "kiln-host", version = "0.4.2", default-features = false }
kiln-intercept = { path = "kiln-intercept", version = "0.4.2", default-features = false }
kiln-math = { path = "kiln-math", version = "0.4.2", default-features = false }
kiln-platform = { path = "kiln-platform", version = "0.4.2", default-features = false }
kiln-panic = { path = "kiln-panic", version = "0.4.2", default-features = false }
kiln-wasi = { path = "kiln-wasi", version = "0.4.2", default-features = false }
kiln-error = { path = "kiln-error", version = "0.4.3", default-features = false }
kiln-sync = { path = "kiln-sync", version = "0.4.3", default-features = false }
kiln-format = { path = "kiln-format", version = "0.4.3", default-features = false }
kiln-foundation = { path = "kiln-foundation", version = "0.4.3", default-features = false }
kiln-decoder = { path = "kiln-decoder", version = "0.4.3", default-features = false, features = ["std"] }
kiln-debug = { path = "kiln-debug", version = "0.4.3", default-features = false }
kiln-runtime = { path = "kiln-runtime", version = "0.4.3", default-features = false }
kiln-logging = { path = "kiln-logging", version = "0.4.3", default-features = false }
kiln-instructions = { path = "kiln-instructions", version = "0.4.3", default-features = false }
kiln-component = { path = "kiln-component", version = "0.4.3", default-features = false }
kiln-host = { path = "kiln-host", version = "0.4.3", default-features = false }
kiln-intercept = { path = "kiln-intercept", version = "0.4.3", default-features = false }
kiln-math = { path = "kiln-math", version = "0.4.3", default-features = false }
kiln-platform = { path = "kiln-platform", version = "0.4.3", default-features = false }
kiln-panic = { path = "kiln-panic", version = "0.4.3", default-features = false }
kiln-wasi = { path = "kiln-wasi", version = "0.4.3", default-features = false }

# Note: Safety level presets should be defined in individual crate Cargo.toml files
# as workspace.features is not supported by Cargo
Expand Down
4 changes: 2 additions & 2 deletions safety/requirements/functional-requirements/SR-53.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ artifacts:
- id: SR-53
type: requirement
title: kilnd rejects an arg-arity mismatch instead of zero-filling params and reporting a wrong result as success
status: implemented
description: 'IMPLEMENTED (PR #460): argument arity is now enforced fail-loud on every invocation surface instead of zero-filling missing params and reporting the wrong result as success (the #412 fabricated-reporting family on the function-invocation surface). (1) The stackless engine''s locals init (kiln-runtime stackless/engine.rs execute_function_body) no longer pads missing params with type-default zeros nor truncates extras — args.len() != declared param count is an Err. (2) kilnd''s execute_traditional_module checks the target export''s declared param count BEFORE engine.execute and errors with an actionable message ("function ''X'' expects N argument(s) but none were supplied; kilnd cannot yet pass wasm function parameters") — no CLI arg-passing flag was added; zero-param entry points still run. (3) The component direct-hosting path resolves the canon lift''s REAL param types into DirectExportTarget.params and the export''s FunctionSignature.params, so the existing validate_function_args arity check fires, and call_direct_export checks param arity alongside its existing result-arity check. (4) A spec-invalid component whose canon lift declares a different param arity than the backing core function is REJECTED at load (from_parsed_internal validates each lift against the live instantiated core module''s signature), matching wasm-tools validate / wasmtime. Verified: param_taking_export_invoked_with_no_args_errors, zero_param_start_still_runs, zero_param_result_export_still_runs, engine_rejects_missing_args_and_computes_correct_answer_with_args (kilnd/tests/arg_arity_tests.rs); direct_export_invoked_with_missing_args_errors, direct_export_with_matching_args_computes_correct_answer, canon_lift_param_arity_mismatch_rejected_at_load (kiln-component/tests/direct_export_arity_tests.rs). Real-binary repro re-run: kilnd mod.wasm --function addone now exits 1 with the actionable message (was "✓ returned I32(1)", exit 0); kilnd --invoke add pc.wasm (mismatched lift) now rejected at load, exit 1. --- kilnd invokes an exported function with ZERO-FILLED arguments when params cannot be supplied and reports the resulting wrong value as SUCCESS (exit 0); argument arity is never checked on either the core-module or component path, and a canon lift with param arity differing from its backing core function is accepted though wasm-tools/wasmtime reject it. Issue #443.'
status: verified
description: 'VERIFIED (PR #460; re-verified on the binary at the v0.4.3 cut commit 4c0fb507: addone no-args ERRORS not I32(1)/success; internal dbl(21) via zero-param export still returns I32(42); zero-param _start completes; WAST arg-path slice 589 assertions pass — call 138/func 192/fac 8/call_indirect 251). IMPLEMENTED (PR #460): argument arity is now enforced fail-loud on every invocation surface instead of zero-filling missing params and reporting the wrong result as success (the #412 fabricated-reporting family on the function-invocation surface). (1) The stackless engine''s locals init (kiln-runtime stackless/engine.rs execute_function_body) no longer pads missing params with type-default zeros nor truncates extras — args.len() != declared param count is an Err. (2) kilnd''s execute_traditional_module checks the target export''s declared param count BEFORE engine.execute and errors with an actionable message ("function ''X'' expects N argument(s) but none were supplied; kilnd cannot yet pass wasm function parameters") — no CLI arg-passing flag was added; zero-param entry points still run. (3) The component direct-hosting path resolves the canon lift''s REAL param types into DirectExportTarget.params and the export''s FunctionSignature.params, so the existing validate_function_args arity check fires, and call_direct_export checks param arity alongside its existing result-arity check. (4) A spec-invalid component whose canon lift declares a different param arity than the backing core function is REJECTED at load (from_parsed_internal validates each lift against the live instantiated core module''s signature), matching wasm-tools validate / wasmtime. Verified: param_taking_export_invoked_with_no_args_errors, zero_param_start_still_runs, zero_param_result_export_still_runs, engine_rejects_missing_args_and_computes_correct_answer_with_args (kilnd/tests/arg_arity_tests.rs); direct_export_invoked_with_missing_args_errors, direct_export_with_matching_args_computes_correct_answer, canon_lift_param_arity_mismatch_rejected_at_load (kiln-component/tests/direct_export_arity_tests.rs). Real-binary repro re-run: kilnd mod.wasm --function addone now exits 1 with the actionable message (was "✓ returned I32(1)", exit 0); kilnd --invoke add pc.wasm (mismatched lift) now rejected at load, exit 1. --- kilnd invokes an exported function with ZERO-FILLED arguments when params cannot be supplied and reports the resulting wrong value as SUCCESS (exit 0); argument arity is never checked on either the core-module or component path, and a canon lift with param arity differing from its backing core function is accepted though wasm-tools/wasmtime reject it. Issue #443.'
tags:
- kilnd
- kiln-component
Expand Down
4 changes: 2 additions & 2 deletions safety/requirements/functional-requirements/SR-54.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ artifacts:
- id: SR-54
type: requirement
title: kiln-component compiles standalone (cargo check -p kiln-component), not only under workspace feature unification
status: implemented
description: 'IMPLEMENTED (PR pending): kiln-component failed to compile in isolation on clean main — `cargo check -p kiln-component` errored (E0433 cannot find std; E0609/E0599 for the runtime_engine field, call_direct_export, call_command_entry, link_imports). Root cause: `default = ["kiln-runtime/std"]` enabled the DEPENDENCY''s std but never kiln-component''s OWN `std`/`kiln-execution` features, so the cfg-gated surface vanished; only workspace feature unification hid it, so CI stayed green (the "green CI over a build that only works via unification" class — a consumer depending on kiln-component alone got a build failure). Fix: `default = ["std", "kiln-execution"]` (kiln-execution is a pure cfg flag, no deps, so no dependency-graph change). Verified: bare `cargo check -p kiln-component` compiles; `cargo check --workspace` still green; consumers unchanged (kilnd 6+4+13, kiln-wasi lib 68 pass). SCOPE: fixes the LIB isolated build only. The crate''s TEST/EXAMPLE targets are separately + more deeply rotten (~47 type mismatches + removed-API refs: execute_start, Component.options, ExternType::Function, task_manager, async_) — a larger fix-or-delete cleanup, the remaining half of #446. Issue #446.'
status: verified
description: 'VERIFIED (PR #462; re-verified at the v0.4.3 cut commit 4c0fb507: bare `cargo check -p kiln-component` compiles, workspace still green). kiln-component failed to compile in isolation on clean main — `cargo check -p kiln-component` errored (E0433 cannot find std; E0609/E0599 for the runtime_engine field, call_direct_export, call_command_entry, link_imports). Root cause: `default = ["kiln-runtime/std"]` enabled the DEPENDENCY''s std but never kiln-component''s OWN `std`/`kiln-execution` features, so the cfg-gated surface vanished; only workspace feature unification hid it, so CI stayed green (the "green CI over a build that only works via unification" class — a consumer depending on kiln-component alone got a build failure). Fix: `default = ["std", "kiln-execution"]` (kiln-execution is a pure cfg flag, no deps, so no dependency-graph change). Verified: bare `cargo check -p kiln-component` compiles; `cargo check --workspace` still green; consumers unchanged (kilnd 6+4+13, kiln-wasi lib 68 pass). SCOPE: fixes the LIB isolated build only. The crate''s TEST/EXAMPLE targets are separately + more deeply rotten (~47 type mismatches + removed-API refs: execute_start, Component.options, ExternType::Function, task_manager, async_) — a larger fix-or-delete cleanup, the remaining half of #446. Issue #446.'
tags:
- kiln-component
- build
Expand Down
Loading