Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

verilog: unstable-2020-08-24 -> 11.0 #102943

Merged
merged 2 commits into from Nov 16, 2020
Merged

Conversation

prusnak
Copy link
Member

@prusnak prusnak commented Nov 5, 2020

Motivation for this change
  1. update to the latest stable version of verilog
  2. re-enable verilog tests on aarch64 as they work now
  3. fix vhd2vl compatibility with verilog 11 on aarch64
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Copy link
Contributor

@drewrisinger drewrisinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Diff: see comments
  • Commits LGTM
  • Not clean nix-review:
https://github.com/NixOS/nixpkgs/pull/102943
1 package failed to build:
vhd2vl

16 packages built:
bluespec glasgow mcy python27Packages.cocotb python37Packages.cocotb python37Packages.glasgow python37Packages.nmigen python37Packages.nmigen-boards python37Packages.nmigen-soc python38Packages.cocotb python38Packages.nmigen python38Packages.nmigen-boards python38Packages.nmigen-soc symbiyosys verilog yosys

pkgs/applications/science/electronics/verilog/default.nix Outdated Show resolved Hide resolved
pkgs/applications/science/electronics/verilog/default.nix Outdated Show resolved Hide resolved
@prusnak
Copy link
Member Author

prusnak commented Nov 6, 2020

* Not clean `nix-review`:

vhd2vl fixed in 80b75cd86cbefd4fa3da321617e92a75808529de

@prusnak prusnak force-pushed the verilog branch 2 times, most recently from 3cb8e2d to aac9bcc Compare November 8, 2020 08:45
Copy link
Contributor

@drewrisinger drewrisinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Diffs LGTM
  • Commits LGTM
  • Builds via nix-review:
https://github.com/NixOS/nixpkgs/pull/102943
17 packages built:
bluespec glasgow mcy python27Packages.cocotb python37Packages.cocotb python37Packages.glasgow python37Packages.nmigen python37Packages.nmigen-boards python37Packages.nmigen-soc python38Packages.cocotb python38Packages.nmigen python38Packages.nmigen-boards python38Packages.nmigen-soc symbiyosys verilog vhd2vl yosys

prusnak referenced this pull request Nov 14, 2020
Signed-off-by: Austin Seipp <aseipp@pobox.com>
@prusnak
Copy link
Member Author

prusnak commented Nov 14, 2020

Had to rebase because of the 58a906a

@thoughtpolice
Copy link
Member

@prusnak This is a follow up to your comment on 58a906a:

First, I'm terribly sorry for causing you troubles. I wasn't aware of this PR; otherwise, I simply would have merged it instead of authoring my own. I want to get that clear off the bat, since this PR is clearly higher quality than my original quick update.

Second: the reason I merged this was actually due to a mistake on my part. When I was doing updates of yosys (now part of e80eeae), I ran into a bug where the test suite started failing due to a recent overhaul done to it, enabling parallel tests. In brief, there's a small script in the test suite that erroneously states "ERROR: Please try updating your icarus verilog version" which I had done in the past. So I committed a change for that (58a906a), rebased, tried again and.... it failed. Turns out, the test suite failed for another reason (an implicit dependency on a file named ./yosys-abc, which was an unnoticed change in the build.)

I simply did not remove the iverilog commit when I fixed this, and accidentally left it in as it was harmless (and again, I wasn't aware of this PR.) I also made the mistake of using master when, as you noted, I should have used the new fresh 12.0 release. Yosys required the unstable branch until now, and this was simply an oversight; I literally just typed git pull origin master on my copy of Icarus and used the latest hash, not even checking the tag. Again, we should use 12.0 until otherwise necessary. I suspect yosys would be the only reason to go back to an unstable release, but it may be better to simply add a verilog-unstable package, instead.

Third: I wasn't aware of this PR because I wasn't marked as the maintainer, so I was not CC'd on it. I do not scan nixpkgs PRs by hand; I use and rely GitHub notifications because I maintain too much stuff anyway. And while my latency is high these days, in particular I maintain many of the related VLSI/RTL/FPGA related packages in Nixpkgs, and adopt more often. This is only to to try and help ensure a consistent level of quality among them; so as part of 58a906a I also adopted Icarus (as the original maintainer has been absent for quite some time, which happens.) If I had adopted it earlier, I would have seen this PR since borg would have mentioned me.

Finally, I didn't PR my original changes because, frankly, I am an old curmudgeon who pushes to, and only uses, master everywhere (I think this will be my 6th or 7th year of being a committer?) and few other users regularly submit substantial updates to these packages besides myself. Thus reviews simply tend to add latency and hold back bugfixes/improvements for users rather than actually achieve anything other than surface level "LGTM" reviews. This isn't always true of many or even most packages though. And it might seem paradoxical: if nobody submits PRs, are there any users besides me? But I think this is expected: people do not actually need to submit updates normally because the packages are, mostly, quite high quality and full featured already, if I do say so myself. Furthermore, most of the FOSS RTL/VLSI tools are still evolving new features and capabilities regularly, so thorough, high-quality updates that enable those features in a maintainable way involves more than just bumping patch versions. And random people who aren't familiar with the tools are going to have difficult times ensuring those features work well. That isn't to say your patches are not high quality or that Icarus is some high-speed, fast moving target; it's just an explanation of my thought process for pushing directly to master in many cases, not just this one. And this position certainly isn't immune to criticism either or anything, so if you feel put off by just overwriting things, I understand and apologize.


Having said all that: these patches look fine to me, so thank you for your patience. I'll merge them!

@thoughtpolice thoughtpolice merged commit 4b21cf7 into NixOS:master Nov 16, 2020
@prusnak
Copy link
Member Author

prusnak commented Nov 16, 2020

First, I'm terribly sorry for causing you troubles.

No worries! First, these things happen. No harm done, it took me like 2 minutes to rebase this PR.

Second, I really wanted to understand the situation; especially with verilog, there might've been thousands of valid reasons why using unstable was preferred to latest stable even in case these are couple of days apart.

Thanks for your explanation!

@prusnak prusnak deleted the verilog branch November 16, 2020 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants