vigoo/clipp

support for scala3

Closed this issue · 5 comments

Are there any impediments to cross-building and publishing scala3 binaries?

vigoo commented

This is currently blocked by eff not having a Scala3 version yet.
I have plans of not using eff at all in this project in the future; when that happens or if eff gets published for Scala3 I will immediately start cross-publishing for it too.

I understand.

Meanwhile, do you have any suggestion how to use the clipp 2.13 library from a scala3 program?

I managed to get almost there with this application:
https://github.com/NicolasRouquette/scala3-bundle-closure/blob/master/src/main/scala/io/opencaesar/oml2owl/Oml2OwlApp.scala

However, I get a strange compilation error without any source attribution:

[error] An existential type that came from a Scala-2 classfile cannot be
[error] mapped accurately to to a Scala-3 equivalent.
[error] original type    : (S[X], X => cats.free.Free[S, A]) forSome X
[error] reduces to       : (S[X], X => cats.free.Free[S, A])
[error] type used instead: (S[Any], Any => cats.free.Free[S, A])
[error] This choice can cause follow-on type errors or hide type errors.
[error] Proceed at own risk.
[error] one error found
[error] one error found
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 1 s, completed Apr 4, 2021, 4:24:30 PM

I suppose it has something to do with the definition of my parameters parser:

https://github.com/NicolasRouquette/scala3-bundle-closure/blob/master/src/main/scala/io/opencaesar/oml2owl/Parameters.scala#L29

I could not find a way to solve this problem so I decided to copy just what I need of clipp to compile with scala 3.0.0-RC2.

https://github.com/NicolasRouquette/scala3-bundle-closure/tree/scala3-only

vigoo commented

I don't know how to fix that existential type error, but will look into this and try to provide a Scala3 build or some workaround soon.

vigoo commented

Seems like all the dependencies are now released for Scala 3, I'll try to make a release soon