unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Jonas Hahnfeld via "Developers list for Guile, the GNU extensibility library" <guile-devel@gnu.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guile-devel@gnu.org, 69314@debbugs.gnu.org
Subject: Re: bug#69314: [PATCH] Speed up stage0 bootstrap build using prebuilts
Date: Mon, 06 May 2024 21:12:44 +0200	[thread overview]
Message-ID: <f38530b2080efe72dcd4366ad0f4b5c1166c9633.camel@hahnjo.de> (raw)
In-Reply-To: <878r0nmggm.fsf@gnu.org>

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

On Mon, 2024-05-06 at 11:34 +0200, Ludovic Courtès wrote:
> Hi Jonas,
> 
> Jonas Hahnfeld <hahnjo@hahnjo.de> skribis:
> 
> > On Thu, 2024-01-04 at 11:57 +0100, Jonas Hahnfeld wrote:
> > > From 95f15821c535537c7ad4fdae1988855314d56ece Mon Sep 17 00:00:00 2001
> > > From: Jonas Hahnfeld <hahnjo@hahnjo.de>
> > > Date: Thu, 4 Jan 2024 11:44:55 +0100
> > > Subject: [PATCH] Speed up stage0 bootstrap build using prebuilts
> > > 
> > > Use prebuilt bytecode of ice-9/eval.go and others for all of stage0,
> > > it is optimized and evaluation is much faster. In my environment,
> > > this speeds up the build of guile-3.0.9 from around 29 minutes to
> > > only 19 minutes.
> > > 
> > > * meta/build-env.in: In stage0, prefer prebuilt bytecode over just
> > > compiled stage0 files.
> > > ---
> > >  meta/build-env.in | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/meta/build-env.in b/meta/build-env.in
> > > index bdc88ded4..446a536af 100644
> > > --- a/meta/build-env.in
> > > +++ b/meta/build-env.in
> > > @@ -58,7 +58,7 @@ then
> > >      fi
> > >      export GUILE_LOAD_PATH
> > >      case "$GUILE_BOOTSTRAP_STAGE" in
> > > -        stage0) GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage0:${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@" ;;
> > > +        stage0) GUILE_LOAD_COMPILED_PATH="${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@:${top_builddir}/stage0" ;;
> 
> I don’t understand why changing the order would make a difference.
> Surely if .go files are available under prebuilt/, they’ll be found,
> even if that directory comes second?  Or am I missing something?

Yes, they are found but with lower priority. As I try to explain in the
commit message (could be improved though), the same bytecode is also
built during stage0, but without optimizations which makes the rest of
stage0 awfully slow.

Jonas

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2024-05-06 19:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 10:57 [PATCH] Speed up stage0 bootstrap build using prebuilts Jonas Hahnfeld via Developers list for Guile, the GNU extensibility library
2024-02-22 20:09 ` Jonas Hahnfeld via Developers list for Guile, the GNU extensibility library
2024-05-06  9:34   ` bug#69314: " Ludovic Courtès
2024-05-06 19:12     ` Jonas Hahnfeld via Developers list for Guile, the GNU extensibility library [this message]
2024-05-07 16:21     ` Simon Tournier

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://www.gnu.org/software/guile/

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

  git send-email \
    --in-reply-to=f38530b2080efe72dcd4366ad0f4b5c1166c9633.camel@hahnjo.de \
    --to=guile-devel@gnu.org \
    --cc=69314@debbugs.gnu.org \
    --cc=hahnjo@hahnjo.de \
    --cc=ludo@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).