summaryrefslogtreecommitdiff
path: root/build.sbt
AgeCommit message (Collapse)Author
2023-01-08Merge branch '3.5.x' into 3.5-releaseJack
2023-01-08Bump version strings.Jack
2022-12-06Add versionScheme (PVP) to SBT publish settings (backport #2871) (#2874)mergify[bot]
* Add versionScheme (PVP) to SBT publish settings (#2871) This allows build tools to warn users about possible binary incompatibility issues when using dependencies that depend on mutually incompatible versions of Chisel. (cherry picked from commit 9f080d51d1e7bb9d44fb10da86fcaab68a21377b) # Conflicts: # build.sbt * Resolve backport conflicts Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-11-11Merge branch '3.5.x' into 3.5-releaseJack
2022-11-11Bump version strings.Jack
2022-11-11Change RawModule._commands to a VectorBuilder (backport #2839) (#2841)mergify[bot]
* 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 <koenig@sifive.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-11-10 Warn on S-interpolator usage for assert, assume and printf (backport #2751) ↵Aditya Naik
(#2757) * Add internal methods to maintain binary compatibility Co-authored-by: Megan Wachs <megan@sifive.com> Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-11-08Improve Record.bind and Detect Records with unstable elements (backport ↵mergify[bot]
#2829) (#2831) * 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 <koenig@sifive.com>
2022-10-17Add opt-in AutoCloneType for Records (backport #2781) (#2785)mergify[bot]
* 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 <koenig@sifive.com>
2022-10-13Bump to Scala 2.13.10 (backport #2774) (#2775)mergify[bot]
* Bump to Scala 2.13.10 (#2774) 2.13.9 has a binary compatibility regression so should be avoided. (cherry picked from commit c53265d6853728280b6bc01b001415166515c79a) # Conflicts: # .github/workflows/test.yml * Fix backport conflicts * Fix scalaVersion in README * Waive binary compatibility check for plugin for 2.13.10 3.5.4 is published for 2.13.10 so we cannot check binary compatibility for it. Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-09-20Bump to Scala 2.13.9 and 2.12.17 (backport #2739) (#2740)mergify[bot]
* Bump to Scala 2.13.9 and 2.12.17 (#2739) (cherry picked from commit 647c8a458ebc89ae3df818d540d308f0c417ae9f) # Conflicts: # .github/workflows/test.yml * Resolve backport conflicts * Update mimaPreviousArtifacts Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-08-16Add OpaqueType support to Records (backport #2662) (#2679)mergify[bot]
* 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 <koenig@sifive.com> (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 <91489422+adkian-sifive@users.noreply.github.com> Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-08-15Printables for verification preconditions (backport #2663) (#2680)mergify[bot]
* Printables for verification preconditions (#2663) Add support for printable within assert and assume verification statements Co-authored-by: Girish Pai <girish.pai@sifive.com> Co-authored-by: Megan Wachs <megan@sifive.com> Co-authored-by: Jack Koenig <koenig@sifive.com> (cherry picked from commit 7df5653309b5e48e1732b335610d9a7e8449f903) * Waive MiMa false positive Co-authored-by: Aditya Naik <91489422+adkian-sifive@users.noreply.github.com> Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-07-30Merge branch '3.5.x' into 3.5-releaseJack
2022-07-30Bump version strings.Jack
2022-07-30Remove chiseltest from defaultVersions (#2651)Jack Koenig
Release automation tries to bump chiseltest which causes issues due to SBT trying to resolve all dependencies (even for projects that will not be published, like integrationTests).
2022-07-12Update scala-compiler, scala-library, ... to 2.12.16 (backport #2618) (#2624)mergify[bot]
* Update scala-compiler, scala-library, ... to 2.12.16 (#2618) * Update scala-compiler, scala-library, ... to 2.12.16 * Add 2.12.16 to compiler plugin crossbuild Co-authored-by: Jack Koenig <jack.koenig3@gmail.com> (cherry picked from commit e4f663574b740164f4f49c0e31cb12c69dce5beb) # Conflicts: # .github/workflows/test.yml * Resolve backport conflicts * Ignore lack of plugin 3.5.3 artifact for Scala 2.12.16 Since 2.12.16 did not exist when 3.5.3 was published, there is no artifact for the plugin so we must ignore it until 3.5.4 is released. Co-authored-by: Scala Steward <43047562+scala-steward@users.noreply.github.com> Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-06-23Publish unidoc as ScalaDoc in chisel project (backport #2595) (#2598)mergify[bot]
* Publish unidoc as ScalaDoc in chisel project (#2595) This makes it such that we can stop hosting ScalaDoc on the Chisel website, instead just pointing to the latest docs on javadoc.io (cherry picked from commit 8b9f3d78ea23d9d9f0a118d1a2c30478ca2ff2f9) # Conflicts: # build.sbt * Resolve backport conflicts Co-authored-by: Jack Koenig <koenig@sifive.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-06-16Define leading '_' as API for creating temporaries (backport #2580) (#2581)mergify[bot]
* 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 <koenig@sifive.com>
2022-05-13Update mimaPreviousArtifacts to 3.5.3 (#2529)Jack Koenig
2022-04-26Bump version strings.Jack
2022-03-15Bump version strings.Jack
2022-02-08Merge branch '3.5.x' into 3.5-releaseJack
2022-02-08Bump version strings.Jack
2022-02-02Add Scala 2.13.8 to plugin cross-compilation (#2385) (#2386)mergify[bot]
(cherry picked from commit 551854b223954f359156582c4219948dbb328857) Co-authored-by: Jack Koenig <koenig@sifive.com>
2022-02-01Improve error reporting (backport #2376) (#2379)mergify[bot]
* Improve error reporting (#2376) * Do not trim stack traces of exceptions with no stack trace This prevents us from accidentally giving stack traces to exceptions that don't have them and giving misleading messages telling users to use --full-stacktrace when it won't actually do anything. Also deprecate ChiselException.chiselStackTrace which is no longer being used anywhere in this codebase. * Add exception class for multiple-errors reported New chisel3.internal.Errors replaces old anonymous class that would show up as chisel3.internal.ErrorLog$$anon$1 in error messages. * Add new option --throw-on-first-error This tells Chisel not to aggregate recoverable errors but instead to throw an exception on the first one. This gives a stack trace for users who need it for debugging. (cherry picked from commit ff2e9c92247b3848659fa09fdd53ddde2120036a) * Waive MiMa false positives The waived change is to a package private constructor. Co-authored-by: Jack Koenig <koenig@sifive.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-01Chisel plugin bundle elements handler (#2306) (#2380)mergify[bot]
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 <chick.markley@sifive.com> Co-authored-by: Jack Koenig <koenig@sifive.com> (cherry picked from commit 237200a420581519f29149cbae9b3e968c0d01fc) Co-authored-by: Chick Markley <chick@qrhino.com>
2022-01-11Set mimaPreviousArtifacts for binary compatibility checkingJack Koenig
2022-01-12Merge branch 'master' into 3.5-releaseJack
2022-01-12Bump version strings.Jack
2021-12-20[plugin] add -P:chiselplugin:INTERNALskipFileJack Koenig
This enables skipping files in the compiler plugin, only needed for unidoc generation.
2021-12-18Merge branch 'master' into 3.5-releaseJack
2021-12-18Bump version strings.Jack
2021-12-13Update os-lib to 0.8.0 (#2301)Scala Steward
2021-12-01Require the chisel3 compiler plugin (#2271)Jack Koenig
As the chisel3 compiler plugin is now required, we can delete unused code for reflective autoclonetype as well as the noPluginTests.
2021-11-01Add scala 2.13.7 to plugin build list (#2228)Kamyar Mohajerani
It can be set as default 2.13 build version later.
2021-10-04Turn on fatal warnings in mdoc documentation (#2146)Jack Koenig
2021-10-04Update scalatest to 3.2.10 (#2140)Scala Steward
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-09-22Revert default scala version to 2.12 for 3.5 release. (#2132)David Biancolin
2021-09-18Bump version strings.Jack
2021-09-17Update Scala and publish plugin for more minor versions (#2130)Jack Koenig
2021-09-13Update scala-compiler, scala-library, ... to 2.12.14 (#1950)Scala Steward
2021-08-25replace custom model checker with chiseltest formal verify command (#2075)Kevin Laeufer
* replace custom model checker with chiseltest formal verify command * integration-tests can make use of chiseltest This is a compromise solution to avoid issues with binary compatibility breaking changes in chisel3. * ci: move integration tests into separate job * run integration tests only for one scala version * ci: install espresso for integration tests * Update build.sbt Co-authored-by: Jack Koenig <jack.koenig3@gmail.com> Co-authored-by: Jack Koenig <jack.koenig3@gmail.com>
2021-08-12Add DataView (#1955)Jack Koenig
DataView is a mechanism for "viewing" Scala objects as a subtype of `Data`. Often, this is useful for viewing one subtype of `Data`, as another. One can think about a DataView as a cross between a customizable cast and an untagged union. A DataView has a Target type `T`, and a View type `V`. DataView requires that an implementation of `DataProduct` is available for Target types. DataProduct is a type class that provides a way to iterate on `Data` children of objects of implementing types. If a DataView is provided for a type T to a type V, then the function .viewAs[V] (of type T => V) is available. The object (of type T) returned by .viewAs is called a "View" and can be used as both an rvalue and an lvalue. Unlike when using an .asTypeOf cast, connecting to a "View" will connect to the associated field or fields of the underlying Target. DataView also enables .viewAsSupertype which is available for viewing Bundles as a parent Bundle type. It is similar to .viewAs but requires a prototype object of the Target type which will be cloned in order to create the returned View. .viewAsSupertype maps between the corresponding fields of the parent and child Bundle types.
2021-07-13fix for GitHub Action missing ivy FIRRTL.Jiuyang Liu
2021-06-21Bump scalatest to 3.2.9 (#1965)Jack Koenig
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-06-04Update os-lib to 0.7.8 (#1949)Scala Steward
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-05-20implement model checking API for chiseltest (#1910)Jiuyang Liu
* add os-lib to dependency. * implement EndToEndSMTBaseSpec * rename to SMTModelCheckingSpec * add documentation. * fix for review.
2021-05-17remove scopt dependency. (#1917)Jiuyang Liu
2021-05-17Update scala-compiler, scala-library, ... to 2.13.6Scala Steward