From 51a8b4246d5d1a24b0fed4aa0c4b25ab39076a56 Mon Sep 17 00:00:00 2001 From: Thanh Le Date: Wed, 29 Jan 2025 10:51:53 +0100 Subject: [PATCH 1/6] Update scala 3.6.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 5953cf97..f3127b0b 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,6 @@ inThisBuild( Seq( - scalaVersion := "3.5.2", + scalaVersion := "3.6.2", versionScheme := Some("early-semver"), // Github Workflow From 38b0b92c5c53ffdaa1f647bd478344845e27af18 Mon Sep 17 00:00:00 2001 From: Thanh Le Date: Wed, 29 Jan 2025 10:53:43 +0100 Subject: [PATCH 2/6] Update tyrian 0.12.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 0c552b96..110302e6 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -20,7 +20,7 @@ object Dependencies { val scribe = Def.setting("com.outr" %%% "scribe" % scribeVersion) val scribeCats = Def.setting("com.outr" %%% "scribe-cats" % scribeVersion) - val tyrian = Def.setting("io.indigoengine" %%% "tyrian-io" % "0.11.0") + val tyrian = Def.setting("io.indigoengine" %%% "tyrian-io" % "0.12.0") val munit = Def.setting("org.scalameta" %%% "munit" % "1.1.0" % Test) val munitCatsEffect = Def.setting("org.typelevel" %%% "munit-cats-effect" % "2.0.0" % Test) From 79cab8b2873e6c13303d239deb232fb77b184ba3 Mon Sep 17 00:00:00 2001 From: Thanh Le Date: Wed, 29 Jan 2025 10:56:41 +0100 Subject: [PATCH 3/6] Update scalafmt 3.8.6 --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 45eb4641..58631d07 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = 3.8.4 +version = 3.8.6 runner.dialect = "scala3" maxColumn = 100 From 7244169d72db947911eea978a1463702c441de5c Mon Sep 17 00:00:00 2001 From: Thanh Le Date: Wed, 29 Jan 2025 13:39:53 +0100 Subject: [PATCH 4/6] Fix warning and scalafmtAll --- cli/shared/src/main/scala/grox/cli/FileReader.scala | 2 +- cli/shared/src/main/scala/grox/cli/Main.scala | 4 ++-- compiler/shared/src/main/scala/grox/Executor.scala | 4 ++-- .../shared/src/main/scala/grox/Interpreter.scala | 12 +++++++----- compiler/shared/src/main/scala/grox/State.scala | 2 +- compiler/shared/src/main/scala/grox/Token.scala | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/cli/shared/src/main/scala/grox/cli/FileReader.scala b/cli/shared/src/main/scala/grox/cli/FileReader.scala index c55c7992..650d0a4b 100644 --- a/cli/shared/src/main/scala/grox/cli/FileReader.scala +++ b/cli/shared/src/main/scala/grox/cli/FileReader.scala @@ -10,7 +10,7 @@ trait FileReader[F[_]]: object FileReader: - def instance[F[_]: Files: Concurrent]: FileReader[F] = path => + def instance[F[_]: {Files, Concurrent}]: FileReader[F] = path => Files[F] .readAll(fs2.io.file.Path(path)) .through(fs2.text.utf8.decode[F]) diff --git a/cli/shared/src/main/scala/grox/cli/Main.scala b/cli/shared/src/main/scala/grox/cli/Main.scala index 98a01e35..a7474bfe 100644 --- a/cli/shared/src/main/scala/grox/cli/Main.scala +++ b/cli/shared/src/main/scala/grox/cli/Main.scala @@ -32,7 +32,7 @@ object Main case CLI.Command.Evaluate(file) => reader.read(file).map(Command.Evaluate(_)) case CLI.Command.Run(file) => reader.read(file).map(Command.Execute(_)) - def eval[F[_]: Functor: Console: Concurrent](exec: Executor[F]): Command => F[String] = + def eval[F[_]: {Console, Concurrent}](exec: Executor[F]): Command => F[String] = case Command.Scan(str) => exec.scan(str).map(tokens => tokens.mkString("\n")) case Command.Parse(str) => exec.parse(str).map(_.show) case Command.Evaluate(str) => exec.evaluate(str).map(_.toString) @@ -46,7 +46,7 @@ object Main .parse .map(config => val level = if config.debug then Level.Debug else Level.Error - Logger.root.clearHandlers().withHandler(minimumLevel = Some(level)).replace() + val _ = Logger.root.clearHandlers().withHandler(minimumLevel = Some(level)).replace() Executor .module[IO] .use(exec => diff --git a/compiler/shared/src/main/scala/grox/Executor.scala b/compiler/shared/src/main/scala/grox/Executor.scala index dec90dc0..8bb78fba 100644 --- a/compiler/shared/src/main/scala/grox/Executor.scala +++ b/compiler/shared/src/main/scala/grox/Executor.scala @@ -16,7 +16,7 @@ trait Executor[F[_]]: object Executor: - def instance[F[_]: MonadThrow: Scribe]( + def instance[F[_]: {MonadThrow, Scribe}]( using scanner: Scanner[F], parser: Parser[F], interpreter: Interpreter[F], @@ -48,7 +48,7 @@ object Executor: yield stmts Stream.eval(stmts).flatMap(xs => executor.execute(xs)) - def module[F[_]: MonadThrow: Sync: Scribe]: Resource[F, Executor[F]] = + def module[F[_]: {Sync, Scribe}]: Resource[F, Executor[F]] = given Scanner[F] = Scanner.instance[F] given Parser[F] = Parser.instance[F] for diff --git a/compiler/shared/src/main/scala/grox/Interpreter.scala b/compiler/shared/src/main/scala/grox/Interpreter.scala index 1751a26f..1a8af5c4 100644 --- a/compiler/shared/src/main/scala/grox/Interpreter.scala +++ b/compiler/shared/src/main/scala/grox/Interpreter.scala @@ -22,13 +22,15 @@ object Interpreter: result <- evaluateWithState(state)(expr) yield result - enum RuntimeError(location: Span, msg: String) extends NoStackTrace: + enum RuntimeError(val location: Span, val msg: String) extends NoStackTrace: override def toString = msg - case MustBeNumbers(location: Span) extends RuntimeError(location, "Operands must be numbers.") - case MustBeNumbersOrStrings(location: Span) + case MustBeNumbers(override val location: Span) + extends RuntimeError(location, "Operands must be numbers.") + case MustBeNumbersOrStrings(override val location: Span) extends RuntimeError(location, "Operands must be two numbers or two strings") - case DivisionByZero(location: Span) extends RuntimeError(location, "Division by zerro") - case VariableNotFound(location: Span, name: String) + case DivisionByZero(override val location: Span) + extends RuntimeError(location, "Division by zerro") + case VariableNotFound(override val location: Span, name: String) extends RuntimeError(location, "Variable not found") type EvaluationResult = Either[RuntimeError, LiteralType] diff --git a/compiler/shared/src/main/scala/grox/State.scala b/compiler/shared/src/main/scala/grox/State.scala index 372f2be8..a408716b 100644 --- a/compiler/shared/src/main/scala/grox/State.scala +++ b/compiler/shared/src/main/scala/grox/State.scala @@ -7,7 +7,7 @@ import cats.implicits.catsSyntaxEither object State: def apply(): State = State(Map.empty[String, LiteralType], enclosing = None) -enum StateError(msg: String) extends NoStackTrace: +enum StateError(val msg: String) extends NoStackTrace: case UndefinedVariableError(variable: String) extends StateError(s"Undefined variable: '$variable'.") diff --git a/compiler/shared/src/main/scala/grox/Token.scala b/compiler/shared/src/main/scala/grox/Token.scala index c8411e93..ff53f69b 100644 --- a/compiler/shared/src/main/scala/grox/Token.scala +++ b/compiler/shared/src/main/scala/grox/Token.scala @@ -106,7 +106,7 @@ object Token: LessEqual(()), ) - given Functor[Token] with + given Functor[Token]: def map[A, B](token: Token[A])(f: A => B): Token[B] = token match case Identifier(l, a) => Identifier(l, f(a)) From b716d6a13629042d587cf4aeea5a813c42c285b1 Mon Sep 17 00:00:00 2001 From: Thanh Le Date: Wed, 29 Jan 2025 14:26:51 +0100 Subject: [PATCH 5/6] Update cats-parse 1.1.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 110302e6..c48c8483 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -9,7 +9,7 @@ object Dependencies { val catsCore = Def.setting("org.typelevel" %%% "cats-core" % "2.13.0") val catsEffect = Def.setting("org.typelevel" %%% "cats-effect" % "3.5.7") - val catsParse = Def.setting("org.typelevel" %%% "cats-parse" % "1.0.0") + val catsParse = Def.setting("org.typelevel" %%% "cats-parse" % "1.1.0") val fs2 = Def.setting("co.fs2" %%% "fs2-core" % fs2Version) val fs2IO = Def.setting("co.fs2" %%% "fs2-io" % fs2Version) From b5906df4ff01d0c097b94ee77998be2445b8d72f Mon Sep 17 00:00:00 2001 From: Thanh Le Date: Wed, 29 Jan 2025 14:28:15 +0100 Subject: [PATCH 6/6] githubWorkflowGenerate --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32ed4eb0..4887ad95 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - scala: [3.5.2] + scala: [3.6.2] java: [temurin@21] runs-on: ${{ matrix.os }} steps: