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
next prev 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).