<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/src/main/scala, branch master</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>TruthTable improvements: structural equality and delete sort (backport #2935) (#2936)</title>
<updated>2023-01-12T00:04:06+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2023-01-12T00:04:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=6a63353f2a6c3311e61b9a7b5b899d8ad904a86d'/>
<id>6a63353f2a6c3311e61b9a7b5b899d8ad904a86d</id>
<content type='text'>
* TruthTable improvements: structural equality and delete sort (#2935)

We had implemented equals, but not hashCode. This commit also changes
the implemental of equals to just use the underlying values instead of
wasting the compute calling .toString.

Delete TruthTable.sort, it is unused.

(cherry picked from commit b5d9c08b2d0994b94df2380425282206fe1f25bc)

* Restore and deprecate TruthTable.sort

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* TruthTable improvements: structural equality and delete sort (#2935)

We had implemented equals, but not hashCode. This commit also changes
the implemental of equals to just use the underlying values instead of
wasting the compute calling .toString.

Delete TruthTable.sort, it is unused.

(cherry picked from commit b5d9c08b2d0994b94df2380425282206fe1f25bc)

* Restore and deprecate TruthTable.sort

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix string interpolation in `util.exprimental.decode.bitset` (#2882) (#2883)</title>
<updated>2022-12-10T10:45:37+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-12-10T10:45:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=044b062468c90a1084221e480463515c668e99df'/>
<id>044b062468c90a1084221e480463515c668e99df</id>
<content type='text'>
* Fix BitSet decoder API when errorBit=False

    When errorBit is set to False, the original code will return
    `Unit` which will be `()` in interpolated string.

* Add testcases for both errorBit cases in BitSetSpec

(cherry picked from commit 42416cb6c6a3019fc29b9d98cfea3e3bb4e42684)

Co-authored-by: Ocean Shen &lt;30361859+OceanS2000@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix BitSet decoder API when errorBit=False

    When errorBit is set to False, the original code will return
    `Unit` which will be `()` in interpolated string.

* Add testcases for both errorBit cases in BitSetSpec

(cherry picked from commit 42416cb6c6a3019fc29b9d98cfea3e3bb4e42684)

Co-authored-by: Ocean Shen &lt;30361859+OceanS2000@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Improve Record.bind and Detect Records with unstable elements (backport #2829) (#2831)</title>
<updated>2022-11-08T07:05:53+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-08T07:05:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=f2ef3a8ee378a307661bd598cd44d4b895b9352e'/>
<id>f2ef3a8ee378a307661bd598cd44d4b895b9352e</id>
<content type='text'>
* Add Aggregate.elementsIterator and micro-optimize

elementsIterator provides a more efficient API for iterating on the
elements of Aggregates. It is especially useful for Records where
getElements returns a Seq and thus eagerly constructs a new
datastructure which may then just be iterated on anyway.

This new elementsIterator API is then used throughout the codebase where
it makes sense.

Also change Vec.getElements to just return the underlying self instead
of constructing a new Seq.

(cherry picked from commit defa440b349031475daeff4024fad04925cccee6)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala
#	core/src/main/scala/chisel3/Module.scala
#	core/src/main/scala/chisel3/experimental/Trace.scala

* Move Aggregate.bind inline into Record.bind

Vec overrides bind and does not call the version in Aggregate so the
version in Aggregate is misleading in that its only ever used by
Records. Now there is no version in Aggregate and the actual
functionality and use is more clear.

(cherry picked from commit b054c30ba47026cb2a9b28c696a0a0a58b1e2ee7)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala

* Extract and optimize duplicate checking Record.bind

This replaces an immutable.Map with a single mutable.HashSet and saves
the allocation of # elements Seqs.

(cherry picked from commit 832ea52bc23424bb75b9654422b725a9cafaef40)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala

* Add check for Records that define def elements

(cherry picked from commit a4f223415de19e2a732e0b6a8fe681f706a19a56)

* Resolve backport conflicts

* Make elementsIterator final and package private

* Waive false MiMa failure

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add Aggregate.elementsIterator and micro-optimize

elementsIterator provides a more efficient API for iterating on the
elements of Aggregates. It is especially useful for Records where
getElements returns a Seq and thus eagerly constructs a new
datastructure which may then just be iterated on anyway.

This new elementsIterator API is then used throughout the codebase where
it makes sense.

Also change Vec.getElements to just return the underlying self instead
of constructing a new Seq.

(cherry picked from commit defa440b349031475daeff4024fad04925cccee6)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala
#	core/src/main/scala/chisel3/Module.scala
#	core/src/main/scala/chisel3/experimental/Trace.scala

* Move Aggregate.bind inline into Record.bind

Vec overrides bind and does not call the version in Aggregate so the
version in Aggregate is misleading in that its only ever used by
Records. Now there is no version in Aggregate and the actual
functionality and use is more clear.

(cherry picked from commit b054c30ba47026cb2a9b28c696a0a0a58b1e2ee7)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala

* Extract and optimize duplicate checking Record.bind

This replaces an immutable.Map with a single mutable.HashSet and saves
the allocation of # elements Seqs.

(cherry picked from commit 832ea52bc23424bb75b9654422b725a9cafaef40)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala

* Add check for Records that define def elements

(cherry picked from commit a4f223415de19e2a732e0b6a8fe681f706a19a56)

* Resolve backport conflicts

* Make elementsIterator final and package private

* Waive false MiMa failure

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Use new lazy serialization in FIRRTL (#2741) (#2744)</title>
<updated>2022-09-20T20:06:44+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-09-20T20:06:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=45909f02e86edff010902c0317e813a8753837b9'/>
<id>45909f02e86edff010902c0317e813a8753837b9</id>
<content type='text'>
This enables emission of modules that serialize to &gt;2 GiB of .fir text.

(cherry picked from commit 2cbc852d09bb63cd5da291e5d5d942ab971952a4)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables emission of modules that serialize to &gt;2 GiB of .fir text.

(cherry picked from commit 2cbc852d09bb63cd5da291e5d5d942ab971952a4)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Backport of eager error messages for annotations (3.5.x) (#2700) (#2705)</title>
<updated>2022-08-25T19:04:37+00:00</updated>
<author>
<name>Zachary Yedidia</name>
</author>
<published>2022-08-25T19:04:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=df5a95454ff0414d1d3ce16d06dbe27b152e3751'/>
<id>df5a95454ff0414d1d3ce16d06dbe27b152e3751</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add option to treat warnings as errors (backport #2676) (#2677)</title>
<updated>2022-08-13T00:17:56+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-08-13T00:17:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c4dec947d54a52c3092bd7855180d42afaae3776'/>
<id>c4dec947d54a52c3092bd7855180d42afaae3776</id>
<content type='text'>
* Add option to treat warnings as errors (#2676)

Add --warnings-as-errors option

(cherry picked from commit 498946663726955c380a1e420f5d7b9630000aad)

# Conflicts:
#	core/src/main/scala/chisel3/experimental/hierarchy/Definition.scala
#	core/src/main/scala/chisel3/internal/Builder.scala
#	src/main/scala/chisel3/aop/injecting/InjectingAspect.scala
#	src/main/scala/chisel3/stage/ChiselOptions.scala
#	src/main/scala/chisel3/stage/package.scala
#	src/main/scala/chisel3/stage/phases/Elaborate.scala

* Resolve backport conflicts

Co-authored-by: Zachary Yedidia &lt;zyedidia@gmail.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add option to treat warnings as errors (#2676)

Add --warnings-as-errors option

(cherry picked from commit 498946663726955c380a1e420f5d7b9630000aad)

# Conflicts:
#	core/src/main/scala/chisel3/experimental/hierarchy/Definition.scala
#	core/src/main/scala/chisel3/internal/Builder.scala
#	src/main/scala/chisel3/aop/injecting/InjectingAspect.scala
#	src/main/scala/chisel3/stage/ChiselOptions.scala
#	src/main/scala/chisel3/stage/package.scala
#	src/main/scala/chisel3/stage/phases/Elaborate.scala

* Resolve backport conflicts

Co-authored-by: Zachary Yedidia &lt;zyedidia@gmail.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Remove remaining chiselNames (#2635) (#2656)</title>
<updated>2022-08-02T00:31:11+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-08-02T00:31:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=6b658d740d976c7706c53c756acd069262d9ef59'/>
<id>6b658d740d976c7706c53c756acd069262d9ef59</id>
<content type='text'>
(cherry picked from commit 8538269a14e0d5a1163298a79aa43b77a380aabc)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit 8538269a14e0d5a1163298a79aa43b77a380aabc)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Implement DecoupledIO.map utility (#2646) (#2649)</title>
<updated>2022-07-28T22:27:29+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-07-28T22:27:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=e52739f2fe587cedd657a331b7d7ba0c75b919c6'/>
<id>e52739f2fe587cedd657a331b7d7ba0c75b919c6</id>
<content type='text'>
(cherry picked from commit b20df1d6cda03f6eef28ee480e0aade914c5face)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit b20df1d6cda03f6eef28ee480e0aade914c5face)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate chiselName and NoChiselNamePrefix trait (#2627) (#2633)</title>
<updated>2022-07-21T21:16:11+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-07-21T21:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=f46d02f55bd22ffda32b20e8cc4b40aa96b03ee0'/>
<id>f46d02f55bd22ffda32b20e8cc4b40aa96b03ee0</id>
<content type='text'>
Also remove all non-testing uses of chiselName.

(cherry picked from commit 1c5d1b5317a0c9fe7ef9d15138065a817380a1e4)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also remove all non-testing uses of chiselName.

(cherry picked from commit 1c5d1b5317a0c9fe7ef9d15138065a817380a1e4)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor TruthTable.apply and add factory method for Espresso (backport #2612) (#2620)</title>
<updated>2022-07-06T21:42:13+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-07-06T21:42:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=4f10bdd703d7559cddae50541cf7c8e0a1c1d4c0'/>
<id>4f10bdd703d7559cddae50541cf7c8e0a1c1d4c0</id>
<content type='text'>
* Refactor TruthTable.apply and add factory method for Espresso (#2612)

Improves performance of creating TruthTables by processing entire BitPats
rather than individual bits. New TruthTable factory method enables
constructing TruthTables with semantics of OR-ing output BitPats together
rather than erroring when multiple terms have the same input BitPat.
This alternative factory method matches semantics for the output format
of Espresso.

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
(cherry picked from commit 231f14e74f112a9f721e774561126b2bd1250039)

# Conflicts:
#	src/main/scala/chisel3/util/BitPat.scala

* Resolve backport conflicts

Co-authored-by: Aditya Naik &lt;91489422+adkian-sifive@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Refactor TruthTable.apply and add factory method for Espresso (#2612)

Improves performance of creating TruthTables by processing entire BitPats
rather than individual bits. New TruthTable factory method enables
constructing TruthTables with semantics of OR-ing output BitPats together
rather than erroring when multiple terms have the same input BitPat.
This alternative factory method matches semantics for the output format
of Espresso.

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
(cherry picked from commit 231f14e74f112a9f721e774561126b2bd1250039)

# Conflicts:
#	src/main/scala/chisel3/util/BitPat.scala

* Resolve backport conflicts

Co-authored-by: Aditya Naik &lt;91489422+adkian-sifive@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
</feed>
