Name input ports — give PortSpec a (non-load-bearing) name, mirroring FieldSpec/ParamSpec #50
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Input ports carry no name today:
PortSpecis{ kind, firing }(aura-core/src/node.rs).Only output fields (
FieldSpec.name) and params (ParamSpec.name) are named. A leafnode's input slots therefore have no declared semantics —
Sub's two f64 slots, orSimBroker's (exposure, price), are order-load-bearing but nameless and unchecked(see #21). The meaning lives only in
eval, not in the declared interface.Surfaced by the graph-render redesign (cycle 0026): a homogeneous pin-graph wants to
label every input pin, but the data has no name to show. The 0026 prototype invented
input names ("a"/"b") — exactly what "invent nothing" forbids. Composite-boundary
inputs already have real names (
Role.name); only leaf primitive inputs are nameless.Scope: add a non-load-bearing
nametoPortSpec— a debug symbol; identity stayspositional by slot (C23), exactly as
FieldSpec.name/ParamSpec.namealready are.Every aura-std node declares its input-slot names; the graph model/render consumes them
faithfully; #21's order-load-bearing slots become self-documenting.
Design questions for its brainstorm/spec:
blocks: 0026 iteration 2 (the graph render viewer).
refs #21
context: render redesign 0026 is paused pending this; iteration 1 (model serializer) shipped (
288f589).Done in commit
e304dba(cycle 0027), audited drift-clean in7569980. PortSpec carries a non-load-bearing name: String; all aura-std nodes + fixtures name their input slots; derive_signature carries Role.name into composite ports; model_to_json emits the name. C23-clean (name never wired/validated). 168 tests green. Commits are local on main (not yet pushed). Closing manually since the work is complete; the closes #50 marker remains the audit trail.