From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:43912) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ibSWt-000051-C5 for guix-patches@gnu.org; Sun, 01 Dec 2019 11:57:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ibSWr-0004qr-VB for guix-patches@gnu.org; Sun, 01 Dec 2019 11:57:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:58876) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ibSWr-0004qn-Rx for guix-patches@gnu.org; Sun, 01 Dec 2019 11:57:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ibSWr-0007iW-Q1 for guix-patches@gnu.org; Sun, 01 Dec 2019 11:57:01 -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> <87r21of1y8.fsf@ngyro.com> Date: Sun, 01 Dec 2019 17:55:57 +0100 In-Reply-To: <87r21of1y8.fsf@ngyro.com> (Timothy Sample's message of "Sun, 01 Dec 2019 11:25:03 -0500") Message-ID: <87zhgcaste.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: Timothy Sample Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 38390@debbugs.gnu.org Timothy Sample writes: Hi Ludo, Timothy, >>> Gash Core Utils currently comes with >>> >>> [, awk, basename, cat, chmod, cmp, compress, cp, cut, diff, dirname, >>> egrep, expr, false, fgrep, find, gawk, grep, gzip, head, ln, ls, >>> mkdir, mv, pwd, reboot, rm, rmdir, sed, sleep, sort, tar, test, >>> touch, tr, true, uname, uniq, wc, and which. >> >> Woow, excellent! Do I get it right that =E2=80=9CGash Core Utils=E2=80= =9D refers to the >> =E2=80=98gash-core-utils=E2=80=99 branch at ? > > For now (see below). Right. I think that while Timothy mostly worked on the Gash core to make it a full sh alternative, I have been working in parallel to add all utilities that are needed during bootstrap. That worked out pretty OK, but now things need to come together again. >> So this is meant to be a Gash extension but separate from Gash. Looks >> really cool! > > My long term plan for it is to be a really, really souped-up version of > =E2=80=9C(guix build utils)=E2=80=9D. Hopefully we can get reasonably ni= ce Scheme > interfaces for common shell idioms and then build the utilities on top > of those interfaces. Then, the library could be useful independent of > the external utilities, Gash, and bootstrapping. It=E2=80=99s nowhere ne= ar > there yet, but that=E2=80=99s the goal. Yes, a nice shell library for Guile was Rutger's initial goal for the pre-merger Gash. I have diverged quite a bit from that path by focussing on the actual shell tools -- so while some of the library functionality is starting to fall in place, an actual nice library interface is still mostly missing... >> Do you plan to eventually merge it on Savannah? (I expected to find the >> code there. :-) > > Yes! I plan to add another repo as part of the Gash project. This will > happen when it=E2=80=99s closer to an initial release. (I=E2=80=99ll hav= e to audit all > of the copyright notices, etc., which I find easier to do while getting > ready for a release.) Great! >> BTW, I posted (unimportant) patches to >> .) > > I was not subscribed to gash-devel! :P I was an admin, but that > doesn=E2=80=99t mean I was subscribed. Sorry! > > I noticed the install path patch that you added to the Guix package, so > it=E2=80=99s already fixed. So far I=E2=80=99ve been too busy to test on= Guile 3.... Oh, I only subscribed in September 22nd...oops! >> I suppose having a good(-enough) Awk implementation in Gash would be >> more fruitful in the long run than reviving old C packages. Notably, I >> think you=E2=80=99d rather keep Mes=E2=80=99 libc as small as possible I= MO, because it=E2=80=99s >> cumbersome to write and maintain, which means more Scheme and less C. >> But obviously, this all depends on the difficulty of implementing the >> missing bits of Awk. > > I agree this is the right way to go in the long run. I=E2=80=99m pretty = sure > we=E2=80=99ll get there, but I haven=E2=80=99t worked on the Awk implemen= tation yet. I think the parser is OK, and I also thought the Awk we needed was only assignments and printing columns. I started with a naive AST-interpreter that worked a bit too well but has a flawed design (I don't remember the details). We need some good tests and probably a re-thinking and re-implementatation of the `run-commands' and `awk-expression' functions. > In around one week (with the usual caveats around software estimates), I > will make another release of Gash, at which point it will be =E2=80=9Cgood > enough=E2=80=9D for the bootstrapping task. After that, I plan to turn my > attention to the other utilities. There=E2=80=99s a lot of administrativ= e work > and cleaning to do there, so it will take some time to get a release > out. Once that happens I=E2=80=99ll move on to removing some intermediate > bootstrapping packages like early versions of Gawk, etc. Great! janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com