Subject: [bug#44656] [PATCH] Upgrade pypy3

From: zimoun <[email-masked]>
Date: Fri, 20 Aug 2021 12:39:20 +0200

Hi,

On Sat, 07 Aug 2021 at 08:59, Lars-Dominik Braun <[email-masked]> wrote:
> Hi Maxim,
>
>> I guess one way it could work was if we had some transformation option
>> to rebuild the Python collection against Pypy (do we have something to
>> do this already?).
> yes, there is package-with-explicit-python in (guix build-system
> python), but you’ll need transform every single existing Python package
> with it to make it usable with PyPy (just like Python 2). There’s also

What do you mean?  Using ’package-with-explicit-python’ on a package
will replace the Python used by the ’python-build-system’ for all the
dependencies.  Modulo the issues what C extension, if one wants the
Python packages bytecompiled with PyPy, using a manifest containing:

--8<---------------cut here---------------start------------->8---
(define package-with-pypy
  (package-with-explicit-python (delay pypy3
                                "python-" "pypy-")))

(packages->manifest
  (map
    (compose package-with-pypy specification->package)    
      (list "python-foo" "python-bar")))
--8<---------------cut here---------------end--------------->8---

would be the somehow thing I would do.  Well, something in the spirit of
«Defining Package Vaiants». ;-)

<https://guix.gnu.org/manual/devel/en/guix.html#Defining-Package-Variants>

However…

> --with-input=python=pypy3, but I think it will rewrite too much (i.e.
> not just packages using python-build-system, but *every* package in the
> graph using Python in any way).

…similarly as replacing the Emacs VM [0], I guess some packages
will be broken.  Well, for instance if some packages use
’python-minimal’ instead of ’python’, the replacement will not happen.

Last, is it an issue to rewrite too much?

Cheers,
simon

0: <http://issues.guix.gnu.org/41732#14>