public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Mitchell Dorrell <mwd@psc.edu>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Slotting PyPy
Date: Sat, 19 Oct 2024 11:39:12 -0400	[thread overview]
Message-ID: <CAHqckJ2vzdxAzVJgygXEL4b4URd=Cd9za4+ue0x4i-yt9ATMOA@mail.gmail.com> (raw)
In-Reply-To: <c5725e83a0aa69054cd9edb7a8d2ada7ab8e537c.camel@gentoo.org>

[-- Attachment #1: Type: text/plain, Size: 3404 bytes --]

On Thu, Oct 17, 2024, 08:12 Michał Górny <mgorny@gentoo.org> wrote:

> PyPy has basically two versions:
>
> >>>> sys.version_info
> sys.version_info(major=3, minor=10, micro=14, releaselevel='final',
> serial=0)
> >>>> sys.pypy_version_info
> sys.pypy_version_info(major=7, minor=3, micro=17, releaselevel='final',
> serial=0)
>
> The former indicates the CPython version it is compatible with,
> and the stdlib version from CPython it used.  The latter is the actual
> PyPy release.
>
> PyPy is doing synchronous releases for all Python versions it supports at
> the time, with PyPy release matching between them.  For example, 7.3.16
> release involved the following tarballs:
>
>   pypy3.10-v7.3.16-src.tar.bz2
>   pypy3.9-v7.3.16-src.tar.bz2
>   pypy2.7-v7.3.16-src.tar.bz2
>

This sounds like another potential application of the "VARIANTS" concept I
suggested last week:
https://marc.info/?l=gentoo-dev&m=172877401607588
In short, some software has multiple variants of each version which may
need to be installed simultaneously, without the older/newer relationship
that slots imply. (There could be other benefits, too, irrelevant to this
discussion.) Perhaps I should implement this as a proof-of-concept and
start a separate thread to discuss it.

For the relatively short transitions when two PyPy 3.x versions were
> released, we combined revisions and subslots, e.g.:
>
>   dev-python/pypy3-7.3.16:0/pypy39-...
>   dev-python/pypy3-7.3.16-r100:0/pypy310-...
>
> would correspond to, respectively:
>
>   pypy3.9-v7.3.16-src.tar.bz2
>   pypy3.10-v7.3.16-src.tar.bz2
>
> The eclasses would depend on 'dev-python/pypy3:=' to bind to a specific
> subslot, and soon afterwards we'd just be providing the next PyPy 3.x
> versions without the older.
>
> Then, as we decided to keep older CPython versions around without eclass
> support (3.8 and 3.9), it started to make sense to also keep old PyPy 3.x
> versions around -- also without eclass support.  So I've split the packages
> even further, into:
>
>   dev-python/pypy3_9-7.3.16
>   dev-python/pypy3_10-7.3.16
>
> that correspond to, respectively:
>
>   pypy3.9-v7.3.16-src.tar.bz2
>   pypy3.10-v7.3.16-src.tar.bz2
>
> And dev-python/pypy3 remained as a subslotted virtual that would pull
> whichever PyPy 3.x version we support at the time.
>
>
> Slotting again
> ==============
>
> A possible goal for the future would be to recombine all these packages
> into one, e.g.:
>
>   dev-lang/pypy-2.7.7.3.16:pypy27/...
>   dev-lang/pypy-3.9.7.3.16:pypy39/...
>   dev-lang/pypy-3.10.7.3.16:pypy310/...
>
> corresponding to:
>
>   pypy2.7-v7.3.16-src.tar.bz2
>   pypy3.9-v7.3.16-src.tar.bz2
>   pypy3.10-v7.3.16-src.tar.bz2
>
> So the PV would combine slot and release version, slot would indicate PyPy
> 3.x slot and subslot would indicate the ABI (changes rarely).
>

Previously, you "split the packages even further", but now you're
suggesting to "recombine all these packages into one". What was the
original reason for splitting the packages, and what has changed since then?

I don't understand enough of the Python and PyPy infrastructure to support
or object to either approach. I generally think it's more elegant to have a
single package for a single codebase/project, but the practical concerns
are more important.

- Mitchell Dorrell

>

[-- Attachment #2: Type: text/html, Size: 4673 bytes --]

  parent reply	other threads:[~2024-10-19 15:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-17 12:12 [gentoo-dev] Slotting PyPy Michał Górny
2024-10-17 12:47 ` Jérôme Carretero
2024-10-17 12:59   ` Michał Górny
2024-10-19 10:42 ` Sam James
2024-10-19 12:04   ` Michał Górny
2024-10-20  9:03     ` Sam James
2024-10-19 15:39 ` Mitchell Dorrell [this message]
2024-10-20 10:46 ` Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHqckJ2vzdxAzVJgygXEL4b4URd=Cd9za4+ue0x4i-yt9ATMOA@mail.gmail.com' \
    --to=mwd@psc.edu \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox