Skip to content

Commit 25275b2

Browse files
author
Oron Port
committed
remove StableEnum workaround after scala/scala3#23218 fix
1 parent 20f1db9 commit 25275b2

File tree

10 files changed

+31
-49
lines changed

10 files changed

+31
-49
lines changed

compiler/ir/src/main/scala/dfhdl/compiler/ir/Config.scala

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
package dfhdl.compiler.ir
2-
import dfhdl.internals.StableEnum
32
import upickle.default.*
43
opaque type ConfigN[T] = T | None.type
54
object ConfigN:
@@ -55,7 +54,7 @@ end ConfigN
5554

5655
/** Sets the policy for inclusing the clock or reset signals when they are not needed
5756
*/
58-
enum ClkRstInclusionPolicy extends StableEnum derives CanEqual, ReadWriter:
57+
enum ClkRstInclusionPolicy derives CanEqual, ReadWriter:
5958
/** Don't include if not needed
6059
*/
6160
case AsNeeded
@@ -66,7 +65,7 @@ enum ClkRstInclusionPolicy extends StableEnum derives CanEqual, ReadWriter:
6665

6766
type ClkCfg = ConfigN[ClkCfg.Explicit]
6867
object ClkCfg:
69-
enum Edge extends StableEnum derives CanEqual, ReadWriter:
68+
enum Edge derives CanEqual, ReadWriter:
7069
case Rising, Falling
7170

