t

firrtl.options

BufferedCustomFileEmission

trait BufferedCustomFileEmission extends CustomFileEmission

A buffered version of CustomFileEmission

This is especially useful for serializing large data structures. When emitting Strings, it makes it much easier to avoid materializing the entire serialized String in memory. It also helps avoid materializing intermediate datastructures in memory. Finally, it reduces iteration overhead and helps optimize I/O performance.

It may seem strange to use Array[Byte] in an otherwise immutable API, but for maximal performance it is best to use the JVM primitive that file I/O uses. These Arrays should only used immutably even though the Java API technically does allow mutating them.

Self Type
BufferedCustomFileEmission with Annotation
Source
StageAnnotations.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BufferedCustomFileEmission
  2. CustomFileEmission
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def baseFileName(annotations: AnnotationSeq): String

    Output filename where serialized content will be written

    Output filename where serialized content will be written

    The full annotation sequence is a parameter to allow for the location where this annotation will be serialized to be a function of other annotations, e.g., if the location where information is written is controlled by a separate file location annotation.

    annotations

    the annotation sequence at the time of emission

    Attributes
    protected
    Definition Classes
    CustomFileEmission
  2. abstract def getBytesBuffered: Iterable[Array[Byte]]

    A buffered version of getBytes for more efficient serialization

    A buffered version of getBytes for more efficient serialization

    If you only need to serialize an Iterable[String], you can use the String.getBytes method. It's also helpful to create a view which will do the .map lazily instead of eagerly, improving GC performance.

    def getBytesBuffered: Iterable[Array[Byte]] = myListString.view.map(_.getBytes)
  3. abstract def suffix: Option[String]

    Optional suffix of the output file

    Optional suffix of the output file

    Attributes
    protected
    Definition Classes
    CustomFileEmission

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. final def filename(annotations: AnnotationSeq): File

    Method that returns the filename where this annotation will be serialized.

    Method that returns the filename where this annotation will be serialized.

    annotations

    the annotations at the time of serialization

    Definition Classes
    CustomFileEmission
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getBytes: Iterable[Byte]

    A method that can convert this annotation to bytes that will be written to a file.

    A method that can convert this annotation to bytes that will be written to a file.

    If you only need to serialize a string, you can use the getBytes method:

    def getBytes: Iterable[Byte] = myString.getBytes
    Definition Classes
    BufferedCustomFileEmissionCustomFileEmission
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. def replacements(file: File): AnnotationSeq

    Optionally, a sequence of annotations that will replace this annotation in the output annotation file.

    Optionally, a sequence of annotations that will replace this annotation in the output annotation file.

    A non-empty implementation of this method is a mechanism for telling a downstream Stage how to deserialize the information that was serialized to a separate file. For example, if a FIRRTL circuit is serialized to a separate file, this method could include an input file annotation that a later stage can use to read the serialized FIRRTL circuit back in.

    Definition Classes
    CustomFileEmission
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from CustomFileEmission

Inherited from AnyRef

Inherited from Any

Ungrouped