Improve tracebacks, network builtins, and VM parity#1
Open
orderofdan wants to merge 1 commit intomasterfrom
Open
Improve tracebacks, network builtins, and VM parity#1orderofdan wants to merge 1 commit intomasterfrom
orderofdan wants to merge 1 commit intomasterfrom
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.