All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 4m49s
Three-layer architecture:
spec/ — Core language (19 files): evaluator, parser, primitives,
CEK machine, types, continuations. Host-independent.
web/ — Web framework (20 files): signals, adapters, engine,
orchestration, boot, router, CSSX. Built on core spec.
sx/ — Application (sx-docs website). Built on web framework.
Split boundary.sx into boundary-core.sx (type-of, make-env, identical?)
and boundary-web.sx (IO primitives, signals, spreads, page helpers).
Bootstrappers search spec/ → web/ → shared/sx/ref/ for .sx files.
Original files remain in shared/sx/ref/ as fallback during transition.
All 63 tests pass.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
50 lines
1.6 KiB
Plaintext
50 lines
1.6 KiB
Plaintext
;; ==========================================================================
|
|
;; boundary.sx — SX language boundary contract
|
|
;;
|
|
;; Declares the core I/O primitives that any SX host must provide.
|
|
;; This is the LANGUAGE contract — not deployment-specific.
|
|
;;
|
|
;; Pure primitives (Tier 1) are declared in primitives.sx.
|
|
;; Deployment-specific I/O lives in boundary-app.sx.
|
|
;; Per-service page helpers live in {service}/sx/boundary.sx.
|
|
;;
|
|
;; Format:
|
|
;; (define-io-primitive "name"
|
|
;; :params (param1 param2 &key ...)
|
|
;; :returns "type"
|
|
;; :effects [io]
|
|
;; :async true
|
|
;; :doc "description"
|
|
;; :context :request)
|
|
;;
|
|
;; ==========================================================================
|
|
|
|
|
|
;; --------------------------------------------------------------------------
|
|
;; Tier 1: Pure primitives — declared in primitives.sx
|
|
;; --------------------------------------------------------------------------
|
|
|
|
(declare-tier :pure :source "primitives.sx")
|
|
|
|
|
|
;; --------------------------------------------------------------------------
|
|
;; Core platform primitives — type inspection + environment
|
|
;; --------------------------------------------------------------------------
|
|
;;
|
|
;; These are provided by every host. Not IO, not web-specific.
|
|
|
|
(declare-core-primitive "type-of"
|
|
:params (value)
|
|
:returns "string"
|
|
:doc "Return the type name of a value.")
|
|
|
|
(declare-core-primitive "make-env"
|
|
:params ()
|
|
:returns "dict"
|
|
:doc "Create a base environment with all primitives.")
|
|
|
|
(declare-core-primitive "identical?"
|
|
:params (a b)
|
|
:returns "boolean"
|
|
:doc "Reference equality check.")
|