Document host obligation for selective expansion in deps.sx
The spec classifies components as pure vs IO-dependent. Each host's async partial evaluator must act on this: expand IO-dependent server- side, serialize pure for client. This is host infrastructure, not SX semantics — documented as a contract in the spec. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -314,6 +314,24 @@
|
||||
(empty? (transitive-io-refs name env io-names))))
|
||||
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Host obligation: selective expansion in async partial evaluation
|
||||
;; --------------------------------------------------------------------------
|
||||
;; The spec classifies components as pure or IO-dependent. Each host's
|
||||
;; async partial evaluator (the server-side rendering path that bridges
|
||||
;; sync evaluation with async IO) must use this classification:
|
||||
;;
|
||||
;; IO-dependent component → expand server-side (IO must resolve)
|
||||
;; Pure component → serialize for client (can render anywhere)
|
||||
;; Layout slot context → expand all (server needs full HTML)
|
||||
;;
|
||||
;; The spec provides the data (component-io-refs, component-pure?).
|
||||
;; The host provides the async runtime that acts on it.
|
||||
;; This is not SX semantics — it is host infrastructure. Every host
|
||||
;; with a server-side async evaluator implements the same rule.
|
||||
;; --------------------------------------------------------------------------
|
||||
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Platform interface summary
|
||||
;; --------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user