bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
From: Bernhard Voelker <mail@bernhard-voelker.de>
To: Bruno Haible <bruno@clisp.org>, bug-gnulib@gnu.org
Subject: Re: beta-tester call draft
Date: Sat, 20 Apr 2024 15:05:52 +0200	[thread overview]
Message-ID: <95169619-c545-4731-8067-2210af03f8ef@bernhard-voelker.de> (raw)
In-Reply-To: <17575364.8ZXASUQcjA@nimes>

On 4/20/24 02:22, Bruno Haible wrote:
> Hi,
>
> It's now time to call for beta-testers of the Python gnulib-tool.
> I plan to post the same text to info-gnu and to planet.gnu.org.
>
> Here is a draft. Please comment!

findutils results ...

>   ---------------------------------------------------------------------
> GNU gnulib: calling for beta-testers
>
> If you are developer on a package that uses GNU gnulib as part of its
> build system:
>
> gnulib-tool has been known for being slow for many years. We have
> listened to your complaints. A rewrite of gnulib-tool in another
> programming language (Python) is ready for beta-testing. It is
> between 8 times and 100 times faster than the original gnulib-tool.
>
> Both implementations should behave identically, that is, produce
> the same generated files and the same output. You can help us ensure
> this, through the following steps:
>
>    1. Make sure you have Python (version 3.7 or newer) installed on
>       your machine.

$ python3 --version
Python 3.11.8

>    2. Update your gnulib checkout. (For some packages, it comes as a
>       git submodule named 'gnulib'.) Like this:
>         $ git pull
>       Set the environment variable GNULIB_SRCDIR, pointing to this checkout.

done: gnulib 237cbf1c

>    3. Set an environment variable that enables checking that the two
>       implementations behave the same:
>         $ export GNULIB_TOOL_IMPL=sh+py

done

>    4. Clean the built files of your package:
>         $ make -k distclean

Used
   $ git clean -xdfq && ./bootstrap && ./configure && && make -k distclean
to get a clean working environment.

>    5. Regenerate the fetched and generated files of your package.
>       Depending on the packge, this may be a command such as
>         $ ./bootstrap --no-git --gnulib-srcdir=$GNULIB_SRCDIR
>       or
>         $ export GNULIB_SRCDIR; ./autopull.sh; ./autogen.sh
>       or, if no such script is available:
>         $ $GNULIB_SRCDIR/gnulib-tool --update
>       If there is a failure, due to differences between the 'sh' and 'py'
>       results, please report it to <bug-gnulib@gnu.org>.

How would such a failure look like? Or how should one check?

   $ ./bootstrap

no error. :-)

Regarding the timings:

$ export GNULIB_TOOL_IMPL=sh
$ time ./bootstrap
...
real	1m29.778s
ser	1m21.919s
sys	0m19.456s

$ export GNULIB_TOOL_IMPL=py
$ time ./bootstrap
...
real	0m26.536s
user	0m22.881s
sys	0m0.884s

$ time AUTORECONF=true ./bootstrap --skip-po
...
real	0m3.369s
user	0m2.979s
sys	0m0.520s

Cool!

>    6. If this invocation was successful, you can trust the rewritten
>       gnulib-tool and use it from now on, by setting the environment
>       variable
>         $ export GNULIB_TOOL_IMPL=py
>
>    7. Continue with
>         $ ./configure
>         $ make
>       as usual.
>
> And enjoy the speed! The rewritten gnulib-tool was implemented by
> Dmitry Selyutin, Collin Funk, and me.
>   ---------------------------------------------------------------------

There will come the question whether there are plans to drop the 'sh' mode,
or if or how long both modes will be maintained in parallel.

Have a nice day,
Berny


  parent reply	other threads:[~2024-04-20 13:06 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-20  0:22 beta-tester call draft Bruno Haible
2024-04-20  0:39 ` Bruno Haible
2024-04-20  0:56 ` Collin Funk
2024-04-20  1:49   ` Bruno Haible
2024-04-20  4:27 ` Paul Eggert
2024-04-20 22:31   ` gnulib-tool: In sh+py mode, don't fail because of dangling symlinks Bruno Haible
2024-04-20 22:46   ` beta-tester call draft Bruno Haible
2024-04-20  9:38 ` Simon Josefsson via Gnulib discussion list
2024-04-20 22:50   ` gnulib-tool.py speedup Bruno Haible
2024-04-20 23:01     ` Collin Funk
2024-04-20 23:50       ` Bruno Haible
2024-04-21  0:53         ` Collin Funk
2024-04-20 10:21 ` beta-tester call draft Pádraig Brady
2024-04-20 13:05 ` Bernhard Voelker [this message]
2024-04-20 22:54   ` Bruno Haible
2024-04-20 22:57     ` Paul Eggert
2024-04-20 23:14       ` Bruno Haible
2024-04-21 10:53         ` Bernhard Voelker
2024-04-21 14:50           ` future Python evolution Bruno Haible
2024-04-21 15:14             ` Paul Eggert
2024-04-21 22:38               ` Bruno Haible
2024-04-22  7:05                 ` Paul Eggert
2024-04-21 15:26             ` Bernhard Voelker
2024-04-28 14:14             ` Bernhard Voelker
2024-04-21 15:15           ` beta-tester call draft Janneke Nieuwenhuizen
2024-04-21 16:07             ` full-source bootstrap and Python Bruno Haible
2024-04-22  7:29               ` Simon Josefsson via Gnulib discussion list
2024-04-22 10:07                 ` Bruno Haible
2024-04-22 10:06               ` Janneke Nieuwenhuizen
2024-04-22 11:24                 ` Simon Josefsson via Gnulib discussion list
2024-04-22 15:48                 ` Bruno Haible

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

  List information: https://lists.gnu.org/mailman/listinfo/bug-gnulib

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

  git send-email \
    --in-reply-to=95169619-c545-4731-8067-2210af03f8ef@bernhard-voelker.de \
    --to=mail@bernhard-voelker.de \
    --cc=bruno@clisp.org \
    --cc=bug-gnulib@gnu.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).