Skip to content

Commit

Permalink
upgrade scalalib & scalachess
Browse files Browse the repository at this point in the history
  • Loading branch information
ornicar committed Apr 2, 2024
1 parent 5938db1 commit cfbf10e
Show file tree
Hide file tree
Showing 15 changed files with 41 additions and 41 deletions.
4 changes: 2 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ lazy val `lila-ws` = project
.classifier(s"linux-$arch_"),
("io.netty" % s"netty-transport-native-kqueue" % nettyVersion)
.classifier(s"osx-$arch_"),
"com.github.ornicar" %% "scalalib" % "9.5.8",
"org.lichess" %% "scalachess" % "15.9.0",
"org.lichess" %% "scalalib-lila" % "11.0.0",
"org.lichess" %% "scalachess" % "15.10.0",
"org.apache.pekko" %% "pekko-actor-typed" % pekkoVersion,
"com.typesafe.scala-logging" %% "scala-logging" % "3.9.5",
"com.github.blemale" %% "scaffeine" % "5.2.1" % "compile",
Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/Chess.scala
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ object Chess:
,
opening =
if Variant.list.openingSensibleVariants(req.variant)
then OpeningDb.findByEpdFen(req.fen)
then OpeningDb.findByFullFen(req.fen)
else None,
chapterId = req.chapterId
)

def apply(req: ClientOut.Opening): Option[ClientIn.OpeningMsg] =
Option
.when(Variant.list.openingSensibleVariants(req.variant))(req.fen)
.flatMap(OpeningDb.findByEpdFen)
.flatMap(OpeningDb.findByFullFen)
.map(ClientIn.OpeningMsg(req.path, _))