7271
final case class Explicit(
@@ -80,9 +79,9 @@ end ClkCfg
8079

8180
type RstCfg = ConfigN[RstCfg.Explicit]
8281
object RstCfg:
83-
enum Mode extends StableEnum derives CanEqual, ReadWriter:
82+
enum Mode derives CanEqual, ReadWriter:
8483
case Async, Sync
85-
enum Active extends StableEnum derives CanEqual, ReadWriter:
84+
enum Active derives CanEqual, ReadWriter:
8685
case Low, High
8786

8887
final case class Explicit(
@@ -94,7 +93,7 @@ object RstCfg:
9493
ReadWriter
9594
end RstCfg
9695

97-
enum RTDomainCfg extends HasRefCompare[RTDomainCfg], StableEnum derives CanEqual, ReadWriter:
96+
enum RTDomainCfg extends HasRefCompare[RTDomainCfg] derives CanEqual, ReadWriter:
9897
case Derived
9998
case Related(relatedDomainRef: RTDomainCfg.RelatedDomainRef) extends RTDomainCfg
10099
case Explicit(name: String, clkCfg: ClkCfg, rstCfg: RstCfg) extends RTDomainCfg

compiler/ir/src/main/scala/dfhdl/compiler/ir/DFMember.scala

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,10 @@ object DFVal:
260260
def isPort: Boolean = mod.dir match
261261
case Modifier.IN | Modifier.OUT | Modifier.INOUT => true
262262
case _ => false
263-
enum Dir extends StableEnum derives CanEqual, ReadWriter:
263+
enum Dir derives CanEqual, ReadWriter:
264264
case VAR, IN, OUT, INOUT
265265
export Dir.{VAR, IN, OUT, INOUT}
266-
enum Special extends StableEnum derives CanEqual, ReadWriter:
266+
enum Special derives CanEqual, ReadWriter:
267267
case Ordinary, REG, SHARED
268268
export Special.{Ordinary, REG, SHARED}
269269

@@ -502,7 +502,7 @@ object DFVal:
502502
).asInstanceOf[this.type]
503503
end Special
504504
object Special:
505-
enum Kind extends StableEnum derives CanEqual, ReadWriter:
505+
enum Kind derives CanEqual, ReadWriter:
506506
case NOTHING, OPEN, CLK_FREQ
507507
export Kind.{NOTHING, OPEN, CLK_FREQ}
508508

@@ -594,7 +594,7 @@ object DFVal:
594594
end Func
595595

596596
object Func:
597-
enum Op extends StableEnum derives CanEqual, ReadWriter:
597+
enum Op derives CanEqual, ReadWriter:
598598
case +, -, *, /, ===, =!=, <, >, <=, >=, &, |, ^, %, ++
599599
case >>, <<, **, ror, rol, reverse, repeat
600600
case unary_-, unary_~, unary_!
@@ -746,7 +746,7 @@ object DFVal:
746746

747747
object History:
748748
type InitRef = DFRef.TwoWay[DFVal, History]
749-
enum Op extends StableEnum derives CanEqual, ReadWriter:
749+
enum Op derives CanEqual, ReadWriter:
750750
case State // represents either `prev` in DF domain or `reg` in RT domain
751751
case Pipe // pipe only represents a pipe constraint under DF domain
752752
extension (history: DFVal.Alias.History)
@@ -949,7 +949,7 @@ end DFRange
949949

950950
object DFRange:
951951
type Ref = DFRef.TwoWay[DFVal, DFRange]
952-
enum Op extends StableEnum derives CanEqual, ReadWriter:
952+
enum Op derives CanEqual, ReadWriter:
953953
case Until, To
954954

955955
final case class DFNet(
@@ -978,7 +978,7 @@ end DFNet
978978

979979
object DFNet:
980980
type Ref = DFRef.TwoWay[DFVal | DFInterfaceOwner, DFNet]
981-
enum Op extends StableEnum derives CanEqual, ReadWriter:
981+
enum Op derives CanEqual, ReadWriter:
982982
case Assignment, NBAssignment, Connection, ViaConnection, LazyConnection
983983
extension (net: DFNet)
984984
def isAssignment = net.op match
@@ -1482,12 +1482,12 @@ end DFDesignBlock
14821482

14831483
object DFDesignBlock:
14841484
import InstMode.BlackBox.Source
1485-
enum InstMode extends StableEnum derives CanEqual, ReadWriter:
1485+
enum InstMode derives CanEqual, ReadWriter:
14861486
case Normal, Def, Simulation
14871487
case BlackBox(source: Source)
14881488
object InstMode:
14891489
object BlackBox:
1490-
enum Source extends StableEnum derives CanEqual, ReadWriter:
1490+
enum Source derives CanEqual, ReadWriter:
14911491
case NA
14921492
case Files(path: List[String])
14931493
case Library(libName: String, nameSpace: String)
@@ -1677,9 +1677,9 @@ end TextOut
16771677

16781678
object TextOut:
16791679
type AssertionRef = DFRef.TwoWay[DFVal, TextOut]
1680-
enum Severity extends StableEnum derives CanEqual, ReadWriter:
1680+
enum Severity derives CanEqual, ReadWriter:
16811681
case Info, Warning, Error, Fatal
1682-
enum Op extends HasRefCompare[Op], StableEnum derives CanEqual, ReadWriter:
1682+
enum Op extends HasRefCompare[Op] derives CanEqual, ReadWriter:
16831683
case Print, Println, Debug, Finish
16841684
case Report(severity: Severity) extends Op
16851685
case Assert(assertionRef: AssertionRef, severity: Severity) extends Op

compiler/ir/src/main/scala/dfhdl/compiler/ir/DFType.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ final case class DFDecimal(
249249
end DFDecimal
250250

251251
object DFDecimal extends DFType.Companion[DFDecimal, Option[BigInt]]:
252-
enum NativeType extends StableEnum derives CanEqual, ReadWriter:
252+
enum NativeType derives CanEqual, ReadWriter:
253253
case BitAccurate, Int32
254254
object NativeType:
255255
type BitAccurate = BitAccurate.type

compiler/ir/src/main/scala/dfhdl/compiler/ir/DomainType.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package dfhdl.compiler.ir
2-
import dfhdl.internals.StableEnum
32
import upickle.default.*
43

5-
enum DomainType extends HasRefCompare[DomainType], StableEnum derives CanEqual, ReadWriter:
4+
enum DomainType extends HasRefCompare[DomainType] derives CanEqual, ReadWriter:
65
// dataflow domain
76
case DF
87
// register-transfer domain

compiler/ir/src/main/scala/dfhdl/compiler/ir/InitFileFormat.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import dfhdl.internals.CommonOps.bitsWidth
77
import dfhdl.internals.*
88
import upickle.default.*
99

10-
enum InitFileFormat extends StableEnum derives CanEqual, ReadWriter:
10+
enum InitFileFormat derives CanEqual, ReadWriter:
1111
case Auto, VerilogBin, VerilogHex
1212
// AMDXilinxCOE, IntelAlteraMIF, IntelAlteraHEX
1313
// LatticeMEM, AMDXilinxMEM
1414

15-
enum InitFileUndefinedValue extends StableEnum derives CanEqual, ReadWriter:
15+
enum InitFileUndefinedValue derives CanEqual, ReadWriter:
1616
case Bubbles, Zeros
1717

1818
object InitFileFormat:

compiler/ir/src/main/scala/dfhdl/compiler/ir/PhysicalNumber.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dfhdl.compiler.ir
22
import upickle.default.*
33
import scala.annotation.targetName
4-
import dfhdl.internals.StableEnum
54

65
extension (bd: BigDecimal.type)
76
private def apply(arg: Int | Long | Double): BigDecimal = arg match
@@ -75,7 +74,7 @@ object LiteralNumber:
7574

7675
final case class TimeNumber(value: BigDecimal, unit: TimeNumber.Unit) extends PhysicalNumber
7776
object TimeNumber:
78-
enum Unit extends PhysicalNumber.Unit, StableEnum derives ReadWriter:
77+
enum Unit extends PhysicalNumber.Unit derives ReadWriter:
7978
case fs, ps, ns, us, ms, sec, mn, hr
8079
extension (lhs: TimeNumber)
8180
private def to_psVal: BigDecimal = lhs.unit match
@@ -116,7 +115,7 @@ end TimeNumber
116115

117116
final case class FreqNumber(value: BigDecimal, unit: FreqNumber.Unit) extends PhysicalNumber
118117
object FreqNumber:
119-
enum Unit extends PhysicalNumber.Unit, StableEnum derives ReadWriter:
118+
enum Unit extends PhysicalNumber.Unit derives ReadWriter:
120119
case Hz, KHz, MHz, GHz
121120
extension (lhs: FreqNumber)
122121
def to_hz: FreqNumber =

compiler/ir/src/main/scala/dfhdl/compiler/ir/SourceFile.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
package dfhdl.compiler.ir
2-
import dfhdl.internals.StableEnum
32
import upickle.default.*
43

54
final case class SourceFile(
@@ -10,14 +9,14 @@ final case class SourceFile(
109
) derives CanEqual,
1110
ReadWriter
1211

13-
enum SourceType extends StableEnum derives CanEqual, ReadWriter:
12+
enum SourceType derives CanEqual, ReadWriter:
1413
case Design
1514
case BlackBox
1615
case GlobalDef
1716
case DFHDLDef
1817
case Tool(toolName: String, srcType: String)
1918

20-
enum SourceOrigin extends StableEnum derives CanEqual, ReadWriter:
19+
enum SourceOrigin derives CanEqual, ReadWriter:
2120
// Compiled files are a result from a compilation process.
2221
// These files exist only just in memory until they are committed.
2322
case Compiled

compiler/ir/src/main/scala/dfhdl/compiler/ir/annotation.scala

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package dfhdl.compiler.ir
22
import dfhdl.compiler.printing.{Printer, HasCodeString, refCodeString}
33
import dfhdl.internals.*
44
import upickle.default.*
5-
import dfhdl.internals.StableEnum
65

76
object annotation:
87
sealed abstract class HWAnnotation extends HasRefCompare[HWAnnotation], Product, Serializable,
@@ -39,7 +38,7 @@ object annotation:
3938
* - prefix: $ownerName$sep$memberName
4039
* - suffix: $memberName$sep$ownerName
4140
*/
42-
enum FlattenMode extends HWAnnotation, StableEnum derives ReadWriter:
41+
enum FlattenMode extends HWAnnotation derives ReadWriter:
4342
case Transparent
4443
case Prefix(sep: String)
4544
case Suffix(sep: String)
@@ -109,7 +108,7 @@ object constraints:
109108
val props = properties.map { case (k, v) => s""""$k" -> "$v"""" }.mkString(", ")
110109
s"""@deviceProperties($props)"""
111110
object DeviceID:
112-
enum Vendor extends StableEnum, HasCodeString derives CanEqual, ReadWriter:
111+
enum Vendor extends HasCodeString derives CanEqual, ReadWriter:
113112
case XilinxAMD, Lattice, Gowin
114113
case AlteraIntel(pro: Boolean)
115114
def codeString(using Printer): String = "deviceID.Vendor." + this.toString
@@ -267,7 +266,7 @@ object constraints:
267266
end IO
268267
object IO:
269268
type LevelVolt = 3.3 | 3.0 | 2.5 | 1.8 | 1.5 | 1.2
270-
enum Standard extends StableEnum, HasCodeString derives CanEqual, ReadWriter:
269+
enum Standard extends HasCodeString derives CanEqual, ReadWriter:
271270
case LVCMOS, LVTTL, LVDS, SchmittTrigger
272271
def codeString(using Printer): String = "io.Standard." + this.toString
273272
def withLevelVolt(levelVolt: LevelVolt): String =
@@ -278,11 +277,11 @@ object constraints:
278277
case LVDS => s"LVDS_$num"
279278
case SchmittTrigger =>
280279
throw new IllegalArgumentException("Found unexpected use of SchmittTrigger.")
281-
enum SlewRate extends StableEnum, HasCodeString derives CanEqual, ReadWriter:
280+
enum SlewRate extends HasCodeString derives CanEqual, ReadWriter:
282281
case SLOWEST, FASTEST
283282
case CUSTOM(value: Int)
284283
def codeString(using Printer): String = "io.SlewRate." + this.toString
285-
enum PullMode extends StableEnum, HasCodeString derives CanEqual, ReadWriter:
284+
enum PullMode extends HasCodeString derives CanEqual, ReadWriter:
286285
case UP, DOWN
287286
def codeString(using Printer): String = "io.PullMode." + this.toString
288287
end IO

internals/src/main/scala/dfhdl/internals/StableEnum.scala

Lines changed: 0 additions & 12 deletions
This file was deleted.

lib/src/main/scala/dfhdl/tools/AvailableTools.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package dfhdl.tools
22
import toolsCore.*
3-
import dfhdl.internals.StableEnum
43

54
object linters:
65
val verilator = Verilator
@@ -30,8 +29,8 @@ object simulators:
3029
object vivado
3130
final val xsim = vivado
3231

33-
enum builders extends StableEnum derives CanEqual:
32+
enum builders derives CanEqual:
3433
case foss, vendor
3534

36-
enum programmers extends StableEnum derives CanEqual:
35+
enum programmers derives CanEqual:
3736
case foss, vendor

0 commit comments

Comments
 (0)