all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Bengt Richter <bokr@bokr.com>
To: zimoun <zimon.toutoune@gmail.com>
Cc: Guix Devel <guix-devel@gnu.org>
Subject: Re: Python 2 end-of-life?
Date: Thu, 28 Nov 2019 22:54:10 -0800	[thread overview]
Message-ID: <20191129065410.GB1094@PhantoNv4ArchGx.localdomain> (raw)
In-Reply-To: <CAJ3okZ1qguNqw+P+1EGAt34okqZ3hAzx4wfH5qnQoeXjN7sEDA@mail.gmail.com>

Hi zimoun,

On +2019-11-27 18:28:36 +0100, zimoun wrote:
> Hi,
> 
> On Tue, 26 Nov 2019 at 22:52, Bengt Richter <bokr@bokr.com> wrote:
> 
> > egrep -oh '^[^@;]+' py2eol.txt|sort|uniq -c|sort -h|tail
> > --8<---------------cut here---------------start------------->8---
> >       1 zziplib
> >       2 ffmpeg
> >       2 ghc
> >       2 openimageio
> >       3 bedtools
> >       5 mozjs
> >       8 clang
> >       8 clang-runtime
> >       8 llvm
> >      18 rust
> > --8<---------------cut here---------------end--------------->8---
> >
> > IOW, a bunch just differ by version -- I wonder how many of the
> > packages that drew in old versions could run fine with respective
> > latest versions of what they are dependent on?
> 
> For example, considering rust, it is about the bootstrappability. See [1].
> 
> [1] http://guix.gnu.org/blog/2018/bootstrapping-rust/
>

That looks horrible to me :)
Don't they have a "guild disasseble" kind of thing that they could use
to recover a mungeable source of the final product, and then
make a self-hoster from that (even if it takes serious hacking)?

> I am interesting to know about clang/clang-runtime/llvm. Do we support
> 8 versions? Or version n-1 is useful to build version n?
> 
> 
> > It would be really interesting if you could tweak your py2-dependent-package
> > lister to show for each how many lines of py2 code are causing the py2 dependency!
> 
> It is really hard -- nor impossible. And I am not convinced that the
> tough work will pay off.
>

Why so hard? Is not all the information available in sources?

If you wanted to do the job of preplacing a dependency with a guix/guile/bash
native equivalent for a particular package manually, couldn't that be done?
At least, couldn't one decide whether it was going to be easy or hard?

So what tool would help you get to the information you need for that decision quickly?
How would you write a wish-item for that?

That's the kind of tools I hope will emerge, if it proves
feasible to reduce external dependencies that way.

> 
> > It would be a shame if half a dozen lines of python were pulling in
> > all that weight if it could have been a few lines of guile or bash instead.
> 
> Do you propose to patch each time? Because I am not convinced again
> that upstream will change Python to Guile.
>

Yes, I would propose patching if it could be automated along the lines
I suggested in my other reply to you.

The trick is to find the packages for which this would be possible,
so I am hoping tools to look for the low-hanging fruit will emerge.

> 
> > The time it takes to figure out whether/how a trivial dependency can be
> > eliminated is, ISTM, a major cause of gordian-knot dependency bloat -- which IMO
> > in turn is a kind of RYF threat: it's effectively a free-time pay-wall.
> 
> To me, one path to remove unnecessary dependencies of Python2 is to
> give a look package by package, try to replace the Python2 dependency
> by the Python3 (if exist) and see what happens. If it does not build
> because the package really uses Python2 features, figure out which
> one, patch with the Python3 equivalent and submit the patch upstream.

That will likely be the best thing to do for a number of packages,
but I would rather plug in a guix/guile/bash equivalent that passes
the same well-designed (! :) test suite, where that is possible.

So I am hoping for tools to help find those packages where it _is_ possible ;-)

> 
> All the best,
> simon

-- 
Regards,
Bengt Richter

  parent reply	other threads:[~2019-11-29  6:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-31 15:39 Python 2 end-of-life? zimoun
2019-11-21 11:46 ` zimoun
2019-11-21 12:01   ` Konrad Hinsen
2019-11-26 16:51     ` Konrad Hinsen
2019-11-26 17:50       ` Hartmut Goebel
2019-11-26 18:55         ` ng0
2019-11-27  8:28         ` Konrad Hinsen
2019-11-27 17:41           ` zimoun
2019-11-26 21:51       ` Bengt Richter
2019-11-27  7:56         ` Konrad Hinsen
2019-11-27 17:35           ` zimoun
2019-11-29  6:07             ` Bengt Richter
2019-11-29  7:38               ` Konrad Hinsen
2019-11-29 12:12                 ` zimoun
2019-11-29 11:41               ` zimoun
2019-11-29 13:42                 ` Bengt Richter
2019-11-29 14:12                   ` zimoun
2019-11-29 22:16                     ` Bengt Richter
2019-11-27 17:28         ` zimoun
2019-11-27 17:43           ` Ricardo Wurmus
2019-11-29  6:54           ` Bengt Richter [this message]
2019-11-29 11:55             ` zimoun
2019-11-28 14:40       ` Konrad Hinsen
2019-11-28 15:50         ` Hartmut Goebel
2019-11-28 18:22           ` zimoun
2019-11-21 17:28   ` Alex Griffin

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=20191129065410.GB1094@PhantoNv4ArchGx.localdomain \
    --to=bokr@bokr.com \
    --cc=guix-devel@gnu.org \
    --cc=zimon.toutoune@gmail.com \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.