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

Update PyPy and FOSS EDA tools #66596

Merged
merged 7 commits into from Aug 17, 2019
Merged

Conversation

emilazy
Copy link
Member

@emilazy emilazy commented Aug 13, 2019

Motivation for this change

I initially started by wanting to just bump yosys/symbiyosys/icestorm/trellis/nextpnr, but ran into icestorm and nextpnr being broken due to PyPy being marked as broken. After discussing on IRC with @thoughtpolice and @MostAwesomeDude, I decided to update PyPy and disable its tests for now, as a bunch of tests are already being disabled and it's a significant speed-up for icestorm (as documented in 18839e1). pypy35 becomes pypy36, since upstream changed the py3 version they target and I assume nobody particularly wants to use an old beta version of pypy35.

The newer version of yosys is required for e.g. nmigen.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • 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 nix-review --run "nix-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.

@thoughtpolice
Copy link
Member

@GrahamcOfBorg build icestorm trellis nextpnr yosys symbiyosys

@thoughtpolice
Copy link
Member

@emilazy Thank you for doing all this! Let's see how borg responds; in particular, -DSERIALIZE_CHIPDB=OFF for NextPNR may not be appropriate for the Hydra builders in the long run if it uses too much memory, so we might have to remove it (should that happen - we'll cross that bridge when we get to it.)

@thoughtpolice thoughtpolice self-assigned this Aug 15, 2019
@emilazy
Copy link
Member Author

emilazy commented Aug 15, 2019

FWIW, -DSERIALIZE_CHIPDB=OFF was (effectively) default until recently. The serialization slows down the build a lot and I personally don't have any issues with building it on a 16 GiB RAM laptop, though I do have swap.

Not sure what happened with the aarch64-linux build there...

@thoughtpolice
Copy link
Member

Great to know. The aarch64 failure is anomalous, but it looks like x86_64 tried to build pypy 7.1.1 from source since it's not using the prebuilt expression. This causes the build to timeout since pypy takes A Long Time. I suppose what we actually want to do is perhaps split the PyPy update into its own PR, maybe.

I'll test this on my own machine later today.

@FRidh FRidh merged commit 113dbfe into NixOS:master Aug 17, 2019
@emilazy emilazy deleted the update-pypy-and-eda-tools branch August 18, 2019 02:29
@andersk
Copy link
Contributor

andersk commented Sep 7, 2019

pypy36_prebuilt doesn't build:

checking for references to /build/ in /nix/store/00h1ivkm5rvaq9cryqynvsrccx8ibi38-pypy3_prebuilt-7.1.1...
running install tests
Testing whether we can import modules
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/nix/store/00h1ivkm5rvaq9cryqynvsrccx8ibi38-pypy3_prebuilt-7.1.1/lib-python/3/ssl.py", line 100, in <module>
    import _ssl             # if we can't import it, let the error propagate
  File "/nix/store/00h1ivkm5rvaq9cryqynvsrccx8ibi38-pypy3_prebuilt-7.1.1/lib_pypy/_ssl/__init__.py", line 1, in <module>
    from _cffi_ssl._stdssl import (_PROTOCOL_NAMES, _OPENSSL_API_VERSION,
  File "/nix/store/00h1ivkm5rvaq9cryqynvsrccx8ibi38-pypy3_prebuilt-7.1.1/lib_pypy/_cffi_ssl/_stdssl/__init__.py", line 6, in <module>
    from _pypy_openssl import ffi
ImportError: libssl.so.1.0.0: cannot open shared object file: No such file or directory
builder for '/nix/store/0mkirnflycy1njynrfkz0f7snqn1xm81-pypy3_prebuilt-7.1.1.drv' failed with exit code 1

@FRidh
Copy link
Member

FRidh commented Sep 7, 2019

I pushed a fix to master, b75f9a5

@emilazy emilazy mentioned this pull request Feb 10, 2020
10 tasks
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

4 participants