bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
* GNU gnulib: gnulib-tool has become much faster
@ 2024-04-26 10:14 Bruno Haible
  2024-04-27 17:11 ` Tim Rühsen
  0 siblings, 1 reply; 3+ messages in thread
From: Bruno Haible @ 2024-04-26 10:14 UTC (permalink / raw
  To: bug-gnulib

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. We have rewritten gnulib-tool in another programming language
(Python). It is between 8 times and 100 times faster than the previous
implementation.

Both implementations behave identically, that is, produce the same generated
files and the same output. Nothing changes in your way to use Gnulib; it's
only faster.

In order to reap the new speed:

1. Make sure you have Python (version 3.7 or newer) installed on your
machine.

2. Update your gnulib checkout. (For some packages, it comes as a git
submodule named 'gnulib'.) Like this:

  $ git checkout master
  $ git pull

  Set the environment variable GNULIB_SRCDIR, pointing to this checkout.

  If the package is using a git submodule named 'gnulib', it is also advisable
to do

  $ git commit -m 'build: Update gnulib submodule to latest.' gnulib

  (as a preparation for step 4, because the --no-git option does not work as
expected in all variants of 'bootstrap').

3. Clean the built files of your package:

  $ make -k distclean


4. Regenerate the fetched and generated files of your package. Depending on
the package, 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


5. Continue with

  $ ./configure
  $ make

  as usual.

Enjoy! The rewritten gnulib-tool was implemented by Dmitry Selyutin, Collin
Funk, and me.



_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: GNU gnulib: gnulib-tool has become much faster
  2024-04-26 10:14 GNU gnulib: gnulib-tool has become much faster Bruno Haible
@ 2024-04-27 17:11 ` Tim Rühsen
  2024-04-27 17:41   ` Paul Eggert
  0 siblings, 1 reply; 3+ messages in thread
From: Tim Rühsen @ 2024-04-27 17:11 UTC (permalink / raw
  To: bug-gnulib


[-- Attachment #1.1: Type: text/plain, Size: 2108 bytes --]

Bruno, Dmitry, Collin, thank you so much !

The runtime improvement is amazing :)

Regards, Tim

On 4/26/24 12:14, Bruno Haible wrote:
> 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. We have rewritten gnulib-tool in another programming language
> (Python). It is between 8 times and 100 times faster than the previous
> implementation.
> 
> Both implementations behave identically, that is, produce the same generated
> files and the same output. Nothing changes in your way to use Gnulib; it's
> only faster.
> 
> In order to reap the new speed:
> 
> 1. Make sure you have Python (version 3.7 or newer) installed on your
> machine.
> 
> 2. Update your gnulib checkout. (For some packages, it comes as a git
> submodule named 'gnulib'.) Like this:
> 
>    $ git checkout master
>    $ git pull
> 
>    Set the environment variable GNULIB_SRCDIR, pointing to this checkout.
> 
>    If the package is using a git submodule named 'gnulib', it is also advisable
> to do
> 
>    $ git commit -m 'build: Update gnulib submodule to latest.' gnulib
> 
>    (as a preparation for step 4, because the --no-git option does not work as
> expected in all variants of 'bootstrap').
> 
> 3. Clean the built files of your package:
> 
>    $ make -k distclean
> 
> 
> 4. Regenerate the fetched and generated files of your package. Depending on
> the package, 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
> 
> 
> 5. Continue with
> 
>    $ ./configure
>    $ make
> 
>    as usual.
> 
> Enjoy! The rewritten gnulib-tool was implemented by Dmitry Selyutin, Collin
> Funk, and me.
> 
> 
> 
> _______________________________________________
> Message sent via Savannah
> https://savannah.gnu.org/
> 
> 

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: GNU gnulib: gnulib-tool has become much faster
  2024-04-27 17:11 ` Tim Rühsen
@ 2024-04-27 17:41   ` Paul Eggert
  0 siblings, 0 replies; 3+ messages in thread
From: Paul Eggert @ 2024-04-27 17:41 UTC (permalink / raw
  To: bug-gnulib

On 2024-04-27 10:11, Tim Rühsen wrote:
> Bruno, Dmitry, Collin, thank you so much !
> 
> The runtime improvement is amazing :)

Likewise. This is very much appreciated, especially on some of the 
trusty but old and slow hosts that I develop on.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-04-27 17:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-26 10:14 GNU gnulib: gnulib-tool has become much faster Bruno Haible
2024-04-27 17:11 ` Tim Rühsen
2024-04-27 17:41   ` Paul Eggert

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