[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap
From: |
Jan Nieuwenhuizen |
Subject: |
[bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap |
Date: |
Sun, 01 Dec 2019 17:55:57 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
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 “Gash Core Utils” refers to the
>> ‘gash-core-utils’ branch at <https://gitlab.com/janneke/gash>?
>
> 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
> “(guix build utils)”. Hopefully we can get reasonably nice 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’s nowhere near
> there yet, but that’s 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’s closer to an initial release. (I’ll have 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
>> <https://lists.gnu.org/archive/html/gash-devel/2019-06/threads.html>.)
>
> I was not subscribed to gash-devel! :P I was an admin, but that
> doesn’t mean I was subscribed. Sorry!
>
> I noticed the install path patch that you added to the Guix package, so
> it’s already fixed. So far I’ve 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’d rather keep Mes’ libc as small as possible IMO, because it’s
>> 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’m pretty sure
> we’ll get there, but I haven’t worked on the Awk implementation 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 “good
> enough” for the bootstrapping task. After that, I plan to turn my
> attention to the other utilities. There’s a lot of administrative work
> and cleaning to do there, so it will take some time to get a release
> out. Once that happens I’ll move on to removing some intermediate
> bootstrapping packages like early versions of Gawk, etc.
Great!
janneke
--
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Ludovic Courtès, 2019/12/01
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Timothy Sample, 2019/12/01
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Jan Nieuwenhuizen, 2019/12/01
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Jan Nieuwenhuizen, 2019/12/06
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Ludovic Courtès, 2019/12/07
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Jan Nieuwenhuizen, 2019/12/11
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Ludovic Courtès, 2019/12/15
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Timothy Sample, 2019/12/15
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Brett Gilio, 2019/12/15
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Jan Nieuwenhuizen, 2019/12/16
- [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap, Jan Nieuwenhuizen, 2019/12/16