Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed binary compatibility issues between different MPS versions #24

Merged
merged 9 commits into from
Feb 1, 2024

Conversation

slisson
Copy link
Member

@slisson slisson commented Feb 1, 2024

The mps-legacy-sync-plugin didn't work in all MPS versions, because of binary incompatibility of Kotlin APIs, which resulted in LinkageErrors at runtime. The project is now compiled twice, for the oldest and latest supported MPS version, and the resulting jar files are checked for diferences.

Required for MODELIX-672

…the same class files

There were LinkageErrors thrown when running the plugin in a different
MPS version than what was used during compilation.

To ensure that the plugin is actually compatible to all MPS versions it
is compiled twice and then the resulting jar file is checked to be
identical. That check fails if some (Kotlin) API changed that compiles
to different byte code.
To ensure the same plugin can be used in older MPS versions.
It produces the following compile error:

  Cannot inline bytecode built with JVM target 17 into bytecode that is
  being built with JVM target 11. Please specify proper '-jvm-target'
  option
@slisson slisson changed the title MODELIX-672 Use mps-legacy-sync-plugin in the modelix.mps repository Fixed binary compatibility issues between different MPS versions Feb 1, 2024
@slisson slisson marked this pull request as ready for review February 1, 2024 14:28
@slisson slisson merged commit 6b4cc9c into main Feb 1, 2024
5 checks passed
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.

1 participant