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
Update Scala to version 2.12.15 #3621
Conversation
f1325d4
to
3187c5a
Compare
@@ -25,21 +25,21 @@ object ListenAtName { | |||
|
|||
private def buildPar[G[_]: BuildPar](name: G[Name]) = implicitly[BuildPar[G]].build(name) | |||
|
|||
implicit def buildParF[F[_]: MonadError[?[_], Throwable]] = new BuildPar[λ[A => F[Id[A]]]] { | |||
implicit def buildParF[F[_]: MonadError[*[_], Throwable]] = new BuildPar[λ[A => F[Id[A]]]] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the difference between ?
and *
?
I thought that it doesn't care which charactor it used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess, here is the answer. But it is not clear for me. Look like _
replaces with ?
, ?
replaces with *
for a while, *
replaces back to _
again according to the article. What is the reason?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think Scala folks just want to make thing more interesting. 😃
I think the main reason is to support partial application of type level functions.
F[_, B](A) => F[A, B]
F[A, _](B) => F[A, B]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Left some questions.
Just curious. Maybe it would also make sense to upgrade to 2.13
? I think someone tries to do that before but failed.
) | ||
|
||
private val kindProjector = compilerPlugin("org.typelevel" %% "kind-projector" % "0.10.3") | ||
private val kindProjector = compilerPlugin( | ||
"org.typelevel" %% "kind-projector" % "0.13.2" cross CrossVersion.full |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does cross CrossVersion.full
means? It is not clear for me from sbt documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sbt will use this information to correctly download (create download urls) artifacts from maven repository.
@@ -25,21 +25,21 @@ object ListenAtName { | |||
|
|||
private def buildPar[G[_]: BuildPar](name: G[Name]) = implicitly[BuildPar[G]].build(name) | |||
|
|||
implicit def buildParF[F[_]: MonadError[?[_], Throwable]] = new BuildPar[λ[A => F[Id[A]]]] { | |||
implicit def buildParF[F[_]: MonadError[*[_], Throwable]] = new BuildPar[λ[A => F[Id[A]]]] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess, here is the answer. But it is not clear for me. Look like _
replaces with ?
, ?
replaces with *
for a while, *
replaces back to _
again according to the article. What is the reason?
@@ -8,6 +8,7 @@ object Dependencies { | |||
val catsEffectVersion = "2.5.4" | |||
val catsMtlVersion = "0.7.1" | |||
val fs2Version = "2.5.10" | |||
val monixVersion = "3.4.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason to extract monixVersion
? It is used only in one place.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to make it more explicit as it's important library for us and version is related to cats effect version.
@@ -11,7 +11,10 @@ object ParMapTypeMapper { | |||
|
|||
private[models] def parMapToEMap(parMap: ParMap): EMap = | |||
EMap( | |||
parMap.ps.sortedList.map(t => zip(t._1, t._2)), | |||
// Convert to Vector because with Scala 0.12.5 deserialized empty List (Nil) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you mean 2.12.5
? It is similar to RNode version 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Yes, I meant Scala version 2.12.15. 😂
@zsluedem Yes, multiple times. :) This tgrospic#20 is my last attempt and I think I'm much closer now. |
3187c5a
to
808e3af
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
bors merge |
Build succeeded: |
Overview
This PR is another update for Scala as preparation for Scala 2.13 and finally to Scala 3.
Please make sure that this PR:
Bors cheat-sheet:
bors r+
runs integration tests and merges the PR (if it's approved),bors try
runs integration tests for the PR,bors delegate+
enables non-maintainer PR authors to run the above.