Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/2-spec-conformance-gap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ body:
- type: markdown
attributes:
value: |
Please check [the compliance record](https://opensysml.org/project/spec-compliance/)
and [the OMG-materials defect list](https://opensysml.org/project/omg-issues/)
Please check [the compliance record](https://implementation.opensysml.org/project/spec-compliance/)
and [the OMG-materials defect list](https://implementation.opensysml.org/project/omg-issues/)
first — a known divergence is usually already a row there, with the reasoning behind it.

- type: textarea
Expand Down
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/3-ruling-objection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ body:
This is for the case where the behaviour is deliberate — a maintainer ruling, a recorded
divergence, or a design decision — and the argument is about whether it should be that way.
The rulings live in
[spec-compliance](https://opensysml.org/project/spec-compliance/),
[OMG materials defects](https://opensysml.org/project/omg-issues/) and the
decision records under [project/](https://opensysml.org/project/).
[spec-compliance](https://implementation.opensysml.org/project/spec-compliance/),
[OMG materials defects](https://implementation.opensysml.org/project/omg-issues/) and the
decision records under [project/](https://implementation.opensysml.org/project/).

- type: input
id: ruling
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ contact_links:
url: https://github.com/Open-MBEE/OpenSysML/discussions
about: Anything that is not a defect, a conformance gap, or an objection to a ruling starts as a discussion.
- name: Documentation
url: https://opensysml.org/
url: https://implementation.opensysml.org/
about: The handbook, CLI/REPL reference, internals, and the measured compliance status.
4 changes: 2 additions & 2 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,9 @@ jobs:
echo
printf '%s' "The snapshot is replaced each night and is never the \`latest\` release; Homebrew,"
printf '%s' " PyPI, npm and the Windows installer follow the stable line only. The"
printf '%s' " [snapshot page](https://opensysml.org/project/nightly/) explains what it is, how"
printf '%s' " [snapshot page](https://implementation.opensysml.org/project/nightly/) explains what it is, how"
printf '%s' " to verify it and what to expect from it; the"
printf '%s\n' " [install guide](https://opensysml.org/guide/01-install/) covers the stable releases."
printf '%s\n' " [install guide](https://implementation.opensysml.org/guide/01-install/) covers the stable releases."
echo
printf '%s' "\`opensysml-sysml.vsix\` is the VS Code extension built from the same commit:"
printf '%s' " \`code --install-extension opensysml-sysml.vsix\`, with a snapshot's \`sysml-lsp\`"
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ github.com/Open-MBEE/OpenSysML

Documentation is organized by what a reader wants, not by the feature that landed. Four areas,
mapped in [docs/README.md](docs/README.md) and published as
<https://opensysml.org/>:
<https://implementation.opensysml.org/>:

- **[docs/guide/](docs/guide/)** — *how do I use it?* A numbered handbook read in order.
- **[docs/reference/](docs/reference/)** — *what does this flag, command, API or triple mean?*
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
[![PyPI](https://img.shields.io/pypi/v/opensysml?label=pypi)](https://pypi.org/project/opensysml/)
[![Python versions](https://img.shields.io/pypi/pyversions/opensysml)](https://pypi.org/project/opensysml/)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
[![Documentation](https://img.shields.io/badge/docs-opensysml.org-blue)](https://opensysml.org/)
[![Documentation](https://img.shields.io/badge/docs-implementation.opensysml.org-blue)](https://implementation.opensysml.org/)

OpenSysML is a SysML v2 and KerML 1.1 implementation in Go. It provides a language server, an
interactive REPL, an execution runtime, an embeddable Go API, and Python, Node/TypeScript, Java
Expand Down Expand Up @@ -49,7 +49,7 @@ certification is claimed.
**Introductory material:** [the guide](docs/guide/) and the
[document generation manual](docs/manual/README.md)

**Complete searchable documentation:** <https://opensysml.org/> — the same pages as
**Complete searchable documentation:** <https://implementation.opensysml.org/> — the same pages as
[docs/](docs/), rendered from `main`.

### Install
Expand Down
4 changes: 4 additions & 0 deletions changes/unreleased/implementation-subdomain.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- **The documentation site moved to https://implementation.opensysml.org/.** The opensysml.org
apex domain now serves the OpenSysML ecosystem landing page published from
Open-MBEE/opensysml.github.io; every published page and every link to it lives at the new
subdomain.
1 change: 1 addition & 0 deletions docs/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
implementation.opensysml.org
4 changes: 2 additions & 2 deletions docs/project/spec-compliance.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ no resolver.
### ✅ Fully Implemented & Tested

<!-- doc-counts:begin census -->
The map below tracks every rule row on this page. Its census — how many rows are ✅ faithful, ⚠️ approximate, ❌ not implemented or ⛔ deliberate divergence, and how many have no external referee — is counted from the rows when the documentation site is built and published at [opensysml.org](https://opensysml.org/project/spec-compliance/); no count is typed in or committed here.
The map below tracks every rule row on this page. Its census — how many rows are ✅ faithful, ⚠️ approximate, ❌ not implemented or ⛔ deliberate divergence, and how many have no external referee — is counted from the rows when the documentation site is built and published at [implementation.opensysml.org](https://implementation.opensysml.org/project/spec-compliance/); no count is typed in or committed here.
<!-- doc-counts:end census -->
Read that as progress, not as a compliance percentage — the denominator is the list of rules *we*
chose to track, so it moves when we add a row, and a specification-derived denominator does not
Expand Down Expand Up @@ -135,7 +135,7 @@ what cannot be checked by anything is in
- Redefinition target resolution (:>> featureName)
- Control flow node scope registration

**Test Coverage:** counted from the tree when the documentation site is built and published at [opensysml.org](https://opensysml.org/project/spec-compliance/); no figure is typed in or committed here, so a branch adding a test or fixture leaves this page as it is.
**Test Coverage:** counted from the tree when the documentation site is built and published at [implementation.opensysml.org](https://implementation.opensysml.org/project/spec-compliance/); no figure is typed in or committed here, so a branch adding a test or fixture leaves this page as it is.

- Execution conformance: <!-- doc-counts:begin inventory-conformance -->the execution conformance cases, by prefix<!-- doc-counts:end inventory-conformance --> — the calc cases include the fixed-step RK4 lunar descent whose stages are body-local usages read over a range, the one-binding output case, the library complex/vector/trig cases, and recursion — factorial, fibonacci, a descent over a sequence, a mutually recursive pair and one whose result is its last expression; the action and state cases include a decision and a transition guard reading a calc usage; the new `f62_send_body_payload`, `f62_transition_body_dotted_target`, `f63_control_node_body`, `f63_for_typed_variable`, and `f63_merge_body_runs_on_traversal` fixtures cover node bodies, dotted transition targets, typed `for` variables, and merge traversal, and the `action_merge_loop_reenters`, `action_merge_loop_three_passes`, `action_merge_fork_branch_and_loop` and `action_merge_body_flips_own_guard` fixtures a loop re-entering a merge, a merge fed by a fork and a loop at once, and a merge body write read by the merge's own outgoing guard; the `assign_chain_*` fixtures write through a feature chain at depth two and three, through a port, through an inherited feature, through two features holding one occurrence, from a state's entry, `do` and `exit` behaviors and from a transition effect, with the write read back by a later node and by a guard, and a calculation body's chained target rejected; the `assign_write_*` fixtures write a subtype value and a widening numeric value legally, and refuse a wrong-typed write, a wrong-typed chained write, a collection the target's multiplicity cannot hold and an empty write where one value is required; the `instance_quantity_coherent_units`, `calc_quantity_coherent_result` and `calc_quantity_coherent_mismatch` fixtures report a product, quotient, fractional power, prefixed input and user-declared derived unit in the coherent unit of the declared quantity kind, keep a dimensionless ratio a number and a non-numeric exponent an error, and keep the dimension mismatch of a speed written to an acceleration)
- Runtime robustness: <!-- doc-counts:begin inventory-robustness -->the runtime robustness cases (first-level subtests across the `TestRuntimeRobustness*` functions)<!-- doc-counts:end inventory-robustness -->, among them: a write of a wrong-typed value, of too many values and of none where one is required, each leaving the feature as it was, and such a write from a state entry behavior, through a feature chain, to a calc output, to a body-local, to an output, to a performer feature and to a performance occurrence; a write to a constant or a derived feature, directly, through a chain, through a redefinition and through `SetFeatureValue`, each refused and leaving the value; deadlock, an accept payload read by a node that runs before the accept binds it, a default whose element count does not conform to its feature's multiplicity, a calc output the body never assigns or only a branch that did not run would assign, an output bound both by its declaration and by an assignment or by two assignments, empty entry/do/exit bodies, a do body that never finishes, a behavior both performing an action and stating a body, an assignment to a qualified target, a chained assignment target whose final segment the object reached does not hold, whose step is not an object, holds several objects or holds no value, whose base the body cannot reach, whose value the target's multiplicity refuses, or that is written in a calculation body, a body-local usage typed by something that is not a calc, a body-local declaration with no execution, a range bound that is not an Integer, a range spending the step budget, a collection spending the element budget, a chain through a part stopping at a calc usage, an index naming no position, a collection operand of the wrong kind, a collection body of the wrong arity, a `select` predicate that is not a condition, a collection operation spending the step budget, a non-terminating loop, a calc usage leaving an input unbound, reading an output it does not declare or one with no value, a usage nested in a calc leaving an input unbound, reading an output it does not declare, an input default naming only itself, a nested usage chain reaching the recursion limit or spending the step budget, outputs valued from each other, a usage typed by something that is not a calc, a usage body spending the step budget, an invocation of a calc that computes several outputs and designates no result, a non-terminating calc loop, a calc body that never returns, a send or a `terminate` inside a calc, an assignment outside a calc body, a non-Boolean calc condition, a body-local declaration that must not leak, a body member that is not executable, accept suspension that can never end, an accept standing as a statement of a loop body that nothing can end, guards, budgets, sourceless accept, fork/join misuse, pseudostate dead ends and cycles, non-numeric time trigger, a time trigger argument of the type validation refuses, misaddressed send, accept of an unsent type, send through an unconnected port, history misuse, non-deferrable deferred trigger, non-terminating do behavior, calc binding/arity/recursion failures, unhandled call, call argument of the wrong type, missing and cyclic `perform` references, a library function outside its domain or with the wrong arity, an extension library function outside its domain, an Integer result beyond the Integer size budget, an Integer beyond int64 used as an index, offset or size, a flow end that names no action node, a flow from a node that produced no value, an action accept waiting on the clock — `after` and `at` fired by advancing it, `at` an instant already past fired at once, a negative `after`, a duration of another dimension — and the clock advanced by zero, by a negative amount, with nothing waiting, past a wait that stays queued and into a machine the event budget stops, a non-Boolean change trigger, a variation with no variant selected, a selection that is not one of a variation's variants, two variants selected at once, a variation read through its declaration, a chain through an unselected variation part, two variation points selecting one variant without an owning object, a `variant` declared outside a variation, a variant under a redefined variation, a deep chain of redefinitions, conflicting redefinitions at several levels, one feature valued under two of its names, a feature both valued and restated in a body, a flow that names no feature to carry, an accepted message carrying no single value to bind, a transition that names no target, a transition endpoint that names nothing, a transition endpoint naming a state of a different machine, a transition endpoint lowered with no name-resolution pass, whose edge is left out, a connector end naming no reachable feature, a connector holding more than one object, a connector attached to itself or to one that names it back, a write into a pair of values derived from each other)
Expand Down
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# menu, which links the sites GitHub's own header cannot.
site_name: OpenSysML
site_description: A SysML v2 and KerML implementation in Go — language server, REPL, execution runtime, and Go, Python, Node, Java and Rust clients
site_url: https://opensysml.org/
site_url: https://implementation.opensysml.org/
repo_url: https://github.com/Open-MBEE/OpenSysML
repo_name: Open-MBEE/OpenSysML
edit_uri: edit/main/docs/
Expand Down
4 changes: 2 additions & 2 deletions overrides/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@ <h1>A SysML v2 toolchain that runs the model, not just reads it.</h1>
</div>
<p class="osml-hero__meta">
Apache-2.0 &middot; Linux, macOS and Windows binaries &middot;
<a href="#numbers">loads the Apollo 11 model in 0.43 s, and finds what running it turns up</a>
<a href="#numbers">loads the Apollo 11 model in 0.27 s, and finds what running it turns up</a>
</p>
</div>
<div class="osml-showcase" data-osml-showcase>
Expand Down Expand Up @@ -945,7 +945,7 @@ <h2>Not self-assessed &mdash; measured against the reference implementation.</h2
<span class="osml-numbers__label">to parse the Apollo 11 model &mdash; 28 files, 7,200 lines &mdash; on one core.</span>
</a>
<a class="osml-numbers__figure" href="{{ 'internals/performance/'|url }}#a-real-model-apollo-11">
<span class="osml-numbers__value">0.43 s</span>
<span class="osml-numbers__value">0.27 s</span>
<span class="osml-numbers__label">to load it with the standard library, resolve every name and validate it.</span>
</a>
<a class="osml-numbers__figure" href="{{ 'internals/performance/'|url }}#a-real-model-apollo-11">
Expand Down
2 changes: 2 additions & 0 deletions overrides/partials/menu-links.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<a href="{{ 'reference/'|url }}">Reference</a>
<a href="{{ 'project/roadmap/'|url }}">Roadmap</a>
<hr>
{#- opensysml.org is the project landing page; this site is its documentation subdomain. -#}
<a href="https://opensysml.org/">opensysml.org</a>
{#- The apex domain serves no HTTPS, so the www host is the only one that answers. -#}
<a href="https://www.openmbee.org/">OpenMBEE</a>
<a href="https://github.com/Open-MBEE/opensysml.github.io/wiki/OpenSysML-Wiki">Community Wiki</a>
Expand Down
Loading