From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:45447) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1if6gW-0001MO-0h for guix-patches@gnu.org; Wed, 11 Dec 2019 13:26:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1if6gU-0000it-Mw for guix-patches@gnu.org; Wed, 11 Dec 2019 13:26:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:52703) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1if6gU-0000ia-I6 for guix-patches@gnu.org; Wed, 11 Dec 2019 13:26:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1if6gU-00037d-EA for guix-patches@gnu.org; Wed, 11 Dec 2019 13:26:02 -0500 Subject: [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap Resent-Message-ID: From: Jan Nieuwenhuizen References: <87tv6qoank.fsf@gnu.org> <87sgm4m9fu.fsf@gnu.org> <87v9r0arni.fsf@gnu.org> <87y2vqdjwz.fsf@gnu.org> Date: Wed, 11 Dec 2019 19:25:01 +0100 In-Reply-To: <87y2vqdjwz.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Fri, 06 Dec 2019 07:53:32 +0100") Message-ID: <87y2viyb2a.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Timothy Sample , 38390@debbugs.gnu.org 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.u= pstream.scm?h=3Dv2.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) (cd= ar 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 --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com