Scala-native: Proposal: dotty front-end

Created on 28 Feb 2016  ·  3Comments  ·  Source: scala-native/scala-native

https://github.com/scala-native/scala-native/tree/topic/dotty-support branch of scala-native together with https://github.com/densh/dotty/tree/nir fork of dotty contains initial work to integrate of dotty as Scala Native fronted. This is far from production ready and needs to be updated to reflect recent changes in the NIR.

nscplugin feature

Most helpful comment

Is there any plan on working on porting Scala Native to dotty? If there is, is there anything where help might be needed?

I've been thinking for a couple of weeks on Dotty and Scala Native, and I think that combining the two things can provide a very, very interesting language.

As a practical example: dotty's 'opaque types', 'extension methods' and (maybe) 'hard inlining' could make things like CString in SN as performant as in C but with the correct safety

What do you think?

All 3 comments

Was looking into this a bit and found that there is a Dotty (Scala 3) plugin API - http://dotty.epfl.ch/api/dotty/tools/dotc/plugins/Plugin.html

Plugin API ported to Dotty - lampepfl/dotty#3438
Stale sbt plugin code? lampepfl/dotty#4215
Superceded by this? sbt/sbt#4073

Thanks for the help @Blaisorblade

Is there any plan on working on porting Scala Native to dotty? If there is, is there anything where help might be needed?

I've been thinking for a couple of weeks on Dotty and Scala Native, and I think that combining the two things can provide a very, very interesting language.

As a practical example: dotty's 'opaque types', 'extension methods' and (maybe) 'hard inlining' could make things like CString in SN as performant as in C but with the correct safety

What do you think?

@marcesquerra sooner or later Scala Native will be working in Scala 3, that's for sure!
But before it happens we need to make sure that it works correctly in Scala 2 and NIR format is stable, otherwise, each bug or feature would need to be addressed twice. That might be an overkill for our relatively small team. There's still a lot of things missing before we can consider it done: multithreading, the final syntax for interop and ABI compatibility, linking as a native library, 32-bit and multiple OS support, etc.

I hope that in the summer of autumn of this year we finally focus on Scala 3 Native.

Was this page helpful?
0 / 5 - 0 ratings