Data.Hashable can produce hashes differing little in their upper bits if
only the last character of the string is changed. Because we were using
the upper bits of the hash in shortHash, this could lead to avoidable
hash collisions. This change includes minor simplification optimizations
which surfaced this collision in the existing struct_ident_scope test.
With permission from Tom Hawkins, I have updated sv2v's existing BSD
3-Clause license to match the exact text of the standard BSD 3-Clause
license. The wording changes, listed below in full, are entirely
innocuous. The copyright attribution is now simpler. The license heading
and link have been removed from the readme. These changes enable the
license to be appropriately detected by GitHub's license detection tool,
hopefully eliminating any potential confusion about the license in use.
- "author" ==> "copyright holder"
- "his" ==> "its"
- "AUTHORS" ==> "COPYRIGHT HOLDERS AND CONTRIBUTORS"
- "AUTHORS" ==> "COPYRIGHT HOLDER"
- remove outdated flexible partial type eq and show instances
- properly disallow incomplete declarations
- disallow var after net type
- remove unused edge case in InterfaceT representation
- support for additional assignment statements in loop initializations
- greatly improved error messaging in these contexts
- decl parser takes in the ending token; significant related refactoring
- pass through elaboration system tasks
- removed non-blocking assignment operator precedence hack
- preliminary nosim test suite for features unsupported by iverilog
- all decl tokens are given an accurate starting position
- key grammar productions return token positions to facilitate the above
- helpers for standardized parse error generation
- replaced annoying pattern-matching type argument restrictions
- moving away from dumping raw decl tokens in error messages
- new net decl to replace net pseudo-type
- support nets with complex base types, including typenames
- support var declaration type prefix for all data types
- support var as lone type shorthand
- refactor AST representation of strengths
- traversal helpers for treating nets as variables
- use decl traversals where appropriate
- automatic pass-through test suite coverage
- fix codegen for interface based typedefs
- allow declaration of generic interface ports in module body
- fix codegen for comments within for loop initialization
- fix codegen of class param decls
- previously the overrides for parameterized data types could only
reference data declarations at the module scope
- their use within procedures is still allowed, but cannot currently
refer to localparams declared within procedures
- add procedure scope location accessors to allow scoped traversals to
mark where injected items will end up in advance
- disallow using end label alone on blocks
- improved parse error for mismatches
- add label checking for non-block constructs
- allow generate block to have label before begin