Skip to content

Improve tracebacks, network builtins, and VM parity#1

Open
orderofdan wants to merge 1 commit intomasterfrom
traceback-network-parity
Open

Improve tracebacks, network builtins, and VM parity#1
orderofdan wants to merge 1 commit intomasterfrom
traceback-network-parity

Conversation

@orderofdan
Copy link
Copy Markdown
Collaborator

Improve runtime error reporting across the VM, scheduler, eval(), and builtins so failures preserve useful messages instead of collapsing into generic type/args output. Add builtin signature-based enrichment for bare E_ARGS/E_TYPE failures, carry explicit messages through traceback formatting, and make eval() return Toast-style traceback line lists with better call boundary reporting.

Implement missing network/listener behavior so compatibility builtins use the real connection manager instead of placeholder state. listen(), unlisten(), listeners(), open_network_connection(), flush_input(), held input replay, client-echo telnet negotiation, binary/raw notify output, and keep-alive now operate through server connection plumbing and transport support.

Close several VM/tree-walker parity gaps. Fix scatter optional bindings to assign 0 instead of leaving variables unbound, restore except e (...) binding to error codes, deep-copy waifs into fork snapshots, preserve line-aware exception messages, and align toint() / truthiness behavior with current test expectations.

Tighten permission enforcement for object, property, and verb mutators. Require owner/wizard checks for verb and property mutations, enforce fertile-parent checks for chparent/chparents, and restore wizard-only behavior for renumber.

Add focused regression coverage for traceback messaging, network option side effects, listener/open connection behavior, sort() parameter handling, waif deep-copy behavior, permission checks, scheduler message normalization, and eval() runtime error contracts. Also clean up repo test/build hygiene so go test ./... passes without scratch binaries or fixture-path issues breaking the run.

Improve runtime error reporting across the VM, scheduler, eval(), and
builtins so failures preserve useful messages instead of collapsing into
generic type/args output. Add builtin signature-based enrichment for bare
E_ARGS/E_TYPE failures, carry explicit messages through traceback
formatting, and make eval() return Toast-style traceback line lists with
better call boundary reporting.

Implement missing network/listener behavior so compatibility builtins use
the real connection manager instead of placeholder state. listen(),
unlisten(), listeners(), open_network_connection(), flush_input(), held
input replay, client-echo telnet negotiation, binary/raw notify output,
and keep-alive now operate through server connection plumbing and
transport support.

Close several VM/tree-walker parity gaps. Fix scatter optional bindings
to assign 0 instead of leaving variables unbound, restore except e (...)
binding to error codes, deep-copy waifs into fork snapshots, preserve
line-aware exception messages, and align toint() / truthiness behavior
with current test expectations.

Tighten permission enforcement for object, property, and verb mutators.
Require owner/wizard checks for verb and property mutations, enforce
fertile-parent checks for chparent/chparents, and restore wizard-only
behavior for renumber.

Add focused regression coverage for traceback messaging, network option
side effects, listener/open connection behavior, sort() parameter
handling, waif deep-copy behavior, permission checks, scheduler message
normalization, and eval() runtime error contracts. Also clean up repo
test/build hygiene so go test ./... passes without scratch binaries or
fixture-path issues breaking the run.
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.

1 participant