Skip to content

2026-08 - SysML v2 Pilot Implementation

Latest

Choose a tag to compare

@seidewitz seidewitz released this 11 Sep 20:08
· 1 commit to master since this release

This is an incremental update to the 2026-07 release. It corresponds to Eclipse plugin version 0.62.0.

Language Features

None.

Model Libraries

None.

Backward Incompatibilities

None.

Issue Resolutions

None.

Jupyter

None.

Visualization (PlantUML)

None.

Technical Updates

  1. Caching. The implementation uses caching of various computed values in order to improve performance. However, this means that, when a derived value visible externally is cached, it's value will not change when inputs to the derivation change, unless the cache is first cleared. In particular, the featureMemberships of an element are cached. Previously, this meant that, if getFeatureMembership was called, and then a new FeatureMembership was added, this was not reflected in additional the result of subsequent calls to getFeatureMembership, unless clearCaches was explicitly called first.

    This has now been changed so that getFeatureMembership automatically clears caches of the element being accessed before computing the featureMemberships of that element. In order to retain the performance benefit of caching, internal code has been revised to use the utility method TypeUtil::getFeatureMembershipsOf instead of Type::getFeatureMembership, which preserves the previous caching behavior. In addition, similar changes have been made on the getters for several other derived properties computed based on featureMembership – for details, see the PR. There are also other "families" of getters for other cached derived property values, but these have not yet been addressed.

    [PR #773]

  2. Parse post-processing. After the completion of Xtext parsing of a model file, the implementation carries out several post-processing computations to correct for limitations in the KerML and SysML grammars, as specific using the Xtext grammar language. Conceptually, this post-processing can be consider to be be part of the parsing phase when processing model text. However, previously, the post-processing code was added to the ElementAdapters, which mixed this Xtext-specific code with the Xtext-independent semantic transformation code which is the main purpose of these adapters. In this release, the post-processing code has been removed from the adapters in the package org.omg.sysml.logic.adapter and moved to two new packages, org.omg.kerml.xtext.postprocessing and org.omg.sysml.xtext.postprocessing.

    [PR #793]

Bug Fixes

  1. Owned disjoining. Fixes a bug that caused Type::getOwnedDisjoining to always return the empty list.
    [PR #791]
  2. Implicit subsetting. Corrects the removal of duplicate implicit subsetting relationships that target feature chains.
    [PR #792]
  3. Port usage. Corrects PortUsageAdapter to extend OccurrenceAdapter rather than UsageAdapter.
    [PR #795]
  4. Cross-subsetting. Fixes a bug which caused the KerMLValidator to throw an exception when checking invalid cross-subsettings.
    [PR #796]
  5. Composite usages. Revises the handling of isComposite and isReference for usages, so that isComposite = false is preserved on an XMI roundtrip.
    [PR #797]
  6. Feature types. Revises FeatureAdapter::getTypes so it doesn't throw NullPointerException when deriving the type of a Feature whose typingFeatures() result contains a null entry.
    [PR #798]