The MPS community is quite active but talks little about their work. I went through Git commit logs for the last month and collected notable changes in MPS and the most prominent MPS libraries.
MPS master (version 2026.1)
- Fix for Java stubs being loaded incorrectly sometimes (MPS-39316, also in 2025.3), along with a few improvements to Java stubs (MPS-39356).
- Support for multi-line binary expressions (MPSSPRT-474, not accessible publicly).
- UI color fixes and a new splash screen (MPS-39266 - editor gutter color, MPS-39257 - red color in dependency analyzer tool for the Islands theme, MPS-39370 - the new splash screen).
- Migration listeners were changed from extension points to ModuleRuntime.Extensions (a newer way of implementing extensions with an API that is supposed to be more safe in the face of reloading classes).
- Accommodating the updates of the underlying IDEA platform: fixes related to the product-info.json file, RCP boot classpath, converting a component to a service.
- The HTML page that appears when opening a node by URL now shows international characters in the node name correctly (MPS-39352).
- (Ongoing) Updating the generator_demo sample project to the current best practices (ongoing, MPS-39192).
- (Ongoing) integration of the MPS in-IDE build with JPS (the IntelliJ Platform build system). This should help with implementing a background build in the future. MPS used to be able to build in the background, but this option was disabled because with newer MPS versions it led to deadlocks.
MPS-extensions
- Line numbers are now updated asynchronously for better performance
- The assertions of the ‘compare’ language can now be configured to ignore annotations (as they previously did by default).
- An experimental extension point for customizing concept aliases. This feature is implemented using MPS internals and can break in future MPS versions, but you can try it out and give feedback.
- An extension point to customize intentions (e.g. disable intentions from libraries or change their descriptions). Works with the custom intentions menu.
mbeddr
No changes except integrating the MPS-extensions updates above.
IETS3 Opensource
-
Improvements in feature modeling. I do not have enough knowledge to describe them or comment on them.
-
The typesystem rules now use nullable ‘as’ casts instead of strict (’:’) casts and KernelF should produce fewer exceptions in unforeseen cases.
mps-build-backends, mbeddr/mps-gradle-plugin
No changes in December.
specificlanguages/mps-gradle-plugin
No changes in December.
The artifact transforms story from November turned out to be more complicated. As pointed out by Sascha Lißon, artifact transforms will not let users share MPS or JBR versions among unrelated projects. The key under which the result of an artifact transform is cached takes into account the complete classpath of the Gradle build script that performs the transform (not just the classpath of the transform itself). This classpath depends on the set of applied plugins and their versions and is likely to be different for different build scripts.
IntelliJ Platform Gradle Plugin hit this problem as well and solved it by implementing its own caching of the extracted distributions. I am almost finished implementing this for the MPS Gradle plugin and I’m going to release the final version 2.0.0 soon.