<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/core/src/main/scala/chisel3/internal/firrtl, branch master</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>Change RawModule._commands to a VectorBuilder (backport #2839) (#2841)</title>
<updated>2022-11-11T01:40:53+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-11T01:40:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c8046636a25474be4c547c6fe9c6d742ea7b1d13'/>
<id>c8046636a25474be4c547c6fe9c6d742ea7b1d13</id>
<content type='text'>
* Change RawModule._commands to a VectorBuilder (#2839)

* Change RawModule._commands to a VectorBuilder

Use the resulting Vector to build the underlying Component's commands
and then use those instead of copying the original ArrayBuffer when
iterating on commands. Previously, the Component was using a List to
hold the commands which is particularly memory inefficient, especially
for large modules.

* Optimize Converter's handling of Seq[Command]

It previously converted the Commands to a List (which, while not
captured in the type system, they were already a List) and then used
head and tail iteration. This is less efficient with the new underlying
Vector implementation.

(cherry picked from commit 48a1ef0a3872c6b68d46145764d977926923a270)

* Waive false binary compatibility failures

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>
* Change RawModule._commands to a VectorBuilder (#2839)

* Change RawModule._commands to a VectorBuilder

Use the resulting Vector to build the underlying Component's commands
and then use those instead of copying the original ArrayBuffer when
iterating on commands. Previously, the Component was using a List to
hold the commands which is particularly memory inefficient, especially
for large modules.

* Optimize Converter's handling of Seq[Command]

It previously converted the Commands to a List (which, while not
captured in the type system, they were already a List) and then used
head and tail iteration. This is less efficient with the new underlying
Vector implementation.

(cherry picked from commit 48a1ef0a3872c6b68d46145764d977926923a270)

* Waive false binary compatibility failures

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>Switch to using experimental trait for OpaqueTypes (backport #2783) (#2836)</title>
<updated>2022-11-08T17:27:07+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-08T17:27:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=bfa9f7465e6069b1e624126f9e14245b69e7c0a9'/>
<id>bfa9f7465e6069b1e624126f9e14245b69e7c0a9</id>
<content type='text'>
* Switch to using experimental trait for OpaqueTypes (#2783)

This makes it more clear that the feature is experimental. Users may
still override the opaqueType method for more dynamic control over when
instances of a given Record are OpaqueTypes or not, but they are
discouraged from doing so.

(cherry picked from commit 7525dc71ccc2050d8e4a68b38f3b76920ba693fc)

* Fix cloneType in RecordSpec

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Switch to using experimental trait for OpaqueTypes (#2783)

This makes it more clear that the feature is experimental. Users may
still override the opaqueType method for more dynamic control over when
instances of a given Record are OpaqueTypes or not, but they are
discouraged from doing so.

(cherry picked from commit 7525dc71ccc2050d8e4a68b38f3b76920ba693fc)

* Fix cloneType in RecordSpec

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Bugfix converter clearing flips (backport #2788) (#2832)</title>
<updated>2022-11-07T19:13:49+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-07T19:13:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=76ada881d077118384907f498576b3b338291ff6'/>
<id>76ada881d077118384907f498576b3b338291ff6</id>
<content type='text'>
* Bugfix converter clearing flips (#2788)

* Bugfix: Output on Vec of bundle with mixed field orientations
* Bugfix OpaqueTypes clearing flips

(cherry picked from commit f05bff1a337589bafebd08783bb0f6a72092a95a)

# Conflicts:
#	src/test/scala/chiselTests/Direction.scala

* Resolve backport conflicts

Co-authored-by: Adam Izraelevitz &lt;adam.izraelevitz@sifive.com&gt;
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>
* Bugfix converter clearing flips (#2788)

* Bugfix: Output on Vec of bundle with mixed field orientations
* Bugfix OpaqueTypes clearing flips

(cherry picked from commit f05bff1a337589bafebd08783bb0f6a72092a95a)

# Conflicts:
#	src/test/scala/chiselTests/Direction.scala

* Resolve backport conflicts

Co-authored-by: Adam Izraelevitz &lt;adam.izraelevitz@sifive.com&gt;
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 OpaqueSlot handling of contextual names (#2708) (#2712)</title>
<updated>2022-08-29T21:05:56+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-08-29T21:05:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=9f1484572e2e4185e87a9cfb03b253870636c12c'/>
<id>9f1484572e2e4185e87a9cfb03b253870636c12c</id>
<content type='text'>
We need to ensure that contextual names stay contextual (ie. sensitive
to the module context which is important for naming ports).

(cherry picked from commit cee255216c4a1bb658a2d8ddc03d966ce7ffb877)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to ensure that contextual names stay contextual (ie. sensitive
to the module context which is important for naming ports).

(cherry picked from commit cee255216c4a1bb658a2d8ddc03d966ce7ffb877)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Bugfix - OpaqueSlot replace invalid localName (backport #2701) (#2702)</title>
<updated>2022-08-25T18:14:54+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-08-25T18:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=998913f9379440db26b6aeeaa09e7a11d7615351'/>
<id>998913f9379440db26b6aeeaa09e7a11d7615351</id>
<content type='text'>
* Bugfix - OpaqueSlot replace invalid localName (#2701)

(cherry picked from commit fb8ea2a2fac227f2570da992d7877de2eb1cf801)

* Fix cloneTypes (#2703)

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>
* Bugfix - OpaqueSlot replace invalid localName (#2701)

(cherry picked from commit fb8ea2a2fac227f2570da992d7877de2eb1cf801)

* Fix cloneTypes (#2703)

Co-authored-by: Aditya Naik &lt;91489422+adkian-sifive@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add OpaqueType support to Records (backport #2662) (#2679)</title>
<updated>2022-08-16T19:04:28+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-08-16T19:04:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=23ef9aa7ffef5bbf8fe124fc9be7683f005c3612'/>
<id>23ef9aa7ffef5bbf8fe124fc9be7683f005c3612</id>
<content type='text'>
* Add OpaqueType support to Records (#2662)

OpaqueTypes are essentially type aliases that hide the underlying type.
They are implemented in Chisel as Records of a single, unnamed element
where the wrapping Record does not exist in the emitted FIRRTL.

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
(cherry picked from commit df5afee2d41b5bcd82d4013b977965c0dfe046fd)

* Fix test compilation

* Fix OpaqueType tests in RecordSpec

Need to implement cloneType correctly and to warn instead of error when
accessing .toTarget of non-hardware types because that is a warning (not
error) in 3.5.

* Waive MiMa false positives

Co-authored-by: Aditya Naik &lt;91489422+adkian-sifive@users.noreply.github.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 OpaqueType support to Records (#2662)

OpaqueTypes are essentially type aliases that hide the underlying type.
They are implemented in Chisel as Records of a single, unnamed element
where the wrapping Record does not exist in the emitted FIRRTL.

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
(cherry picked from commit df5afee2d41b5bcd82d4013b977965c0dfe046fd)

* Fix test compilation

* Fix OpaqueType tests in RecordSpec

Need to implement cloneType correctly and to warn instead of error when
accessing .toTarget of non-hardware types because that is a warning (not
error) in 3.5.

* Waive MiMa false positives

Co-authored-by: Aditya Naik &lt;91489422+adkian-sifive@users.noreply.github.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>New enhanced API for  specifying Chisel to Firrtl Annotations (#2628) (#2631)</title>
<updated>2022-07-13T20:39:44+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-07-13T20:39:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=dbffb8779efca6bea8699ed80a04b1d47d657d93'/>
<id>dbffb8779efca6bea8699ed80a04b1d47d657d93</id>
<content type='text'>
(cherry picked from commit 4b10cf7a276e90b280c1fd57070566acac3d80d3)

Co-authored-by: Girish Pai &lt;girish.pai@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit 4b10cf7a276e90b280c1fd57070566acac3d80d3)

Co-authored-by: Girish Pai &lt;girish.pai@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Define leading '_' as API for creating temporaries (backport #2580) (#2581)</title>
<updated>2022-06-16T23:15:42+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-06-16T23:15:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=d001b34f816f1f65d0625aebf33e5cfc5ba93e49'/>
<id>d001b34f816f1f65d0625aebf33e5cfc5ba93e49</id>
<content type='text'>
* Define leading '_' as API for creating temporaries

Chisel and FIRRTL have long used signals with names beginning with an
underscore as an API to specify that the name does not really matter.
Tools like Verilator follow a similar convention and exclude signals
with underscore names from waveform dumps by default. With the
introduction of compiler-plugin prefixing in Chisel 3.4, the convention
remained but was hard for users to use unless the unnnamed signal
existed outside of any prefix domain. Notably, unnamed signals are most
useful when creating wires inside of utility methods which almost always
results in the signal ending up with a prefix.

With this commit, Chisel explicitly recognizes signals whos val names
start with an underscore and preserve that underscore regardless of any
prefixing. Chisel will also ignore such underscores when generating
prefixes based on the temporary signal, preventing accidental double
underscores in the names of signals that are prefixed by the temporary.

(cherry picked from commit bd94366290886f3489d58f88b9768c7c11fa2cb6)

* Remove unused defaultPrefix argument from _computeName

(cherry picked from commit ec178aa20a830df2c8c756b9e569709a59073554)

# Conflicts:
#	core/src/main/scala/chisel3/Module.scala
#	core/src/main/scala/chisel3/experimental/hierarchy/ModuleClone.scala

* Resolve backport conflicts

* Waive false positive binary compatibility errors

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Define leading '_' as API for creating temporaries

Chisel and FIRRTL have long used signals with names beginning with an
underscore as an API to specify that the name does not really matter.
Tools like Verilator follow a similar convention and exclude signals
with underscore names from waveform dumps by default. With the
introduction of compiler-plugin prefixing in Chisel 3.4, the convention
remained but was hard for users to use unless the unnnamed signal
existed outside of any prefix domain. Notably, unnamed signals are most
useful when creating wires inside of utility methods which almost always
results in the signal ending up with a prefix.

With this commit, Chisel explicitly recognizes signals whos val names
start with an underscore and preserve that underscore regardless of any
prefixing. Chisel will also ignore such underscores when generating
prefixes based on the temporary signal, preventing accidental double
underscores in the names of signals that are prefixed by the temporary.

(cherry picked from commit bd94366290886f3489d58f88b9768c7c11fa2cb6)

* Remove unused defaultPrefix argument from _computeName

(cherry picked from commit ec178aa20a830df2c8c756b9e569709a59073554)

# Conflicts:
#	core/src/main/scala/chisel3/Module.scala
#	core/src/main/scala/chisel3/experimental/hierarchy/ModuleClone.scala

* Resolve backport conflicts

* Waive false positive binary compatibility errors

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Apply scalafmt</title>
<updated>2022-01-10T23:53:55+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2022-01-10T18:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=3131c0daad41dea78bede4517669e376c41a325a'/>
<id>3131c0daad41dea78bede4517669e376c41a325a</id>
<content type='text'>
Command:
sbt scalafmtAll
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Command:
sbt scalafmtAll
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Make stuff in IR.scala package private (#2274)" (#2308)</title>
<updated>2021-12-18T01:17:03+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-12-18T01:17:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=f50f74f583fba7b98e550c440df091e559ce32b8'/>
<id>f50f74f583fba7b98e550c440df091e559ce32b8</id>
<content type='text'>
This reverts commit 21e324727e99f0bc124aaddea7fe294b4111c23a.

Note that I am keeping the change making Arg sealed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 21e324727e99f0bc124aaddea7fe294b4111c23a.

Note that I am keeping the change making Arg sealed.</pre>
</div>
</content>
</entry>
</feed>