private def makeNode(
Expand All @@ -69,7 +69,7 @@ object Chess:
dests = if movable then game.situation.destinations else Map.empty,
opening =
if game.ply <= 30 && Variant.list.openingSensibleVariants(game.board.variant)
then OpeningDb.findByEpdFen(fen)
then OpeningDb.findByFullFen(fen)
else None,
drops = if movable then game.situation.drops else Some(Nil),
crazyData = game.situation.board.crazyData,
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/LilaHandler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package lila.ws

import com.typesafe.scalalogging.Logger
import org.apache.pekko.actor.typed.ActorRef
import ornicar.scalalib.ThreadLocalRandom
import scalalib.ThreadLocalRandom

import ipc.*

Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/Monitor.scala
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ final class Monitor(
val perState = Kamon.gauge("jvm.threads.group")
val total = Kamon.gauge("jvm.threads.group.total")
for
group <- ornicar.scalalib.Jvm.threadGroups()
group <- scalalib.Jvm.threadGroups()
_ = total.withTags(TagSet.from(Map("name" -> group.name))).update(group.total)
(state, count) <- group.states
yield perState.withTags(TagSet.from(Map("name" -> group.name, "state" -> state.toString))).update(count)
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/evalCache/EvalCacheApi.scala
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ final class EvalCacheApi(mongo: Mongo)(using
)
).foreach(putTrusted(sri, user, _))

private def monitorRequest[A](fen: Fen.Epd, mon: Monitor.evalCache.Style)(res: Option[A]): Option[A] =
private def monitorRequest[A](fen: Fen.Full, mon: Monitor.evalCache.Style)(res: Option[A]): Option[A] =
Fen
.readPly(fen)
.foreach: ply =>
Expand All @@ -92,7 +92,7 @@ final class EvalCacheApi(mongo: Mongo)(using
res

private def putTrusted(sri: Sri, user: User.Id, input: Input): Future[Unit] =
def destSize(fen: Fen.Epd): Int =
def destSize(fen: Fen.Full): Int =
chess.Game(chess.variant.Standard.some, fen.some).situation.moves.view.map(_._2.size).sum
mongo.evalCacheColl.flatMap: c =>
EvalCacheValidator(input) match
Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/evalCache/EvalCacheEntry.scala
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ object EvalCacheEntry:

case class Id(variant: Variant, smallFen: SmallFen)
object Id:
def make(variant: Variant, fen: Fen.Epd): Id =
def make(variant: Variant, fen: Fen.Full): Id =
Id(variant, SmallFen.make(variant, fen.simple))

case class Input(id: Id, fen: Fen.Epd, eval: Eval)
case class Input(id: Id, fen: Fen.Full, eval: Eval)

def makeInput(variant: Variant, fen: Fen.Epd, eval: Eval) =
def makeInput(variant: Variant, fen: Fen.Full, eval: Eval) =
SmallFen
.validate(variant, fen)
.ifTrue(eval.looksValid)
Expand Down
12 changes: 6 additions & 6 deletions src/main/scala/evalCache/EvalCacheJsonHandlers.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ import evalCache.Eval.*
object EvalCacheJsonHandlers:

def readGet(d: JsObject) = for
fen <- d.get[Fen.Epd]("fen")
fen <- d.get[Fen.Full]("fen")
variant = Variant.orDefault(d.get[Variant.LilaKey]("variant"))
multiPv = d.get[MultiPv]("mpv") | MultiPv(1)
path <- d.get[UciPath]("path")
up = d.get[Boolean]("up") | false
yield ipc.ClientOut.EvalGet(fen, variant, multiPv, path, up)

def readPut(d: JsObject) = for
fen <- d.get[Fen.Epd]("fen")
fen <- d.get[Fen.Full]("fen")
variant = Variant.orDefault(d.get[Variant.LilaKey]("variant"))
knodes <- d.get[Knodes]("knodes")
depth <- d.get[Depth]("depth")
Expand All @@ -29,23 +29,23 @@ object EvalCacheJsonHandlers:
yield ipc.ClientOut.EvalPut(fen, variant, pvs, knodes, depth)

def readGetMulti(d: JsObject) = for
fens <- d.get[List[Fen.Epd]]("fens")
fens <- d.get[List[Fen.Full]]("fens")
variant = Variant.orDefault(d.get[Variant.LilaKey]("variant"))
yield ipc.ClientOut.EvalGetMulti(fens.take(32), variant)

def writeEval(e: Eval, fen: Fen.Epd) = Json.obj(
def writeEval(e: Eval, fen: Fen.Full) = Json.obj(
"fen" -> fen,
"knodes" -> e.knodes,
"depth" -> e.depth,
"pvs" -> JsArray(e.pvs.toList.map(writePv))
)

def writeMultiHit(fen: Fen.Epd, e: Eval): JsObject = Json
def writeMultiHit(fen: Fen.Full, e: Eval): JsObject = Json
.obj("fen" -> fen, "depth" -> e.depth)
.add("cp" -> e.bestPv.score.cp)
.add("mate" -> e.bestPv.score.mate)

def writeMultiHit(evals: List[(Fen.Epd, Eval)]): JsObject = evals match
def writeMultiHit(evals: List[(Fen.Full, Eval)]): JsObject = evals match
case List(single) => writeMultiHit.tupled(single)
case many => Json.obj("multi" -> many.map(writeMultiHit.tupled))

Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/evalCache/EvalCacheMulti.scala
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ private object EvalCacheMulti:

import EvalCacheUpgrade.*

def makeSetupId(variant: Variant, fen: Fen.Epd): SetupId =
def makeSetupId(variant: Variant, fen: Fen.Full): SetupId =
s"${variant.id}${SmallFen.make(variant, fen.simple)}"

case class WatchingMember(sri: Sri, variant: Variant, fens: List[Fen.Epd]):
case class WatchingMember(sri: Sri, variant: Variant, fens: List[Fen.Full]):
def setups: List[SetupId] = fens.map(makeSetupId(variant, _))
2 changes: 1 addition & 1 deletion src/main/scala/evalCache/EvalCacheUpgrade.scala
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ private object EvalCacheUpgrade:
case class EvalState(sris: Set[Sri], depth: Depth):
def addSri(sri: Sri) = copy(sris = sris + sri)

def makeSetupId(variant: Variant, fen: Fen.Epd, multiPv: MultiPv): SetupId =
def makeSetupId(variant: Variant, fen: Fen.Full, multiPv: MultiPv): SetupId =
s"${variant.id}${SmallFen.make(variant, fen.simple)}^$multiPv"

case class WatchingMember(sri: Sri, setupId: SetupId, path: UciPath)
2 changes: 1 addition & 1 deletion src/main/scala/evalCache/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@ object SmallFen extends OpaqueString[SmallFen]:
if variant == chess.variant.ThreeCheck
then fen.value.split(' ').lift(6).foldLeft(base)(_ + _)
else base
def validate(variant: Variant, fen: Fen.Epd): Option[SmallFen] =
def validate(variant: Variant, fen: Fen.Full): Option[SmallFen] =
Fen.read(variant, fen).exists(_.playable(false)).option(make(variant, fen.simple))
4 changes: 2 additions & 2 deletions src/main/scala/ipc/ClientIn.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package lila.ws
package ipc

import chess.bitboard.Bitboard
import chess.format.{ EpdFen, Uci, UciCharPair, UciPath }
import chess.format.{ FullFen, Uci, UciCharPair, UciPath }
import chess.opening.Opening
import chess.variant.Crazyhouse
import chess.{ Check, Color, Ply }
Expand Down Expand Up @@ -122,7 +122,7 @@ object ClientIn:
id: UciCharPair,
ply: Ply,
move: Uci.WithSan,
fen: EpdFen,
fen: FullFen,
check: Check,
dests: Map[chess.Square, Bitboard],
opening: Option[Opening],
Expand Down
22 changes: 11 additions & 11 deletions src/main/scala/ipc/ClientOut.scala
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ object ClientOut:

case object FollowingOnline extends ClientOutSite

case class Opening(variant: Variant, path: UciPath, fen: Fen.Epd) extends ClientOutSite
case class Opening(variant: Variant, path: UciPath, fen: Fen.Full) extends ClientOutSite

case class AnaMove(
orig: Square,
dest: Square,
fen: Fen.Epd,
fen: Fen.Full,
path: UciPath,
variant: Variant,
chapterId: Option[ChapterId],
Expand All @@ -46,37 +46,37 @@ object ClientOut:
case class AnaDrop(
role: chess.Role,
square: Square,
fen: Fen.Epd,
fen: Fen.Full,
path: UciPath,
variant: Variant,
chapterId: Option[ChapterId],
payload: JsObject
) extends ClientOutSite

case class AnaDests(
fen: Fen.Epd,
fen: Fen.Full,
path: UciPath,
variant: Variant,
chapterId: Option[ChapterId]
) extends ClientOutSite

case class EvalGet(
fen: Fen.Epd,
fen: Fen.Full,
variant: Variant,
multiPv: MultiPv,
path: UciPath,
up: Boolean
) extends ClientOutSite

case class EvalPut(
fen: Fen.Epd,
fen: Fen.Full,
variant: Variant,
pvs: NonEmptyList[evalCache.EvalCacheEntry.Pv],
knodes: evalCache.Knodes,
depth: Depth
) extends ClientOutSite

case class EvalGetMulti(fens: List[Fen.Epd], variant: Variant) extends ClientOutSite
case class EvalGetMulti(fens: List[Fen.Full], variant: Variant) extends ClientOutSite

case class MsgType(dest: User.Id) extends ClientOutSite

Expand Down Expand Up @@ -159,7 +159,7 @@ object ClientOut:
for
d <- o.obj("d")
path <- d.get[UciPath]("path")
fen <- d.get[Fen.Epd]("fen")
fen <- d.get[Fen.Full]("fen")
variant = dataVariant(d)
yield Opening(variant, path, fen)
case "anaMove" =>
Expand All @@ -168,7 +168,7 @@ object ClientOut:
orig <- d.str("orig").flatMap { Square.fromKey(_) }
dest <- d.str("dest").flatMap { Square.fromKey(_) }
path <- d.get[UciPath]("path")
fen <- d.get[Fen.Epd]("fen")
fen <- d.get[Fen.Full]("fen")
variant = dataVariant(d)
chapterId = d.get[ChapterId]("ch")
promotion = d.str("promotion").flatMap { chess.Role.promotable(_) }
Expand All @@ -179,15 +179,15 @@ object ClientOut:
role <- d.str("role").flatMap(chess.Role.allByName.get)
square <- d.str("pos").flatMap { Square.fromKey(_) }
path <- d.get[UciPath]("path")
fen <- d.get[Fen.Epd]("fen")
fen <- d.get[Fen.Full]("fen")
variant = dataVariant(d)
chapterId = d.get[ChapterId]("ch")
yield AnaDrop(role, square, fen, path, variant, chapterId, o)
case "anaDests" =>
for
d <- o.obj("d")
path <- d.get[UciPath]("path")
fen <- d.get[Fen.Epd]("fen")
fen <- d.get[Fen.Full]("fen")
variant = dataVariant(d)
chapterId = d.get[ChapterId]("ch")
yield AnaDests(fen, path, variant, chapterId)
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/model.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package lila.ws

import chess.format.{ Fen, Uci }
import chess.{ ByColor, Color }
import ornicar.scalalib.SecureRandom
import scalalib.SecureRandom

object User:
opaque type Id = String
Expand Down
8 changes: 4 additions & 4 deletions src/main/scala/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package lila.ws

import org.apache.pekko.actor.typed.{ ActorRef, ActorSystem, Behavior }

export ornicar.scalalib.newtypes.*
export ornicar.scalalib.zeros.*
export ornicar.scalalib.extensions.*
export ornicar.scalalib.time.*
export scalalib.newtypes.*
export scalalib.zeros.*
export scalalib.extensions.*
export scalalib.time.*
export scala.concurrent.{ ExecutionContext as Executor, Future, Promise }
export scala.concurrent.duration.{ DurationInt, FiniteDuration }
export scala.concurrent.ExecutionContext.parasitic
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/util/RequestHeader.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package util

import io.netty.handler.codec.http.cookie.ServerCookieDecoder
import io.netty.handler.codec.http.{ HttpHeaderNames, HttpHeaders, QueryStringDecoder }
import ornicar.scalalib.zeros.given
import scalalib.zeros.given

import scala.jdk.CollectionConverters.*

Expand Down

0 comments on commit cfbf10e

Please sign in to comment.