all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jan Nieuwenhuizen <janneke@gnu.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: Timothy Sample <samplet@ngyro.com>, 38390@debbugs.gnu.org
Subject: [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap
Date: Wed, 11 Dec 2019 19:25:01 +0100	[thread overview]
Message-ID: <87y2viyb2a.fsf@gnu.org> (raw)
In-Reply-To: <87y2vqdjwz.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Fri, 06 Dec 2019 07:53:32 +0100")

Jan Nieuwenhuizen writes:

Hi!

> We will be working on a rewrite of wip-bootstrap to have it use Gash
> wip-0.2.0+ and include a number of cleanups.

I have just hard-reset wip-bootstrap for the next iteration!

> Here is my current TODO list
>
>   * base bootstrap on Gash wip-0.20.0 (plus janneke's 2 patches)

Done.  I just built `hello', so Gash 0.2.0 here we come (afaic).

>   * remove %bootstrap-gash (with gash core utils) from bootstrap seed

Done; thanks to Ludo's insights about %boostrap-guile+guild, we were
able to do this.  The `gash-boot' and `gash-core-utils-boot' packages no
longer appear in shells.scm; they are built during bootstrap using the
guile-build-system.  I currently add lalr.upstream as an extra origin
to gash core utils from

--8<---------------cut here---------------start------------->8---
"http://git.savannah.gnu.org/cgit/guile.git/plain/module/system/base/lalr.upstream.scm?h=v2.0.9"
--8<---------------cut here---------------end--------------->8---

>   * look at possibility/cost to avoid updating the mescc-tools and mes
>     bootstrap binaries

This proved possible (dare I say feasible?).  What was needed is

 - allow mescc (0.21+) to work with old mescc-tools 0.5.2
 - add %bootstrap-mes-rewired, to remove MesCC from mes-0.19 and
   enable it to run 0.21+ MesCC

%bootstrap-mes-rewired uses this hack
--8<---------------cut here---------------start------------->8---
         (add-after 'unpack 'patch-%moduledir
           (lambda _
             (copy-file "module/mescc.scm" "module/mescc.scm.orig")
             (substitute* "module/mescc.scm"
               (("^  \\(mes-use-module \\(mescc mescc\\)" all)
                (string-append "
  ;; MesCC from mes-0.21
  (let* ((self (car (command-line)))
         (prefix (dirname (dirname self))))
    (set! %moduledir (string-append prefix \"/mes/module/\"))
    (setenv \"%numbered_arch\" \"true\"))

  ;; A fixed map, from mes-0.21
  (define (map f h . t)
    (if (or (null? h)
            (and (pair? t) (null? (car t)))
            (and (pair? t) (pair? (cdr t)) (null? (cadr t)))) '()
        (if (null? t) (cons (f (car h)) (map f (cdr h)))
            (if (null? (cdr t))
                (cons (f (car h) (caar t)) (map f (cdr h) (cdar t)))
                (if (null? (cddr t))
                    (cons (f (car h) (caar t) (caadr t)) (map f (cdr h) (cdar t) (cdadr t)))
                    (if (null? (cdddr t))
                        (cons (f (car h) (caar t) (caadr t) (car (caddr t))) (map f (cdr h) (cdar t) (cdadr t) (cdr (caddr t))))
                        (error 'unsupported (cons* 'map-5: f h t))) )))))
" all)))
             #t))
--8<---------------cut here---------------end--------------->8---

...not particularly nice/clean/auditable; but "it works".  WDYT?
On a related note, should mescc 0.21 include some kind of `hook' make
this kind of change easier to make?

This snippet could also be pushed "upstream", to mes-0.21+...but meh...

>   * remove any generated (gitlab/github) tarballs

Done (but please check!).

>   * look into awkward combined bash+gash dependency of glibc-mesboot0

Haven't addressed this.  I quickly looked with Ludo at this, not really
into it though.  WYDT?

>   * add some %bootX-input stages, at least when reached gcc-mesboot1

Done.  Numbering of bootX, mesbootX could possibly made to make more
sense.  However, I also would like to get rid of the whole 2.95 story
some time soon and then many things change again.  I could do with some
help/inspiration here.

>   * commit messages: Use "Use Gash instead of coretutils&co." rather than
>     "Scheme-only bootstrap."

Done.

>   * some smaller cleanups and nitpicks here and there

Removed "ed-1.4" again (using a revert commit, that we can drop).

I kept most earlier commits that add to the bootstrap seed and added
revert commits.  If we like what we have, we can remove both the commits
that introduced these and their reverts.

We are really getting there!  I would like to do a rewrite once Gash
0.2.0 is out.  What to do about Gash Core Utils?  I also plan to do a
rewrite once MES 0.22 is out.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com

  parent reply	other threads:[~2019-12-11 18:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-26 16:38 [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap Jan Nieuwenhuizen
2019-12-01 14:01 ` Ludovic Courtès
2019-12-01 16:25   ` Timothy Sample
2019-12-01 16:55     ` Jan Nieuwenhuizen
2019-12-01 17:14     ` Ludovic Courtès
2019-12-01 17:21   ` Jan Nieuwenhuizen
2019-12-06  6:53     ` Jan Nieuwenhuizen
2019-12-07 22:31       ` Ludovic Courtès
2019-12-11 18:25       ` Jan Nieuwenhuizen [this message]
2019-12-15 21:33         ` Ludovic Courtès
2019-12-15 22:39           ` Timothy Sample
2019-12-15 22:45             ` Brett Gilio
2019-12-16  6:34             ` Jan Nieuwenhuizen
2019-12-16 19:28           ` Jan Nieuwenhuizen
2019-12-18 22:55             ` Jan Nieuwenhuizen
2019-12-19 11:08               ` Ludovic Courtès
2020-02-03 17:37 ` [bug#38390] [bug #38390] Building bootstrap Gash and Gash-Utils Timothy Sample
2020-02-05  8:58   ` Ludovic Courtès
2020-02-05 14:32     ` Timothy Sample
2020-02-05 21:33       ` Ludovic Courtès
2020-02-06 22:58         ` Jan Nieuwenhuizen
2020-02-07 11:00           ` Ludovic Courtès
2020-02-08 17:33             ` Timothy Sample
2020-02-08 22:32               ` Jan Nieuwenhuizen
2020-02-10  2:23                 ` Timothy Sample
2020-02-11 13:56               ` Ludovic Courtès

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=87y2viyb2a.fsf@gnu.org \
    --to=janneke@gnu.org \
    --cc=38390@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    --cc=samplet@ngyro.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.