Skip to content

Commit 0d14b80

Browse files
committed
Partial transition to Scala3.
1 parent 8843c37 commit 0d14b80

File tree

9 files changed

+124
-124
lines changed

9 files changed

+124
-124
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ To learn more about StructTensor, please read [our paper published in OOPSLA'23]
88

99
## Requirements
1010

11-
To run this framework, you need [Scala](https://www.scala-lang.org/download/all.html) 2 of minimum version 2.13.3 and [sbt](https://www.scala-sbt.org/download/) of minimum version 1.7.0. Note that sbt relies on JDK version 8. To compile the generated code, any C++ compiler, such as GCC or Clang can be used.
11+
To run this framework, you need [Scala](https://www.scala-lang.org/download/all.html) 3 of minimum version 3.3.1 and [sbt](https://www.scala-sbt.org/download/) of minimum version 1.7.0. Note that sbt relies on JDK version 8. To compile the generated code, any C++ compiler, such as GCC or Clang can be used.
1212

1313
## Usage
1414

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
scalaVersion := "2.13.14"
1+
scalaVersion := "3.3.1"
22

33
name := "struct-tensor"
44
organization := "uk.ac.ed.dal"
55
version := "0.1"
66

7-
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"
7+
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "2.0.0"
88
libraryDependencies += "com.lihaoyi" %% "fastparse" % "3.0.2"
99
libraryDependencies += "com.github.scopt" %% "scopt" % "4.1.0"
1010
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.11" % Test

src/main/scala/uk/ac/ed/dal/structtensor/Main.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import codegen._
99

1010
import java.io.File
1111
import scopt.OParser
12+
import scopt.OParserBuilder
1213

1314
object Main extends App {
1415
import Optimizer._
@@ -67,8 +68,8 @@ object Main extends App {
6768
outFilePath: String = ""
6869
)
6970

70-
val builder = OParser.builder[Config]
71-
val parser1 = {
71+
val builder: OParserBuilder[Config] = OParser.builder[Config]
72+
val parser1: OParser[Unit,Config] = {
7273
import builder._
7374
OParser.sequence(
7475
programName("sturct-tensor"),
@@ -201,7 +202,7 @@ object Main extends App {
201202
val rcRule = Rule(
202203
ccRule.head,
203204
SoPTimesSoP(
204-
SoP(Seq(Prod(Seq(ccRule.head.vars2RedundancyVars)))),
205+
SoP(Seq(Prod(Seq(ccRule.head.vars2RedundancyVars())))),
205206
rmRule.body
206207
)
207208
)

src/main/scala/uk/ac/ed/dal/structtensor/codegen/CodegenUtils.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ object CodegenUtils {
1212
.map { case (name, i) => s"const int $name = atoi(argv[${i + 1}]);" }
1313
.mkString("\n")
1414

15-
def CPP_printerr(var_name: String, dimensions: Seq[String]) =
15+
def CPP_printerr(var_name: String, dimensions: Seq[String]): String =
1616
s"cerr << $var_name[${dimensions.map(e => s"$e - 1").mkString("][")}] << endl;"
1717

1818
def CPP_return(): String = "return 0;\n}"
@@ -263,7 +263,7 @@ int main(int argc, char **argv){
263263
.mkString("][")}]);"""
264264
}
265265

266-
def CPP_free(var_name: String, dims: Seq[Dim]) = {
266+
def CPP_free(var_name: String, dims: Seq[Dim]): String = {
267267
val dimensions = dims.map(C_convert_index(_))
268268
val c0 = dimensions.init.zipWithIndex
269269
.map { case (dim, i) => s"for (size_t i$i = 0; i$i < $dim; ++i$i) {" }
@@ -317,7 +317,7 @@ int main(int argc, char **argv){
317317
case _ => throw new Exception("Unknown code language")
318318
}
319319

320-
def free(lang: String, var_name: String, dims: Seq[Dim]) =
320+
def free(lang: String, var_name: String, dims: Seq[Dim]): String =
321321
lang.toUpperCase() match {
322322
case "C" => C_free(var_name)
323323
case "CPP" => CPP_free(var_name, dims)

0 commit comments

Comments
 (0)