From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: bootstrap integration strategies Date: Mon, 09 Jul 2018 22:55:50 +0200 Message-ID: <8736wsnn6x.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55810) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fcdCW-0000M8-Hh for guix-devel@gnu.org; Mon, 09 Jul 2018 16:56:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fcdCV-0007mz-Af for guix-devel@gnu.org; Mon, 09 Jul 2018 16:56:04 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org Cc: Rutger van Beusekom Hi! With Mes 0.16 released I felt that after two years of straight hacking I was pretty much done. Hmm... On the wip-bootstrap branch we have these packages binutils-2.20.1, gcc-2.95.3, and glibc-2.2.5 built without using any of these 3 main tools from the bootstrap binaries. Using these we have built gcc-4.1.0 and glibc-2.3.6. We do however, use all these bootstrap binaries/binary seeds bash, bison, coreutils, diffutils, file, flex, gawk, grep, gzip, make, sed, tar ...and guile. Also: this Mes bootstrap is currently x86-linux only. And the above is an over-simplification, here's the list of seeds and packages in order: %mescc-tools-seed %mes-seed %tinycc-seed mescc-tools-boot mes-boot nyacc-boot tcc-boot-0@0.9.26 tcc-boot@0.9.27 binutils-mesboot@2.20.1a gcc-core-mesboot@2.95.3 glibc-mesboot@2.2.5 gcc-mesboot0@2.95.3 binutils-mesboot@2.20.1a gcc-mesboot@4.1.0 [glibc-mesboot@2.3.6] I hoped to get gcc-4.7.4 packaged easily but haven't succeeded in two weeks. That means I'm stuck[0]. Much has happened: I'm helping to get mescc-tools, Nyacc and Mes packaged in Debian, am writing some documentation[1], got a preliminary hello-world on Hurd, worked on Gash[2] to get it on par with bournish, applied for a GNU evaluation of Mes... If we get gcc-4.7.4 built for x86 that's nice, but can we bootstrap other architectures from that? Do we want that? We probably do not want different bootstrap paths for different architectures. What about the Hurd? Let's say we have gcc-4.7.4, then it would be nice to eliminate other bootstrap binaries. Obvious places to start are bash and make. As Guix we depend on the Guile bootstrap binary most. That is why I've also been working on Gash--Guile As SHell--by Rutger[cc] lately. If we make Gash powerful enough to replace bash to build make and some of the other bootstrap binaries, that would be nice. After a promising re-start it now proved that the heart of Gash, the SH grammar in PEG and its subsequent transformations needs an overhaul. That's being worked on but there is not much visible progress. So, where to go? Integrate the Mes x86 bootstrap and build other architectures on top of that (is that even possible)? Add the Mes bootstrap as an additional, weird `x86-linux' architecture to mature first? Add other architectures to Mes and keep one bootstrap path in Guix? Finish the x86 bootstrap/gcc-4.7.4 (I need help!)? Lots I haven't mentioned, hoping to get a discussion going and to create something of a plan. Thoughts? Greetings, janneke [0] https://gcc.gnu.org/ml/gcc-help/2018-07/msg00060.html [1] http://lilypond.org/janneke/mes [2] http://gitlab.com/rutger.van.beusekom/gash friendly fork with bournish commands: http://gitlab.com/janneke/gash --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com