scalafiddle / scalafiddle-core

Source code for the scalafiddle.io compilation service
https://scalafiddle.io
Apache License 2.0
101 stars 37 forks source link

Support Scala 2.12 #7

Closed ochrons closed 6 years ago

ochrons commented 7 years ago

Create a separate compiler instance that support compiling with Scala 2.12

davegurnell commented 6 years ago

I made a tiny amount of pseudo-progress on this at the Scala World hack day.

I've forked the repo here: https://github.com/davegurnell/scalafiddle-core

and changed some library dependency versions randomly until it compiled: https://github.com/davegurnell/scalafiddle-core/commit/aa45ff4e81ee6dbc15d08f6eaa43b8856a026484

There's a mild regression from Akka 2.5.x to 2.4.x, which I'm guessing will go away as new versions are published to Maven Central.

I've now hit problems with bits of the SBT/compiler interface that are no longer public. There are a few dozen errors in total. Here is one example:

[error] /Users/dave/dev/projects/scalafiddle-core/compiler-server/src/main/scala/scalafiddle/compiler/Compiler.scala:128: class JavaContext is abstract; cannot be instantiated
[error]     val jCtx          = new JavaContext()
[error]                         ^

This occurs because the relevant class is no longer part of the SBT/compiler public API:

scala.tools.nsc.util.ClassPath.scala:169:
@deprecated("shim for sbt's compiler interface", since = "2.12.0")
sealed abstract class JavaContext
ochrons commented 6 years ago

2.12 is now supported by working around some of the compiler internals :)