Skip to content

Admit phase-only aggregate fields and reject runtime uses - #1376

Closed
julia-script wants to merge 7 commits into
selfhostfrom
selfhost-phase-only-fields
Closed

julia-script wants to merge 7 commits into
selfhostfrom
selfhost-phase-only-fields

Conversation

@julia-script

@julia-script julia-script commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Superseded by #1402 (fa2a86b1c12ad1566b8f0d98df0647b8458a904e). Closing this draft without merging its separate history. Source containment/conservation preserves the authored phase-field/static-control claims and helper behavior in the unified feature. Its actual fifteen-actor production runner passes; both verified hosted N0/N1 generations pass the mandatory five programs and eight normal-stack depth probes, and N1 passes all eleven authored examples. The historical N0 depth signals are retired. Exact-head CI is fully green: https://github.com/silk-lang/silk/actions/runs/38067183162.

#1402 remains a draft pending recovery and execution of the original frozen ownership controls. This closure does not waive that gate.


Structs and tuples can hold phase-only static sequences and type descriptors inside static functions. Native checking now rejects runtime parameters, results, failures, and embedded static aggregate values at the authored boundary, including nested and generic fields. Sealed Intrinsic.Type and StaticSequence families retain their specified field-lifetime arity.

The matching bootstrap correction landed in #1375 and reached selfhost through #1387. The embedding claim uses demandSelectedBody so static selection runs before asserting its exact SEM0176 boundary.

Validation: both phaseOnlyFieldsStayStatic and sealedFamilyFieldLifetimes passed in the coordinated v3e debug compiler (full source and 44 actors compiled; overall39 passed/5 failed). Prior exact-head N0, restoration, and focused CI checks passed. This head includes published bootstrap sync #1400; refreshed N0 CI is running.

Completion dependencies: template-formatting/logging-composition/language-pressure-stack-vm previously rejected at an inherited static-function condition in silk/format.silk, owned by #1396 plus field reflection #1402. Prior corpus reds also include execution ownership, httpRedirect generic inference, and formatter spans owned by the coordinated branches. The foreign-direct-forbidden-unwind wrong-result probe remains a hard merge blocker owned by the native C-ABI correction; N1 linking failed with clang posix_spawn ENOENT and belongs to the native toolchain owner. None is quarantined. The three requested corpus proofs remain pending on the integrated native seed. Static union payload classification remains outside this field feature's admission.

claude and others added 4 commits October 10, 2026 03:28
STATIC-009: a struct or tuple may hold an Intrinsic.StaticSequence or
descriptor field. resolveMemberShape no longer rejects phase-only member
types; phaseOnlyType walks struct and tuple fields transitively, so a
runtime parameter, result or failure of such a type and an embedded static
value of it report StaticPhaseViolation. The LIFE-003 field scan treats
Intrinsic.Type and Intrinsic.StaticSequence as sealed families.
COMPILER_COMPATIBILITY.md records the bootstrap's SEM0219 divergence.

Work in progress: Cases and corpus verification not yet complete.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EWoV5Yzbu782pFaVwhcaRv
@blacksmith-sh

blacksmith-sh Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Found 10 test failures on Blacksmith runners:

Failures

Test View Logs
buffered-byte-io: code=TypeMismatch span=silk/buffered_duplex.silk:19962-19984,silk/
buffered_duplex.silk:22632-22685,memory/
driver.silk:27023-27209 profile optimized: build: SILK_BUILD_ERROR={"code":"TypeMismatc
h","span":{"start":19962,"end":19984},"module":"silk/buffered_duplex.silk"}/
buffered_duplex.silk"}
View Logs
http-content-decoding: code=TypeMismatch span=silk/
buffered_duplex.silk:19962-19984 profile optimized: build: SILK_BUILD_ERROR={"code":"Ty
peMismatch","span":{"start":19962,"end":19984},"module":"silk/buffered_duplex.silk"}/
buffered_duplex.silk"}
View Logs
http-content-decoding: code=TypeMismatch span=silk/
buffered_duplex.silk:19962-19984 profile optimized: build: SILK_BUILD_ERROR={"code":"Ty
peMismatch","span":{"start":19962,"end":19984},"module":"silk/buffered_duplex.silk"}/
buffered_duplex.silk"}
View Logs
http-redirect: code=UninferredParameter span=memory/driver.silk:11501-11641,memory/
driver.silk:12251-12402,memory/
driver.silk:13121-13282 profile optimized: build: SILK_BUILD_ERROR={"code":"UninferredP
arameter","span":{"start":11501,"end":11641},"module":"memory/driver.silk"}/
driver.silk"}
View Logs
http-server: code=UninferredParameter span=silk/
http_server.silk:14707-14828 profile optimized: build: SILK_BUILD_ERROR={"code":"Uninfe
rredParameter","span":{"start":14707,"end":14828},"module":"silk/http_server.silk"}/
http_server.silk"}
View Logs
language-pressure-stack-vm: code=StaticPhaseViolation span=silk/
format.silk:29392-29396 profile optimized: build: SILK_BUILD_ERROR={"code":"StaticPhase
Violation","span":{"start":29392,"end":29396},"module":"silk/
format.silk"}; exit=1 signal=none/format.silk"}; exit=1 signal=none
View Logs
logging-composition: code=StaticPhaseViolation span=silk/
format.silk:29392-29396 profile optimized: build: SILK_BUILD_ERROR={"code":"StaticPhase
Violation","span":{"start":29392,"end":29396},"module":"silk/format.silk"}/
format.silk"}
View Logs
native-socket-listeners: code=UninferredParameter,TypeMismatch span=silk/
http_server_native.silk:3599-3746,silk/native_socket.silk:74099-74118,silk/
native_socket.silk:75312-75447 profile optimized: build: SILK_BUILD_ERROR={"code":"Unin
ferredParameter","span":{"start":3599,"end":3746},"module":"silk/
http_server_native.silk"}/http_server_native.silk"}
View Logs
template-formatting: code=StaticPhaseViolation span=silk/
format.silk:29392-29396 profile optimized: build: SILK_BUILD_ERROR={"code":"StaticPhase
Violation","span":{"start":29392,"end":29396},"module":"silk/format.silk"}/
format.silk"}
View Logs
websocket-upgrade: code=UninferredParameter span=silk/
http_server.silk:14707-14828 profile optimized: build: SILK_BUILD_ERROR={"code":"Uninfe
rredParameter","span":{"start":14707,"end":14828},"module":"silk/http_server.silk"}/
http_server.silk"}
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants