Skip to content

Commit 990d37a

Browse files
authored
Deprecate everything in package firrtl (#4878)
Previously, we tried to avoid this by deprecating any imports from the firrtl package, but this missed things. Instead, we deprecate every public class, object, and trait. Also delete the previous attempt using the DeprecateSFCComponent in the compiler plugin. It is now redundant.
1 parent 17c9e97 commit 990d37a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+315
-84
lines changed

build.mill

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ object v extends Module {
7777

7878
val scala2WarnConf = Seq(
7979
"msg=APIs in chisel3.internal:s",
80-
"msg=Importing from firrtl:s",
80+
"msg=All APIs in package firrtl:s",
8181
"msg=migration to the MLIR:s",
8282
"msg=method hasDefiniteSize in trait IterableOnceOps is deprecated:s", // replacement `knownSize` is not in 2.12
8383
"msg=object JavaConverters in package collection is deprecated:s",

firrtl/src/main/scala/firrtl/AttributeAnnotation.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import firrtl.annotations.{Named, SingleTargetAnnotation}
77
* @param target target component to tag with attribute
88
* @param description Attribute string to add to target
99
*/
10+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1011
case class AttributeAnnotation(target: Named, description: String) extends SingleTargetAnnotation[Named] {
1112
def duplicate(n: Named): AttributeAnnotation = this.copy(target = n, description = description)
1213
}

firrtl/src/main/scala/firrtl/Compiler.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ package firrtl
55
import firrtl.annotations._
66

77
/** Container of all annotations for a Firrtl compiler */
8+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
89
class AnnotationSeq private (underlying: Seq[Annotation]) {
910
def toSeq: Seq[Annotation] = underlying
1011
}
12+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1113
object AnnotationSeq {
1214
def apply(xs: Seq[Annotation]): AnnotationSeq = new AnnotationSeq(xs)
1315
}

firrtl/src/main/scala/firrtl/Emitter.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import firrtl.stage.FirrtlOptions
99
import firrtl.stage.FirrtlOptionsView
1010

1111
// ***** Annotations for results of emission *****
12+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1213
sealed abstract class EmittedComponent {
1314
def name: String
1415

@@ -17,9 +18,11 @@ sealed abstract class EmittedComponent {
1718
def outputSuffix: String
1819
}
1920

21+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
2022
sealed abstract class EmittedCircuit extends EmittedComponent
2123

2224
/** Traits for Annotations containing emitted components */
25+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
2326
trait EmittedAnnotation[T <: EmittedComponent] extends NoTargetAnnotation with CustomFileEmission {
2427
val value: T
2528

@@ -30,20 +33,27 @@ trait EmittedAnnotation[T <: EmittedComponent] extends NoTargetAnnotation with C
3033
override protected val suffix: Option[String] = Some(value.outputSuffix)
3134
}
3235

36+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
3337
sealed trait EmittedCircuitAnnotation[T <: EmittedCircuit] extends EmittedAnnotation[T] {
3438
override def getBytes = value.value.getBytes
3539
}
3640

41+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
3742
case class EmittedFirrtlCircuitAnnotation(value: EmittedFirrtlCircuit)
3843
extends EmittedCircuitAnnotation[EmittedFirrtlCircuit]
3944

45+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
4046
final case class EmittedFirrtlCircuit(name: String, value: String, outputSuffix: String) extends EmittedCircuit
4147

48+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
4249
final case class EmittedBtor2Circuit(name: String, value: String, outputSuffix: String) extends EmittedCircuit
4350

51+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
4452
case class EmittedBtor2CircuitAnnotation(value: EmittedBtor2Circuit)
4553
extends EmittedCircuitAnnotation[EmittedBtor2Circuit]
4654

55+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
4756
final case class EmittedVerilogCircuit(name: String, value: String, outputSuffix: String) extends EmittedCircuit
57+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
4858
case class EmittedVerilogCircuitAnnotation(value: EmittedVerilogCircuit)
4959
extends EmittedCircuitAnnotation[EmittedVerilogCircuit]

firrtl/src/main/scala/firrtl/FirrtlException.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import scala.util.control.NoStackTrace
99
* These exceptions indicate a problem due to bad input and thus do not include a stack trace.
1010
* This can be extended by custom transform writers.
1111
*/
12+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1213
class FirrtlUserException(message: String, cause: Throwable = null)
1314
extends RuntimeException(message, cause)
1415
with NoStackTrace

firrtl/src/main/scala/firrtl/Parser.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package firrtl
44

5+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
56
object Parser {
67

78
sealed abstract class InfoMode

firrtl/src/main/scala/firrtl/PrimOps.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import logger.LazyLogging
66
import firrtl.ir._
77

88
/** Definitions and Utility functions for [[ir.PrimOp]]s */
9+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
910
object PrimOps extends LazyLogging {
1011

1112
/** Addition */

firrtl/src/main/scala/firrtl/RenameMap.scala

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

1010
import scala.collection.mutable
1111

12+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1213
object RenameMap {
1314
def apply(map: collection.Map[Named, Seq[Named]], circuitName: String): RenameMap =
1415
MutableRenameMap.fromNamed(map, circuitName)
@@ -31,6 +32,7 @@ object RenameMap {
3132
* @define noteDistinct @note Rename to/tos will be made distinct
3233
*/
3334
// TODO This should probably be refactored into immutable and mutable versions
35+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
3436
sealed trait RenameMap {
3537

3638
// Records the name of the circuit to which this rename map applies. This is
@@ -521,6 +523,7 @@ sealed trait RenameMap {
521523

522524
// This must be in same file as RenameMap because RenameMap is sealed
523525
package object renamemap {
526+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
524527
object MutableRenameMap {
525528
def fromNamed(map: collection.Map[Named, Seq[Named]], circuitName: String): MutableRenameMap = {
526529
val rm = new MutableRenameMap(circuitName)
@@ -538,6 +541,7 @@ package object renamemap {
538541
def apply(circuitName: String): MutableRenameMap = new MutableRenameMap(circuitName)
539542
}
540543

544+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
541545
final class MutableRenameMap private[firrtl] (
542546
override protected val circuitName: String,
543547
protected val _underlying: mutable.HashMap[CompleteTarget, Seq[CompleteTarget]] =

firrtl/src/main/scala/firrtl/Utils.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import firrtl.ir._
66

77
import _root_.logger.LazyLogging
88

9+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
910
object Utils extends LazyLogging {
1011

1112
/** Unwind the causal chain until we hit the initial exception (which may be the first).

firrtl/src/main/scala/firrtl/WIR.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,26 @@ package firrtl
44

55
import firrtl.ir._
66

7+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
78
abstract class MPortDir extends FirrtlNode
9+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
810
case object MInfer extends MPortDir {
911
def serialize: String = "infer"
1012
}
13+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1114
case object MRead extends MPortDir {
1215
def serialize: String = "read"
1316
}
17+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1418
case object MWrite extends MPortDir {
1519
def serialize: String = "write"
1620
}
21+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
1722
case object MReadWrite extends MPortDir {
1823
def serialize: String = "rdwr"
1924
}
2025

26+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
2127
case class CDefMemory(
2228
info: Info,
2329
name: String,
@@ -39,6 +45,7 @@ case class CDefMemory(
3945
def foreachString(f: String => Unit): Unit = f(name)
4046
def foreachInfo(f: Info => Unit): Unit = f(info)
4147
}
48+
@deprecated("All APIs in package firrtl are deprecated.", "Chisel 7.0.0")
4249
case class CDefMPort(info: Info, name: String, tpe: Type, mem: String, exps: Seq[Expression], direction: MPortDir)
4350
extends Statement
4451
with HasInfo

0 commit comments

Comments
 (0)