Skip to content

2025-11 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 03 Dec 23:54
· 180 commits to master since this release
74f26fa

This is an incremental update to the 2025-10 release. It corresponds to Eclipse plugin version 0.54.0.

Language Features

  1. Control function evaluation. Invocations of the functions ControlFunctions::collect and ControlFunctions::select can now be evaluated, which also allows the evaluation of collect expressions (seq.{...}) and select expressions (seq.?{...}). Per the specification, these functions are also model-level evaluable, but, unfortunately, a problem with the current specification of the model-level evaluablity of body expressions (see KERML11-178) prevents them from be used in useful cases in model-level expressions.
    [PR #718]

Model Libraries

None.

Backward Incompatibilities

  1. Name resolution. Previously, in certain cases a qualified name used as a redefinition target resolved inconsistently in the Eclipse Xtext editor and Jupyter. For example, in the model below, in Eclipse, x::y initially resolved to B::x::y in the outline tree view, but was re-resolved to A::x::y before validation. In Jupyter, it always resolved to B::x::y, which resulted in a validation error, due to B::x::y redefining itself.

    item def A {
        item x { 
            attribute y;
        }
    }
    
    item def B :> A {
        item x :>> x {
    	    attribute :>> x::y;
        }
    }
    

    The name resolution algorithm has now been updated so that x::y always resolves to A::x::y, in both Eclipse and Jupyter, with no validation error.
    [PR #717]

  2. Model-level evaluable functions. The following functions had previously been implemented as model-level evaluable, but they are not specified as model-level evaluable in the specification. Conformant with the specification, they are now longer model-level evaluable, though they can still be used and evaluated in non-model-level evaluable expressions.

    • NumericalFunctions::prod
    • NumericalFunctions::sum
    • SequenceFunctions::excludes
    • SequenceFunctions::includes
    • SequenceFunctions::isEmpty
    • SequenceFunctions::notEmpty
    • SequenceFunctions::size
    • StringFunctions::Length
    • StringFunctions::Substring

    [PR #718]

Jupyter

None.

Visualization (PlantUML)

None.

Technical Updates

  1. Library KPARs. The Maven build has been updated so that the each of the libraries under sysml.library is packaged into a KerML Package Archive (KPAR) file, using a Maven plugin for the Sysand librarian tool. The generated KPAR files are place in the sysml.library/output directory (not committed to the repository). On a release build, the KPAR files are automatically attached as artifacts to the GitHub release.
    [PR #713]

Bug Fixes

  1. getDirectedUsage. Fixed the implementation of Definition::getDirectedUsage.
    [PR #712]
  2. Item usages. Removed the incorrect validation requiring item usages to be typed by only item definitions.
    [PR #715]
  3. Constant end features. Corrected the KerML grammar to allow const on end features.
    [PR #716]
  4. Name resolution. Corrected inconsistency in the resolution of qualified names used as redefinition targets.
    [PR #717]