Re: [bootstrappable] wip-full-source-bootstrap: from a 357-byte `hex0' to 'hello'

2021-01-07 Thread Jan Nieuwenhuizen
Paul Sherwood writes:

Hello Paul,

> On 2021-01-04 17:01, Jan Nieuwenhuizen wrote:
>> I have reset Guix' wip-full-source-bootstrap branch with a first
>> working
>> implementation of the, well, "Full Source Bootstrap" for x86-linux (and
>> x86_64-linux).  This bootstrap is rooted in the 357-byte hex0-seed from
>> the Stage0 project (https://savannah.gnu.org/projects/stage0):
>
> This is really exciting, great job Jan! Do you need any help, e.g. on
> the ARM side, or with optimising the integration?

Thanks!  We really could use help with this (Danny?).  To paint the
picture for people listening in: Next to ARM it may need some Guix
skills, or even more work to reproduce our experimental ARM bootstrap
outside of Guix.

I'm a bit hesitant about the timing, because I cannot make much time the
coming week.

A very short summary of where we are, on wip-arm-bootstrap, building
gawk-mesboot0

--8<---cut here---start->8---
./pre-inst-env guix build -e '(@@ (gnu packages commencement) gawk-mesboot0)'
--8<---cut here---end--->8---

produces a gawk binary that fails to increment a variable

--8<---cut here---start->8---
11:35:59 janneke@novena:~/src/wip-arm-bootstrap [env]
$ /gnu/store/f756xxxqj3mabaax5r4ldrxh01a9q54r-gawk-mesboot0-3.0.0/bin/gawk -f 
add.awk add.awk 
i=1
i=2
11:36:14 janneke@novena:~/src/wip-arm-bootstrap [env]
$ /gnu/store/f756xxxqj3mabaax5r4ldrxh01a9q54r-gawk-mesboot0-3.0.0/bin/gawk -f 
inc.awk inc.awk 
i= 0
i= 0
11:36:27 janneke@novena:~/src/wip-arm-bootstrap [env]
--8<---cut here---end--->8---

So could be anything, could bin in tcc-boot or in gawk-mesboot0...

Thanks for reaching out!
Greetings,
Janneke



add.awk
Description: Binary data


inc.awk
Description: Binary data

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com


Re: [bootstrappable] wip-full-source-bootstrap: from a 357-byte `hex0' to 'hello'

2021-01-06 Thread Paul Sherwood

On 2021-01-04 17:01, Jan Nieuwenhuizen wrote:
I have reset Guix' wip-full-source-bootstrap branch with a first 
working

implementation of the, well, "Full Source Bootstrap" for x86-linux (and
x86_64-linux).  This bootstrap is rooted in the 357-byte hex0-seed from
the Stage0 project (https://savannah.gnu.org/projects/stage0):


This is really exciting, great job Jan! Do you need any help, e.g. on 
the ARM side, or with optimising the integration?




Re: [bootstrappable] wip-full-source-bootstrap: from a 357-byte `hex0' to 'hello'

2021-01-06 Thread Ludovic Courtès
Hi!

Jan Nieuwenhuizen  skribis:

> I have reset Guix' wip-full-source-bootstrap branch with a first working
> implementation of the, well, "Full Source Bootstrap" for x86-linux (and
> x86_64-linux).  This bootstrap is rooted in the 357-byte hex0-seed from
> the Stage0 project (https://savannah.gnu.org/projects/stage0):
>
> $ ./pre-inst-env guix build hello --verbosity=1
> [..]
> /gnu/store/w61gf93yn2bxwyc6d1xp4y9lavvw1l3d-hello-2.10
> 17:58:54 janneke@dundal:~/src/guix/wip-fsb [env]

This is amazing!  Incredible.  Thumbs up!

(BTW, you recently worked on the secret service¹, and now the
FSB—coincidence?)

¹ 
https://git.savannah.gnu.org/cgit/guix.git/commit?id=ec32d4f291b3cc039a99f8090b6c2b2444be5a83

> When you look at the bottom of the graph (see attached), you will notice
> "%bootstrap-guile": the driver that we use for the Guix build and also
> for "bootar", "gash", and "gash-utils".  This "%bootstrap-guile" is not
> used as a seed in anything that is built, "%bootstrap-guile", "bootar",
> "gash", and "gash-utils" could be replaced with any other driver.

Longer-term, could bootar, Gash, etc. run on Mes?  Would that help?

> Two new packages are added: "bootstrap-seeds", which contains the
> hex0-seed binary
> (https://github.com/oriansj/bootstrap-seeds/blob/master/POSIX/x86/hex0-seed)
> with ASCII-equivalent
> (https://github.com/oriansj/bootstrap-seeds/blob/master/POSIX/x86/hex0_x86.hex0),
> and "m2-planet-boot" which, starting from hex0, via hex1, M0, hex2 and
> M1, bootstraps the M2-Planet transpiler.  M2 is a language that closely
> resembles a subset of C.
>
> The breakthrough is that this M2-Planet can now compile a version of GNU
> Mes, as yet unreleased: the wip-m2 branch.  This removes the remaining
> binary seeds: %bootstrap-mescc-tools and %bootstrap-mes, together with
> the "%bootstrap-mes-rewired" hack.

Woow.  I’m willing to take a closer look at all this, this is
impressive!

> Apart from a review there is still some work before it can be
> integrated, in short (from the top commit message):
>
> XXX TODO:
>* wip-full-source-bootstrap
>  - release mes-0.24, update
>  - possibly release m2-planet-1.8.0, update
>  - rebase wip-full-source-bootstrap onto core-updates
>  - integrate

All this should be piece of cake compared to what you’ve gone through.
;-)  But it does mean long rebuild cycles, which I guess can be tiring.

>* wip-arm-bootstrap
>  - finish; currently stuck on gawk-mesboot0
>  - release mes-0.23
>  - devise strategy for integrating wip-full-source-bootstrap and
>wip-arm-bootstrap

Ah, that’s the second big challenge!

Congratulations to you and everyone involved for going this far!
You made it!

Ludo’.



Re: [bootstrappable] wip-full-source-bootstrap: from a 357-byte `hex0' to 'hello'

2021-01-04 Thread jeremiah
Amazing work as always janneke.

We will just have to do some kaem work to make it work all on POSIX systems.

-Jeremiah