Hi Ludo, > > One thing I don’t like right now is the dependency on gcc-toolchain > > (i.e. gcc and binutils) in distutils. I don’t know how to avoid that, > > since building CFFI modules won’t work without patching. > Is CFFI able to pick ‘gcc’ from $PATH? If it can do it, we can avoid > hardcoding the absolute file name of GCC and instead leave it up to the > user to add GCC to their environment when they want to use CFFI. yes, it is, but it looks for the executable "cc", which – oddly – our gcc-toolchain does not provide. Is this intentional? The updated patch replaces it with gcc, which seems to work. > > I guess the next step would be figuring out how to add “pypy3-foo” > > variants for our Python packages, right? > Maybe. Is it generally applicable? I hear that many core Python > packages require CPython, which makes it hard to migrate to a different > implementation. For plain Python packages it works pretty much out of the box. Afaik C extensions are supported, but software making heavy use of those does not benefit from PyPy’s JIT. > The advice seems to be very general; did you mean that people should > look for something specific in the build log, for example because test > failures are silently ignored? No, not really. Just to run the disabled test suite and see if it goes from “a few failures” to “everything is broken now”. I could selectively patch the testsuite to disable currently failing tests, but I’m not competent enough to judge which one can be skipped safely (due to sandboxing limitations for example) and which indicate an actual failure. I’ll remove the comment. > I’d suggest ‘bash-minimal’ here, to be consistent with the other > packages. Done, actually `guix size dash` includes bash-minimal… > Maybe “Python implementation with just-in-time compilation”? Sounds good, done. > Maybe remove “3.6” since it’s likely to become stale. Bonus points if > you can expound a little bit. :-) I copy-edited a paragraph from Wikipedia. Hope that’s acceptable. Additionally I removed some test data from the output, which is not required at runtime and removed python2 from the closure by patching a few shebangs. Cheers, Lars