Skip to content

Conversation

@fisakov
Copy link
Contributor

@fisakov fisakov commented Oct 23, 2025

No dependencies in mps-extensions on this module.

@sergej-koscejev
Copy link
Collaborator

@alexanderpann can you please review/comment?

@alexanderpann
Copy link
Collaborator

The included jars in MPS.IDEA expose more libraries than MPS.ThirdParty. Unfortunately, the library is used in other platforms such as mbeddr (22 usages) and probably in customer projects, so this would be a breaking change without a migration. One of the main motivations was that some libraries use the Kotlin standard library which is not exposed as stubs that's why MPS.Kotlin was also added to MPS-Extensions which MPS.ThirdParty depends on (there is a separate issue that I figured out: #1640)
@fisakov You can open the class CommitCheck where the reference to Continuation is broken. All classes from the IntelliJ with references to the standard library can't be used as a result. If this is fixed on MPS master, we can think of merging it but preferable with a migration.

@fisakov
Copy link
Contributor Author

fisakov commented Oct 24, 2025

Unfortunately, the library is used in other platforms such as mbeddr (22 usages) and probably in customer projects, so this would be a breaking change without a migration.

I manually updated references in Mbeddr in mbeddr/mbeddr.core#3219. Both mps-extensions and Mbeddr are passing our CI build. I can think of providing a migration, just not an automated migration. It will probably be a shell script with sed/awk commands.

One of the main motivations was that some libraries use the Kotlin standard library which is not exposed as stubs that's why MPS.Kotlin was also added to MPS-Extensions which `MPS.ThirdParty

The proper way to access Kotlin stubs is via Kotlin stubs loader, java class files misrepresent Kotlin. Kotlin stdlib is available via jetbrains.mps.kotlin.stdlib. That said, direct usage of these classes is only possible from Kotlin code (no BaseLanguage-to-Kotlin interop possible atm). At the same time, Kotlin's Continuation interface is not compatible with Java call mechanism: it's a part of Coroutines framework where it implements the "Continuation-Passing" invocation pattern. In short, Kotlin methods accepting Continuation should not be called from Java directly.

To be honest, MPS.ThirdParty (and MPS.Kotlin for that matter) is a hack that has no right to exist. IDEA platform is now undergoing a major change and all libraries are being repackaged: instead of being availble in lib.jar or other locations, module files are used. We cannot be sure which of these are to be available in the release, this is subject to change, but we keep an eye on that.

` depends on (there is a separate issue that I figured out: #1640) @fisakov You can open the class CommitCheck where the reference to Continuation is broken. All classes from the IntelliJ with references to the standard library can't be used as a result. If this is fixed on MPS master, we can think of merging it but preferable with a migration.

We can look into this issue, but in the meantime keeping MPS.ThirdParty around makes little sense.

Copy link
Collaborator

@alexanderpann alexanderpann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MPS.ThirdParty solution was also introduced at a time when we did not have access to all jars provided by the IntelliJ plugin, and I agree that it was only a hack. The change is breaking, but at least only in 2025.3, so not directly affecting customer projects. I'll approve the PR when the README is also updated.

No dependencies in mps-extensions on this module.

# Conflicts:
#	code/.mps/modules.xml
#	code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
@fisakov
Copy link
Contributor Author

fisakov commented Oct 29, 2025

I started to uproot MPS.ThirdParty after I found out it was in my way when resolving artifacts from "external layout", which is now a feature supported by build language. Mbeddr core is relying on it (see mbeddr/mbeddr.core#3219). It turned out to be misused: at several locations I found same model imported in parallel both from it and from MPS.IDEA. So, it had to go.

I updated the changelog with info on MPS.ThirdParty and MPS.Kotlin.

@fisakov fisakov merged commit 1c4d9e0 into master Oct 30, 2025
2 checks passed
@fisakov fisakov deleted the mps/2025.3 branch October 30, 2025 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants