Hey everyone. Scala 3 released a few days ago, and this update helps you use it for your ScalaPlugins!
Added in this release:
v3_0_0 entry in the ScalaVersion enum.
@CustomScala annotation now has a new method: scalaLibs. This is an array of extra runtime support libraries for your distribution of Scala. You can now pick-and choose which of the scala runtime libs you need. Although it is technically possible to mis-use this mechanism to load other runtime libraries, this is STRONGLY DISCOURAGED!
Command to show the scalaplugins: /listscalaplugins. This shows at which version of Scala they were compiled, but they are grouped if they are binary compatible.
Command to dump bytecode and a command to dump bytecode once classes load. This is mainly useful for myself when developing this plugin, but it allowed me to clean up the classloader code by so much.
Fixes:
Fixed an error that would occur if a ScalaPlugin defined ApiVersion.LEGACY
If two ScalaPlugins were using compatible versions of the Scala runtime sometimes the oldest version was chosen instead of the newest. Now the newest version is chosen correctly.
Other changes:
The builtin download urls of the runtime libraries now no loger depend on JFrog's Bintray service which is shutting down - instead they are downloaded from Maven Central. Server admins might need to run /resetScalaUrls to get this change.
More progress on generating bytecode to convert scala collections to java collections for @ConfigurationSerializable, however this is not used yet - it's still dead code.
The permissions have been updated too:
scalaloader.resetscalaurls allows access to /resetScalaUrls
scalaloader.listscalaplugins allows access to /listScalaPlugins