<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/plugin, branch master</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>Add opt-in AutoCloneType for Records (backport #2781) (#2785)</title>
<updated>2022-10-17T22:50:55+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-10-17T22:50:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=1957f5ef5c43439144cf779a343707872ca92d6a'/>
<id>1957f5ef5c43439144cf779a343707872ca92d6a</id>
<content type='text'>
* Add opt-in AutoCloneType for Records (#2781)

There is a new trait, chisel3.experimental.AutoCloneType that is mixed
in to Bundle and can optionally be mixed in to user-defined Records. The
compiler plugin prints a deprecation warning on any user-defined
implementation of cloneType, telling the user to mix in AutoCloneType
before upgrading to 3.6.

(cherry picked from commit a234fd48ac8f5942c38fef5797292014e407b586)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala
#	plugin/src/main/scala/chisel3/internal/plugin/BundleComponent.scala

* Resolve backport conflicts

* Do not make MixedVec extend AutoCloneType

It is a binary incompatible change that can wait for 3.6.

* Waive MiMa false positives

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add opt-in AutoCloneType for Records (#2781)

There is a new trait, chisel3.experimental.AutoCloneType that is mixed
in to Bundle and can optionally be mixed in to user-defined Records. The
compiler plugin prints a deprecation warning on any user-defined
implementation of cloneType, telling the user to mix in AutoCloneType
before upgrading to 3.6.

(cherry picked from commit a234fd48ac8f5942c38fef5797292014e407b586)

# Conflicts:
#	core/src/main/scala/chisel3/Aggregate.scala
#	plugin/src/main/scala/chisel3/internal/plugin/BundleComponent.scala

* Resolve backport conflicts

* Do not make MixedVec extend AutoCloneType

It is a binary incompatible change that can wait for 3.6.

* Waive MiMa false positives

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Implement trait for Chisel compiler to name arbitrary non-Data types (#2610) (#2617)</title>
<updated>2022-07-06T00:28:02+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-07-06T00:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=2b977a74293a49e9e2a5d960a6a9c07df22430ce'/>
<id>2b977a74293a49e9e2a5d960a6a9c07df22430ce</id>
<content type='text'>
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;
(cherry picked from commit 3ab34cddd8b87c22d5fc31020f10ddb2f1990d51)

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>
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;
(cherry picked from commit 3ab34cddd8b87c22d5fc31020f10ddb2f1990d51)

Co-authored-by: Jared Barocsi &lt;82000041+jared-barocsi@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Handle varargs constructor arguments in Bundle plugin (#2585) (#2588)</title>
<updated>2022-06-18T00:08:41+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-06-18T00:08:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=ea44af954657f743c45fbc45125e197ac3aadd20'/>
<id>ea44af954657f743c45fbc45125e197ac3aadd20</id>
<content type='text'>
Previously, the plugin would crash with a useless internal error.

(cherry picked from commit 9fcfb252beb9f06d8d1409fe7db9c8b3b6b962ce)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the plugin would crash with a useless internal error.

(cherry picked from commit 9fcfb252beb9f06d8d1409fe7db9c8b3b6b962ce)

Co-authored-by: Jack Koenig &lt;koenig@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>Support VerificationStatement in the naming plugin (#2555) (#2557)</title>
<updated>2022-06-02T18:06:03+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-06-02T18:06:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=5bec54e535dca53c9347caddb0b395c4651a0919'/>
<id>5bec54e535dca53c9347caddb0b395c4651a0919</id>
<content type='text'>
Previously, verification statements (assert, assume, cover, and printf)
were only named via reflection.

(cherry picked from commit 7fa2691f670813eef4ec59fc27c4e4f625d598de)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, verification statements (assert, assume, cover, and printf)
were only named via reflection.

(cherry picked from commit 7fa2691f670813eef4ec59fc27c4e4f625d598de)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix spurious warning from Bundle plugin (#2506) (#2507)</title>
<updated>2022-04-26T00:49:16+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-04-26T00:49:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=d5a964f6e7beea1f38f9623224fc65e2397e1fe7'/>
<id>d5a964f6e7beea1f38f9623224fc65e2397e1fe7</id>
<content type='text'>
For traits or abstract classes that extend Bundle but have no concrete
methods, the plugin will print a benign warning that the user cannot
fix. It will no longer print that warning.

(cherry picked from commit ed4a98188ee1fe43efbd3a1ba43a657a128764d6)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For traits or abstract classes that extend Bundle but have no concrete
methods, the plugin will print a benign warning that the user cannot
fix. It will no longer print that warning.

(cherry picked from commit ed4a98188ee1fe43efbd3a1ba43a657a128764d6)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Tweak Bundle._elementsImpl (#2390) (#2392)</title>
<updated>2022-02-03T04:23:48+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-02-03T04:23:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=8776e58ff91cd88562b957d7a09322ec16610b81'/>
<id>8776e58ff91cd88562b957d7a09322ec16610b81</id>
<content type='text'>
* Change type of Bundle._elementsImpl to Iterable

It was previously SeqMap (ListMap on Scala 2.12). This change gives us
more freedom to optimize the implementation without breaking binary
compatibility. It is scala.collection.Iterable because it is perfectly
fine to return mutable collections (like Arrays) since the only use is
to Iterate on them.

* Disallow users implementing Bundle._elementsImpl

Currently, it would result in a runtime linkage error. This turns it
into a compile-time error.

Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;
(cherry picked from commit 1b05a14ad6d5784f3b91ab510dc1095423c23ea8)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Change type of Bundle._elementsImpl to Iterable

It was previously SeqMap (ListMap on Scala 2.12). This change gives us
more freedom to optimize the implementation without breaking binary
compatibility. It is scala.collection.Iterable because it is perfectly
fine to return mutable collections (like Arrays) since the only use is
to Iterate on them.

* Disallow users implementing Bundle._elementsImpl

Currently, it would result in a runtime linkage error. This turns it
into a compile-time error.

Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;
(cherry picked from commit 1b05a14ad6d5784f3b91ab510dc1095423c23ea8)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Chisel plugin bundle elements handler (#2306) (#2380)</title>
<updated>2022-02-01T19:56:13+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-02-01T19:56:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=ea1ced34b5c9e42412cc0ac3e7431cd3194ccbc3'/>
<id>ea1ced34b5c9e42412cc0ac3e7431cd3194ccbc3</id>
<content type='text'>
Adds generation of `Bundle.elements` method to the chores done by the compiler plugin
For each `Bundle` find the relevant visible Chisel field members and construct a
hard-coded list of the elements and their names implemented as `_elementsImpl`

For more details: See plugins/README.md

- Should be no change in API
- Handles inheritance and mixins
- Handles Seq[Data]
- Tests in BundleElementSpec

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

Co-authored-by: Chick Markley &lt;chick@qrhino.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds generation of `Bundle.elements` method to the chores done by the compiler plugin
For each `Bundle` find the relevant visible Chisel field members and construct a
hard-coded list of the elements and their names implemented as `_elementsImpl`

For more details: See plugins/README.md

- Should be no change in API
- Handles inheritance and mixins
- Handles Seq[Data]
- Tests in BundleElementSpec

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

Co-authored-by: Chick Markley &lt;chick@qrhino.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>[plugin] add -P:chiselplugin:INTERNALskipFile</title>
<updated>2021-12-20T21:39:34+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-12-20T21:21:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=6388385fb38378d04b8c3df84dba5870f2904ae4'/>
<id>6388385fb38378d04b8c3df84dba5870f2904ae4</id>
<content type='text'>
This enables skipping files in the compiler plugin, only needed for
unidoc generation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables skipping files in the compiler plugin, only needed for
unidoc generation.
</pre>
</div>
</content>
</entry>
</feed>
