all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jan Nieuwenhuizen <janneke@gnu.org>
To: Timothy Sample <samplet@ngyro.com>
Cc: guix-devel@gnu.org
Subject: Re: Building Bash with Geesh
Date: Fri, 07 Dec 2018 18:08:38 +0100	[thread overview]
Message-ID: <87o99xp8mh.fsf@gnu.org> (raw)
In-Reply-To: <87pnudwdda.fsf@ngyro.com> (Timothy Sample's message of "Fri, 07 Dec 2018 10:44:17 -0500")

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 <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com

  reply	other threads:[~2018-12-07 17:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-07 15:44 Building Bash with Geesh Timothy Sample
2018-12-07 17:08 ` Jan Nieuwenhuizen [this message]
2018-12-07 22:21   ` Ludovic Courtès
2018-12-08  0:33     ` Timothy Sample
2018-12-08  6:47     ` Jan Nieuwenhuizen
2018-12-08  1:01   ` Timothy Sample
2018-12-09  4:17 ` Chris Marusich
2018-12-09  6:58 ` Jan Nieuwenhuizen
2018-12-09 15:20   ` Timothy Sample

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o99xp8mh.fsf@gnu.org \
    --to=janneke@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=samplet@ngyro.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.