Skip to content

Commit

Permalink
chore: Cleanup more unused warnings.
Browse files Browse the repository at this point in the history
* chore: Upgrade to Scala 3.3.0-RC2, cleanup

* Clean-up j17.

* chore: Cleanup more unused warnings.

* Cleanup benchmarks and Library17
  • Loading branch information
markehammons authored Feb 10, 2023
1 parent 09a719b commit b35bae7
Show file tree
Hide file tree
Showing 25 changed files with 57 additions and 135 deletions.
17 changes: 1 addition & 16 deletions build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,14 @@ import com.github.lolgab.mill.mima._
import $ivy.`com.lihaoyi::mill-contrib-scoverage:`
import mill.contrib.scoverage.{ScoverageModule, ScoverageReport}

object v {
val munit = "1.0.0-M6"
val jmh = "1.33"
val jnr = "2.2.3"
val jna = "5.9.0"
val scoverage = "1.4.0"
}

object scoverage extends BaseModule with ScoverageReport

trait BaseModule extends ScoverageModule with ScalafmtModule {
def scalaVersion = "3.3.0-RC2"
def scoverageVersion = "2.0.7"

val munitVersion = "1.0.0-M6"
val munitVersion = "1.0.0-M7"
val jmhV = "1.33"
val jnr = "2.2.3"
val jna = "5.9.0"

def ivyDeps = Agg(
ivy"org.scala-lang::scala3-staging:${scalaVersion()}"
Expand Down Expand Up @@ -164,11 +154,6 @@ object `runtime` extends BaseModule with PublishableModule {

override def moduleDeps = Seq(j17, j19)

// override def ivyDeps = Agg(
// ivy"fr.hammons::slinc-j17:${publishVersion()}",
// ivy"fr.hammons::slinc-j19:${publishVersion()}"
// )

object test extends Tests with TestModule.Munit {
def ivyDeps = Agg(ivy"org.scalameta::munit:$munitVersion")

Expand Down
4 changes: 3 additions & 1 deletion core/src/fr/hammons/slinc/Fn.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ object Fn:
toNativeCompatibleImpl('a)
}

@nowarn
// todo: remove once https://github.com/lampepfl/dotty/issues/16863 is fixed
@nowarn("msg=unused implicit parameter")
@nowarn("msg=unused local definition")
def toNativeCompatibleImpl[A](a: Expr[A])(using Quotes, Type[A]): Expr[A] =
import quotes.reflect.*
val typeArgs = TypeRepr.of[A].typeArgs
Expand Down
5 changes: 2 additions & 3 deletions core/src/fr/hammons/slinc/LibraryI.scala
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ object LibraryI:
// todo: get rid of this once bug https://github.com/lampepfl/dotty/issues/16863 is fixed
@nowarn("msg=unused implicit parameter")
@nowarn("msg=unused local definition")
@nowarn("msg=unused explicit parameter")
def bindingImpl[R, L[_] <: LibraryI#Library[?]](using q: Quotes)(using
Type[R],
Type[L]
Expand Down Expand Up @@ -170,7 +169,7 @@ object LibraryI:
}
val rTransition: Expr[Object | Null => R] = Type.of[R] match
case '[Unit] =>
'{ (obj: Object | Null) => () }.asExprOf[Object | Null => R]
'{ (_: Object | Null) => () }.asExprOf[Object | Null => R]
case '[r] =>
Expr
.summon[DescriptorOf[R]]
Expand Down Expand Up @@ -279,7 +278,7 @@ object LibraryI:
)(using Quotes, Type[L]) =
val name: LibraryLocation = LibraryName.libraryName[L]
name match
case LibraryLocation.Standardard =>
case LibraryLocation.Standard =>
'{ $platformSpecificExpr.getStandardLibLookup }
case LibraryLocation.Local(s) =>
'{ $platformSpecificExpr.getLocalLookup(${ Expr(s) }) }
Expand Down
9 changes: 6 additions & 3 deletions core/src/fr/hammons/slinc/LibraryName.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ package fr.hammons.slinc

import scala.annotation.StaticAnnotation
import scala.quoted.*
import scala.annotation.nowarn

class LibraryName(name: String) extends StaticAnnotation
class LibraryName(val name: String) extends StaticAnnotation

//todo: remove this once https://github.com/lampepfl/dotty/issues/16878 is fixed
@nowarn("msg=unused explicit parameter")
enum LibraryLocation:
case Local(s: String)
case Resource(s: String)
case Path(s: String)
case Standardard
case Standard

object LibraryName:
def libraryName[L](using Quotes, Type[L]) =
Expand All @@ -29,4 +32,4 @@ object LibraryName:
case s => LibraryLocation.Local(s)
}
.headOption
.getOrElse(LibraryLocation.Standardard)
.getOrElse(LibraryLocation.Standard)
2 changes: 1 addition & 1 deletion core/src/fr/hammons/slinc/Lookup.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ trait Lookup(libraryLocation: LibraryLocation):
def lookup(name: String): Object

def lookupError(name: String): Error = libraryLocation match
case LibraryLocation.Standardard =>
case LibraryLocation.Standard =>
Error(s"Failed to load symbol $name from the standard library.")
case LibraryLocation.Resource(location) =>
Error(
Expand Down
4 changes: 4 additions & 0 deletions core/src/fr/hammons/slinc/MacroHelpers.scala
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package fr.hammons.slinc

import scala.quoted.*
import scala.annotation.nowarn

private[slinc] object MacroHelpers:
// todo: remove once https://github.com/lampepfl/dotty/issues/16863 is fixed
@nowarn("msg=unused local definition")
@nowarn("msg=unused implicit parameter")
def widenExpr(t: Expr[?])(using Quotes) =
import quotes.reflect.*
t match
Expand Down
10 changes: 3 additions & 7 deletions core/src/fr/hammons/slinc/Ptr.scala
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
package fr.hammons.slinc

import scala.util.TupledFunction
import scala.annotation.experimental
import scala.annotation.targetName
import scala.compiletime.{erasedValue, summonInline}
import scala.reflect.ClassTag
import fr.hammons.slinc.modules.DescriptorModule

class Ptr[A](private[slinc] val mem: Mem, private[slinc] val offset: Bytes):
def `unary_!`(using receive: Receive[A]): A = receive.from(mem, offset)
def asArray(size: Int)(using
ClassTag[A]
)(using DescriptorOf[A], DescriptorModule)(using r: ReceiveBulk[A]) =
def asArray(size: Int)(using DescriptorOf[A], DescriptorModule)(using
r: ReceiveBulk[A]
) =
r.from(mem.resize(DescriptorOf[A].size * size), offset, size)

def `unary_!_=`(value: A)(using send: Send[A]) = send.to(mem, offset, value)
Expand Down
1 change: 1 addition & 0 deletions core/src/fr/hammons/slinc/Receive.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import fr.hammons.slinc.modules.DescriptorModule
import scala.annotation.nowarn

class ReceiveI(val libraryPs: LibraryI.PlatformSpecific):
// todo: replace with `erased` once that's not experimental anymore
@nowarn("msg=unused implicit parameter")
inline given fnReceive[A](using Fn[A, ?, ?]): Receive[A] =
new Receive[A]:
Expand Down
15 changes: 10 additions & 5 deletions core/src/fr/hammons/slinc/Send.scala
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package fr.hammons.slinc

import scala.quoted.*
import scala.annotation.targetName
import scala.deriving.Mirror
import scala.compiletime.{erasedValue, summonInline}
import scala.compiletime.summonInline
import scala.util.chaining.*
import fr.hammons.slinc.container.{ContextProof, *:::, End}
import fr.hammons.slinc.modules.DescriptorModule
import scala.annotation.nowarn

trait Send[A]:
def to(mem: Mem, offset: Bytes, value: A): Unit
Expand All @@ -33,11 +33,16 @@ object Send:
}
).asInstanceOf[Send[A]]

// todo: get rid of this once bug https://github.com/lampepfl/dotty/issues/16863 is fixed
@nowarn("msg=unused implicit parameter")
private def asExprOf[A](expr: Expr[Any])(using Quotes, Type[A]) =
import quotes.reflect.*
if expr.isExprOf[A] then expr.asExprOf[A]
else '{ $expr.asInstanceOf[A] }

// todo: get rid of this once bug https://github.com/lampepfl/dotty/issues/16863 is fixed
@nowarn("msg=unused implicit parameter")
@nowarn("msg=unused local definition")
private def stagedHelper(
layout: TypeDescriptor,
mem: Expr[Mem],
Expand Down Expand Up @@ -142,15 +147,15 @@ object Send:
case _: EmptyTuple => ()

given Send[Int] with
inline def to(mem: Mem, offset: Bytes, value: Int) =
def to(mem: Mem, offset: Bytes, value: Int) =
mem.writeInt(value, offset)

given Send[Float] with
inline def to(mem: Mem, offset: Bytes, value: Float) =
def to(mem: Mem, offset: Bytes, value: Float) =
mem.writeFloat(value, offset)

given Send[Long] with
inline def to(mem: Mem, offset: Bytes, value: Long) =
def to(mem: Mem, offset: Bytes, value: Long) =
mem.writeLong(value, offset)

given Send[Double] with
Expand Down
3 changes: 1 addition & 2 deletions core/src/fr/hammons/slinc/SlincImpl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import scala.annotation.StaticAnnotation
import scala.quoted.*
import scala.annotation.nowarn

@nowarn("msg=unused explicit parameter")
class SlincImpl(version: Int) extends StaticAnnotation
class SlincImpl(val version: Int) extends StaticAnnotation

object SlincImpl:
inline def findImpls(): Map[Int, () => Slinc] = ${
Expand Down
1 change: 0 additions & 1 deletion core/src/fr/hammons/slinc/Struct.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import scala.compiletime.{
summonInline,
constValueTuple
}
import java.util.concurrent.atomic.AtomicReference
import scala.reflect.ClassTag
import modules.DescriptorModule
import fr.hammons.slinc.modules.TransitionModule
Expand Down
11 changes: 3 additions & 8 deletions core/src/fr/hammons/slinc/Tools.scala
Original file line number Diff line number Diff line change
@@ -1,14 +1,7 @@
package fr.hammons.slinc

import java.nio.file.{Files, Paths, Path}
import java.nio.file.{Files, Paths}
import types.{os, OS}
import java.security.MessageDigest
import java.util.HexFormat
import fr.hammons.slinc.types.OS
import fr.hammons.slinc.types.OS
import java.nio.channels.Channel
import java.nio.channels.ByteChannel
import java.nio.channels.Channels
import scala.sys.process.*

object Tools:
Expand All @@ -20,6 +13,8 @@ object Tools:
case OS.Linux => s"${System.getProperty("user.home").nn}/.cache/slinc/"
case OS.Darwin =>
s"${System.getProperty("user.home").nn}/Library/Application Support/"
// todo: write a better handling for this
case OS.Unknown => ???
)
.nn

Expand Down
12 changes: 3 additions & 9 deletions core/src/fr/hammons/slinc/container/ContextProof.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package fr.hammons.slinc.container

import scala.compiletime.ops.int.+
import scala.compiletime.constValue
import scala.compiletime.summonAll
import scala.compiletime.erasedValue
import scala.compiletime.error
import scala.quoted.*
import scala.annotation.nowarn

class ContextProof[C <: Capabilities, A](val tup: ContextProof.ToTuple[C, A])

Expand All @@ -18,14 +15,11 @@ object ContextProof:
case head *::: tail => head[T] *: ToTuple[tail, T]
case End => EmptyTuple

// todo: replace with `erased` for l once that's not experimental
@nowarn("msg=unused implicit parameter")
inline given reducedProof[A, Cap <: Capabilities, C[_], N <: Int](using
c: ContextProof[Cap, A],
l: LocationInCap[C, Cap, N]
): ContextProof[C *::: End, A] = new ContextProof(
(c.tup.productElement(constValue[N]).asInstanceOf[C[A]]) *: EmptyTuple
)

// given conversionFromProof[A,B](using c: ContextProof[Conversion[*,B] *::: End, A]): Conversion[A,B] = c.tup.head
// given unconversionFromProof[A,B](using c: ContextProof[Conversion[B,*] *::: End,A]): Conversion[B,A] = c.tup.head

// given equalityProof[A,B](using c: ContextProof[=:=[A,*] *::: End, B]): =:=[A,B] = c.tup.head
4 changes: 4 additions & 0 deletions core/src/fr/hammons/slinc/types/Arch.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package fr.hammons.slinc.types

import scala.annotation.nowarn

//todo: remove once https://github.com/lampepfl/dotty/issues/16878 is fixed
@nowarn("msg=unused explicit parameter")
private[slinc] enum Arch:
case I386
case X64
Expand Down
4 changes: 4 additions & 0 deletions core/src/fr/hammons/slinc/types/OS.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package fr.hammons.slinc.types

import scala.annotation.nowarn

//todo: remove once https://github.com/lampepfl/dotty/issues/16878 is fixed
@nowarn("msg=unused explicit parameter")
enum OS:
case Linux
case Darwin
Expand Down
3 changes: 3 additions & 0 deletions core/test/src/fr/hammons/slinc/BindingSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ package fr.hammons.slinc

import munit.ScalaCheckSuite
import scala.concurrent.duration.*
import scala.annotation.nowarn

//todo: get rid of this once https://github.com/lampepfl/dotty/issues/16876 is fixed
@nowarn("msg=unused explicit parameter")
trait BindingSpec(val slinc: Slinc) extends ScalaCheckSuite:
import slinc.{given, *}
override def munitTimeout: Duration = 5.minutes
Expand Down
3 changes: 1 addition & 2 deletions core/test/src/fr/hammons/slinc/JitManagerSpec.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.hammons.slinc

import scala.compiletime.uninitialized
import scala.quoted.staging.Compiler
import scala.concurrent.Future
import scala.concurrent.duration.*
Expand All @@ -27,7 +26,7 @@ class JitManagerSpec extends munit.FunSuite:
var code: (() => Int) | Null = null
import scala.language.unsafeNulls
jitManager.jitc(() => 1, _('{ () => 2 }), code = _)
for i <- 0 until 4
for _ <- 0 until 4
yield code()

Await.result(
Expand Down
67 changes: 0 additions & 67 deletions core/test/src/fr/hammons/slinc/LibrarySpec.scala

This file was deleted.

1 change: 1 addition & 0 deletions core/test/src/fr/hammons/slinc/StdlibSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import org.scalacheck.Arbitrary
import fr.hammons.slinc.types.OS
import scala.annotation.nowarn

//todo: remove when https://github.com/lampepfl/dotty/issues/16876 is fixed
@nowarn("msg=unused explicit parameter")
@nowarn("msg=unused implicit parameter")
trait StdlibSpec(val slinc: Slinc) extends ScalaCheckSuite:
Expand Down
Loading

0 comments on commit b35bae7

Please sign in to comment.