guix-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]