[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Building Bash with Geesh
From: |
Jan Nieuwenhuizen |
Subject: |
Re: Building Bash with Geesh |
Date: |
Fri, 07 Dec 2018 18:08:38 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Timothy Sample writes:
Hi Timothy!
> Over the last year, I built Geesh <https://gitlab.com/samplet/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’t even prompt for input!)
> Now, there are some caveats with respect to actual bootstrapping:
>
> • It does not have a non-Autotools build script;
That's OK, we can add a bootstrap-geesh if we want.
> • It requires Guile 2.2, while (I assume) the current bootstrap
> 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.
> • It still requires Core Utilities, though many of the utilities 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 “coreutils&co” 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, “what about Gash?” (For those who
> don’t know, Gash is also a Shell interpreter written in Guile
> <https://gitlab.com/janneke/gash>.) 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’m just putting this out there ;), if you’re 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
--
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com