docs(project): record exception handlers as not a SysML v2 construct and close the item - #499
Merged
Merged
Conversation
…and close the item Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
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.
What and why
docs/project/spec-compliance.mdstill carried exception handlers under Actions (Advanced) and, under Implementable But Not Yet Done, as "spec exists, needs exception propagation" — the last UML-referenced action item presented as work to do. The new design recorddocs/project/exception-handlers.mdadjudicates it, following the precedent ofexpansion-regions.mdandprotocol-state-machines.md, and closes it as not a SysML v2 construct:send,accept,assign,terminate,if, loops, control nodes) and spells no raise, handler or propagation; §8.3.17 and the reflectiveSysML.sysmlmetamodel declare noExceptionHandler.Performances.kerml: aPerformanceends, it does not fail;Actions.sysmlhas a base type for every notation kind and none for a handler.rg -i 'exception|handler|fault|raise|throw'over the bundled library hits only the licenseNOTICE.Failureas anoccurrence def. The pinned pilot'sSysML.ecore(175 classes) andkerml.ecore(82) have no matching class.The need is covered by constructs the runtime already executes: an
outresult routed bydecide, or a failure signalsendto anacceptforked beside the work whose branchterminates it (§7.17.10MonitoredActivity); an unmodeled failure is a typed error (ErrDivisionByZero, …), never a panic, and anerrorverdict under a verification case. The record includes both worked models and theirbin/sysmloutput. No AST, IR or runtime change follows.Also updated: both compliance-mapping entries (the Implementable But Not Yet Done list is now empty), the Track E introduction, a closure section and the two status bullets in
roadmap.md, a Handling a failure: there is notry/catchnote after Terminate indocs/guide/06-behavior.md, the project README and MkDocs nav, and a changelog fragment.How it was verified
bin/sysml -action …(byResultwith divisor 0 and 4,bySignal, and the unhandled division by zero); output is quoted in the record.make docs-check(0 broken links, doc-ids OK),python3 -m mkdocs build --strict --site-dir /tmp/site,python3 scripts/changelog.py checkall pass.Checklist
make testandmake lintpass locally — docs-only;make docs-checkand the strict MkDocs build passchanges/unreleased/<slug>.<section>.md, not as an edit toCHANGELOG.mdmake docs-countsrun if a gate count moved — no gate count movedF4,K5) in the body, docs, or changelog