From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id aG0BENESN2IKZAAAgWs5BA (envelope-from ) for ; Sun, 20 Mar 2022 12:41:05 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id QOGACNESN2Lp2wAAG6o9tA (envelope-from ) for ; Sun, 20 Mar 2022 12:41:05 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 56F6B1869D for ; Sun, 20 Mar 2022 12:41:04 +0100 (CET) Received: from localhost ([::1]:37850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nVtvj-0006Qe-1I for larch@yhetil.org; Sun, 20 Mar 2022 07:41:03 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVtuk-0006QQ-Bx for guix-patches@gnu.org; Sun, 20 Mar 2022 07:40:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:39045) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nVtuj-0000Ez-TP for guix-patches@gnu.org; Sun, 20 Mar 2022 07:40:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nVtuj-0004uT-NL for guix-patches@gnu.org; Sun, 20 Mar 2022 07:40:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap Resent-From: Jan Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 20 Mar 2022 11:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54394 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Timothy Sample Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 54394@debbugs.gnu.org Received: via spool by 54394-submit@debbugs.gnu.org id=B54394.164777634218789 (code B ref 54394); Sun, 20 Mar 2022 11:40:01 +0000 Received: (at 54394) by debbugs.gnu.org; 20 Mar 2022 11:39:02 +0000 Received: from localhost ([127.0.0.1]:32942 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVttl-0004sp-MP for submit@debbugs.gnu.org; Sun, 20 Mar 2022 07:39:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVttj-0004sa-Gm for 54394@debbugs.gnu.org; Sun, 20 Mar 2022 07:39:00 -0400 Received: from [2001:470:142:3::e] (port=51168 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVttd-00009t-CD; Sun, 20 Mar 2022 07:38:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=EZdoa88MZ2YCICH5HWZjwjRubgc4/Sh77WY90Deg5q8=; b=CuKjWbZ3Uena2msNG9xm WnXEIzy4mwCxCW6EorwT452/oyrowTAAIrb/plj83LGurgZ0rMTqRs84ijMwp2bJ+aYNYhVMI2J+G Dr8BVOdjd/se8PAZhjUsVHWllnbunek/EOJvhiX3WGmfOetkXf0/KLJ1g9hfKBOCI9jG5T2p8t26j negee9ZCUpoGE1YS9tbzXaVooM9Ss8Qg2gaO5I7eA40BR/g1zDKHrqm+saKVfZ4H/gNeEmd47CXWr NUrj6v21Y2fKlZIH0macHn3dtDCfvMChwsOtMhG7CdddEyYs8T6CP3xS/2X2/cBhX1FSxNLJlFtnT 21Bg9vdioXGEww==; Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=39464 helo=dundal.janneke.lilypond.org) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVttc-0005Eb-U1; Sun, 20 Mar 2022 07:38:53 -0400 From: Jan Nieuwenhuizen Organization: AvatarAcademy.nl References: <87v8wg40dl.fsf@ngyro.com> X-Url: http://AvatarAcademy.nl Date: Sun, 20 Mar 2022 12:38:50 +0100 In-Reply-To: <87v8wg40dl.fsf@ngyro.com> (Timothy Sample's message of "Mon, 14 Mar 2022 16:47:50 -0600") Message-ID: <878rt43lbp.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1647776464; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=EZdoa88MZ2YCICH5HWZjwjRubgc4/Sh77WY90Deg5q8=; b=BZpQwX93qDYiCC0nfxwgeWe1RLTSoobmikwgHD3IBWx/bbh3pt0uSBRpzXm9H7PzLABTIw srcGQFdJtl+Z7daJQ8HYQG4iygqoz5ywO/Kii89gfpnx+AKtUpHSmk4av/JJihl6XYnCfe AlxcMYX1KzuC90QAZjkbDIeiZ6sG+dd7+Uw3kRHW7/z7irfmTWh36bt8udrtYUmdkvJ2La Wtct27i0LlXfpsMP27yBIPAtFfaGAi6+TzlOsqt/9N9SZRR8lPQ0K9bJYhXpb4kuJ9+68U ICtm0STR+VKWBWmBiJVvfwqhTcuIT7gtm8ODeqm8JzAEXaRgSiHcMLmapS3oAw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1647776464; a=rsa-sha256; cv=none; b=hSkxc7H+DlBQBDUnz3ZhQldLWQWZlCeYt8pnuNY+ZQUvrNXvAUWuCb8i0PjpKW2b5aOJfd dVXo/z5LW1j2P0zWf7xPb2LoV5QfST1pqWdm1dm8yA9nfbH6FCI1XZEEiNwWAe116Z7diL 4HvVR6dEnWxD3/vPbOYXAVNJwnoGt82R85aPzb9Nvu8RRBiXr9oFo6lqDe6Baf4tejTxQT B+zpQBLkCgaAxXLuryRHGvilmSII82yaJfq48BZwk7lFTWVIz5wakMkEIk/sH71WSW4bWu oUADssY2z7ehUVne2oFqUjrrWfMGag8fQmZLQobbUjeOvRyLMzE8b7yuYViCYg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b=CuKjWbZ3; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.03 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b=CuKjWbZ3; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 56F6B1869D X-Spam-Score: -5.03 X-Migadu-Scanner: scn0.migadu.com X-TUID: 9ncsl/s5nHfN Timothy Sample writes: Hello! > This is culmination of a lot of work, so I=E2=80=99m excited to be submit= ting > it! The main thrust of this series is to update Gash and Gash-Utils, > and then remove most of the old GNU utilities we use during early > bootstrap. To elaborate, the current situation is that we climb a > ladder through time: first we build Bash 2, then we build Bash 4, and > finally we build Bash 5. This is true for most GNU utilities: Sed, > Gawk, Coreutils, etc. The reason? Until now, our Scheme > implementations of those utilities (Gash and Gash-Utils) were very > limited. Bash 2 used to be a lot more useful then Gash, for example. > Now, with recent releases of Gash and Gash-Utils, the Scheme utilities > are, in general, capable of powering the builds of modern GNU software. What an amazing piece of work. Not only adding support for this in Gash and Gash-Utils, also adding the "follow-up" for the Guix bootstrap. Wow! Not meaning to create more unwanted work for you, but I believe this could do with a blog post. I very much like your "climb a ladder through time" description. > To be clear, we still climb the time-ladder in a few cases. The main > ones are GCC, Glibc, and Binutils. For example, we have to use GCC 2 to > transition from TCC To GCC 4 (which is the last non-C++ GCC [1]). > Fixing this would require quite a bit of TCC hacking Yes, that needs work on MesCC, especially the Mes C Library, and TCC. Possibly some work on mpz/gmp. We definately want to jump from TCC to GCC 4.6 (the last modular distribution) in the (near) future. > We still use old versions of Gzip, Make, patch, and > Gawk. The fact that Gawk is still there disappoints me quite a bit, but > =E2=80=98glibc-mesboot=E2=80=99 fails in a way that I just can=E2=80=99t = figure out when > building with Gash-Utils. Yeah, I can imagine, especially after your (2nd?) rewrite of AWK. > Gzip is not strictly necessary, but also pretty easy to replace. and replacing possibly has quite a speed penalty. > I=E2=80=99m not sure, but I think patch is only there > to avoid using patches in =E2=80=98origin=E2=80=99 records during bootstr= ap. We now > have a way to do that, so it may no longer be necessary. Yes, I believe patch is needed for the manual "apply-boot-patch" stages to avoid adding a dependency on xz, created by adding patches to "origin" records. > Make will likely need to be rewritten in Scheme, but we have a head > start: Potato Make [2]. > > [2] https://github.com/spk121/potato-make Interesting! POSIX Makefile Parser Recipes can contain the following parser function (parse ...) reads a standard Makefile and creates rules based on its contents. Building glibc without GNU Make may be pretty difficult, though. > Here=E2=80=99s some detailed info for reviewers. > Ludovic Court=C3=A8s writes: > > The patches all LGTM! I think you can push them to =E2=80=98core-updat= es=E2=80=99 if > > there are no objections. > Pushed! (Maybe I didn=E2=80=99t leave enough time for objections =E2=80= =93 apologies if > it ends up requiring a revert! I=E2=80=99ll be around to work through any > issues this might cause.) Patches LGTM, and thanks for pushing. > The rest hopefully speak for themselves. Sadly, the last one is > something of a jumble. Originally I wanted to remove the utilities one > at a time, but it turns out there are interference effects. I can=E2=80= =99t > remember the exact details now, but to get an idea, removing both old > Bash and old Grep might work, but removing one and then the other (in > either order) might not. Hence, many utilities get updated in one > commit. That's quite understandable, and certainly acceptable. Much of this time-ladder was created by me, it was an enormous effort to find old (and some ancient) versions of the tools that worked well together. There are undocumented build dependencies all around. Some newer packages cannot be used to build older versions of other packages, etc. So, while this kludge was a necessary evil, I'm extremely happy we can now do without it. We should work towards a bootstrap that depends mainly on current packages, and strive to keep current packages bootstrappable. To summarize what you removed: bzip2 (not an old version) sed-1.18 sed-4.0.6 binutils-2.14 (really great!) bash-2.05b bash-4.4 gawk-3.0.0 tar-1.22 grep-2.0 coreutils-5.0 xz-5.0.0 (wow, that was difficult to build) that's 11 old and ancient packages, if have counted correctly. Greetings, Janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com