From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: Re: Building Bash with Geesh Date: Fri, 07 Dec 2018 18:08:38 +0100 Message-ID: <87o99xp8mh.fsf@gnu.org> References: <87pnudwdda.fsf@ngyro.com> 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]:60473) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gVJcU-00036w-Ro for guix-devel@gnu.org; Fri, 07 Dec 2018 12:08:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gVJcT-0001to-Sf for guix-devel@gnu.org; Fri, 07 Dec 2018 12:08:54 -0500 In-Reply-To: <87pnudwdda.fsf@ngyro.com> (Timothy Sample's message of "Fri, 07 Dec 2018 10:44:17 -0500") 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: Timothy Sample Cc: guix-devel@gnu.org Timothy Sample writes: Hi Timothy! > Over the last year, I built Geesh , > which is a simple Shell interpreter written in Guile Scheme. As of the > other day, it is capable enough to build Bash! That is just amazing, congrats! > Geesh is very simple, and is missing a lot of features. It does not > even support all of POSIX. If you are looking for a new shell, Geesh is > not for you! (It doesn=E2=80=99t even prompt for input!) > Now, there are some caveats with respect to actual bootstrapping: > > =E2=80=A2 It does not have a non-Autotools build script; That's OK, we can add a bootstrap-geesh if we want. > =E2=80=A2 It requires Guile 2.2, while (I assume) the current bootstr= ap > Guile is version 2.0; That should be OK too, I'll leave Ludo' to comment on this, but Gash also needs Guile 2.2; on my Guix wip-bootstrap branch I already upgraded Guile. > =E2=80=A2 It still requires Core Utilities, though many of the utilit= ies are > available as Guile code in Gash. Yes! > Of these, I think fixing the first two will be trivial, while fixing the > third will require a bit of work (though hopefully not too much). Once > these things are done, we will be pretty close to being able to retire > the =E2=80=9Ccoreutils&co=E2=80=9D bootstrap binary. We certainly could = make it a lot > smaller. (AFAIK, we are still missing a few things, but Jan knows > better than I do.) Just yesterday, I managed to build a minimal bash and make using Gash and a very simple boot script, so without coreutils&co. A Scheme-only bootstrap is coming closer... > You may be thinking at this point, =E2=80=9Cwhat about Gash?=E2=80=9D (F= or those who > don=E2=80=99t know, Gash is also a Shell interpreter written in Guile > .) The Gash folks and I have been > thinking for a while about the best way to share work and combine > efforts. Yeah...Gash has an option to use the Geesh LALR parser, however it's not very well integrated (in fact I fear that the integration may have bitrotted). I think we should either cherry-pick eachother's goodies for a while, or somehow merge into one project that has two parsers (LALR and PEG), or spawn a new Guile library that provides the backend (the core-utils and co). It's a real interesting puzzle. WDYT? > Finally, and I=E2=80=99m just putting this out there ;), if you=E2=80=99r= e new to Guile > and want a simple project learn with, Geesh might be right for you! It > was a Guile-learning project for me, and it served its purpose > admirably. Thanks! janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com