Download: nvc-1.13.1.tar.gz

This release is signed with my PGP key ID 74319F1A: nvc-1.13.1.tar.gz.sig

This is a major new release with a large number of improvements and bug fixes:

  • Type and package generics now work correctly with components and configurations (#883).
  • Fixed a crash when a matching case? alternative contains multiple choices (#890).
  • Implemented VHPI support for package declarations and vhpiPackInsts iterators (#891).
  • Signatures in attribute names are now parsed correctly (#892).
  • Attribute specifications for all are now parsed correctly (#889).
  • Predefined "=" and "/=" operators are no longer declared for file types.
  • Alias of packages now work correctly (#893).
  • Stricter checking of identifiers to reject those with multiple consecutive underscores or trailing underscores (from @typingArtist).
  • Stricter checking for subprograms, deferred constants, and protected types referenced before their corresponding body or full declaration.
  • Decimal physical literals like 8.2 ms are now correctly rounded (to 8200 us in this case) when they are converted to the base unit (#899).
  • External names can now be passed as signal actuals to subprograms (#900).
  • Fixed a crash when branch coverage is enabled and an if-statement contains a return (#903).
  • The NVC_CONCURRENT_JOBS environment variable can be used to scale the number of worker threads NVC creates based on the number of concurrently executing simulations.
  • Fixed a crash when certain attributes such as 'val are used in the target of a signal assignment statement (#908).
  • Signals in packages are now dumped to the FST file (#901).
  • Function interface declarations can now be pure or impure (#917).

As I was a bit tardy in putting out a blog post, here is a bonus maintenance release:

  • Windows installer was missing some standard library files.
  • Fixed a regression where generics and ports could not be referenced in external names (#921).
  • Fixed a crash when an unconstrained port with a default value is associated with open.
  • Fixed a duplicate symbol linker error with some uses of the 'delayed
    attribute.
  • Fixed a crash when an aliased subprogram is matched by a generic subprogram <> (#924)
  • Fixed a crash when a generic package containing a subprogram is passed to an entity package generic (#925).
  • Fixed an intermittent "failed to suspend thread" fatal error on macOS (#922).
  • Fixed a crash when a shared variable is declared inside a instantiated generic package in 2019 mode (#923).
  • Fixed a crash when a port with unconstrained array-of-record type is associated with a signal that has a static subtype.
  • Fixed incorrect longest static prefix calculation for array slices containing 'length, 'left, 'right and similar attributes (#930).
  • Fixed wrong result when slicing a generic that has an unconstrained array type (#931).

The latest release can always be found on the GitHub releases page.

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, and @johonkanen for sponsoring me!