unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* GNU Mes 0.24.1 released
@ 2022-10-16  8:59 Janneke Nieuwenhuizen
  2022-10-19 15:32 ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Janneke Nieuwenhuizen @ 2022-10-16  8:59 UTC (permalink / raw)
  To: info-gnu; +Cc: bug-mes, guix-devel, bootstrappable, rb-general

[-- Attachment #1: Type: text/plain, Size: 4842 bytes --]

We are happy to announce the release of GNU Mes 0.24.1, representing 23
commits over five months by four people.

Mes now supports the stage0-posix and M2-Planet Full Source bootstrap on
Aarch64 for ARM.  Because stage0-posix does not support ARM yet, the Mes
ARM bootstrap is currently prototyped on Aarch64.

We are excited that the NlNet Foundation[4] is again sponsoring this
work!

What's next?

Work to prototype this so-called "Full Source Bootstrap" for ARM on
Aarch64 is happening on the wip-aarch64-bootstrap[3] branch.  Also, full
Guile compatible module support, and RISC-V support.

Enjoy!

* About

  GNU Mes[5] is a Scheme interpreter and C compiler for bootstrapping
  the GNU System.  Since version 0.22 it has again helped to halve the
  size of opaque, uninspectable binary seeds that are currently being
  used in the Reduced Binary Seed bootstrap[6] of GNU Guix[7].  The
  final goal is to help create a full source bootstrap as part of the
  bootstrappable builds[8] effort for UNIX-like operating systems.

  The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
  compiler written in Scheme and these are mutual self-hosting.  Mes can
  now be bootstrapped from M2-Planet[9] and Mescc-Tools[10].

  Mes has a Garbage Collector, a library of loadable Scheme modules--
  notably Dominique Boucher's LALR[11], Pre-R6RS portable
  syntax-case[12] with R7RS ellipsis, Matt Wette's Nyacc[13] --and test
  suite, just enough to support a REPL and a C99 compiler: mescc.

  Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[14] that
  is self-hosting.  Using this tcc and the Mes C library we now have a
  Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
  binutils-2.20.1, gcc-2.95.3.  This is enough to bootstrap Guix for
  i686-linux, x86_64-linux, armhf-linux and aarch64-linux.

  Mes is inspired by The Maxwell Equations of Software: LISP-1.5[15] --
  John McCarthy page 13, GNU Guix's source/binary packaging transparency
  and Jeremiah Orians's stage0[16] 357-byte self-hosting hex assembler.

* Download

  git clone git://git.savannah.gnu.org/mes.git

  Here are the compressed sources and a GPG detached signature[*]:
    https://ftp.gnu.org/gnu/mes/mes-0.24.1.tar.gz
    https://ftp.gnu.org/gnu/mes/mes-0.24.1.tar.gz.sig

  Use a mirror for higher download bandwidth:
    https://ftpmirror.gnu.org/mes/mes-0.24.1.tar.gz
    https://ftpmirror.gnu.org/mes/mes-0.24.1.tar.gz.sig

  Here are the SHA1 and SHA256 checksums:

  bceaaaf1cafaa31ccb1ee1247ce2dd651a2f67be  mes-0.24.1.tar.gz
  35120ceb0676632e58973355b9f86dff9cc717ed65ed2a17ff5272c59f2a0535  mes-0.24.1.tar.gz

  [*] Use a .sig file to verify that the corresponding file (without the
  .sig suffix) is intact.  First, be sure to download both the .sig file
  and the corresponding tarball.  Then, run a command like this:

    gpg --verify mes-0.24.1.tar.gz.sig

  If that command fails because you don't have the required public key,
  or that public key has expired, try the following commands to update
  or refresh it, and then rerun the 'gpg --verify' command.

    gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273

* Get informed, get involved

  See https://bootstrappable.org
  Join #bootstrappable on irc.libera.chat

* NEWS
 * Changes in 0.24.1 since 0.24
 ** Build
 *** Support M2-Planet bootstrap for ARM.
 ** MesCC
 *** The Mes C Library now supports bootstrapping ARM.
 ** Noteworthy bug fixes
 *** The definition of S_ISUID was fixed.
 *** Unsigned modulo has been fixed for ARM.
 *** A bug with abtol has been fixed.
 *** Workarounds for building with gcc-12.2.0 have been added.

* Links
  [0] https://github.com/oriansj/stage0-posix
  [1] https://github.com/oriansj/bootstrap-seeds
  [2] https://archive.fosdem.org/2021/schedule/event/gnumes/
  [3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-aarch64-bootstrap
  [4] https://nlnet.nl/project/GNUMes-ARM_RISC-V
  [5] https://www.gnu.org/software/mes
  [6] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
  [7] https://www.gnu.org/software/guix
  [8] https://bootstrappable.org
  [9] https://github.com/oriansj/m2-planet
  [10] https://savannah.nongnu.org/projects/mescc-tools
  [11] https://github.com/schemeway/lalr-scm
  [12] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
  [13] https://www.nongnu.org/nyacc
  [14] https://gitlab.com/janneke/tinycc
  [15] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
  [16] https://savannah.nongnu.org/projects/stage0

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: GNU Mes 0.24.1 released
  2022-10-16  8:59 GNU Mes 0.24.1 released Janneke Nieuwenhuizen
@ 2022-10-19 15:32 ` Ludovic Courtès
  2022-10-19 19:41   ` Janneke Nieuwenhuizen
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2022-10-19 15:32 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen; +Cc: guix-devel

Howdy,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

> We are happy to announce the release of GNU Mes 0.24.1, representing 23
> commits over five months by four people.
>
> Mes now supports the stage0-posix and M2-Planet Full Source bootstrap on
> Aarch64 for ARM.  Because stage0-posix does not support ARM yet, the Mes
> ARM bootstrap is currently prototyped on Aarch64.

This is exciting news!  Looking forward to having full-source
bootstrapped AArch64… and it looks like there’s already activity on a
‘wip-’ branch. 👍

Cheers,
Ludo’.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: GNU Mes 0.24.1 released
  2022-10-19 15:32 ` Ludovic Courtès
@ 2022-10-19 19:41   ` Janneke Nieuwenhuizen
  2022-10-19 19:57     ` Efraim Flashner
                       ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Janneke Nieuwenhuizen @ 2022-10-19 19:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, Danny Milosavljevic

Ludovic Courtès writes:

Hey!

> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
> This is exciting news!  Looking forward to having full-source
> bootstrapped AArch64… and it looks like there’s already activity on a
> ‘wip-’ branch.

Yes, it is!  The ARM bootstrap story is still a bit flakey, as
stage0-posix does not support ARM.  So, ARM would need
%bootstrap-mescc-tools and %bootstrap-mes binary seeds...meh.

However, aarch64-linux now bootstraps from 526 bytes all the way until
gcc-core-mesboot 2,95.3.  Very nice!

We're still stuck at building a full gcc+glibc combo;
glibc-mesboot-2.2.5 builds, but possibly not correctly; as the full
gcc-mesboot0 (2.95.3) build fails at configure time: gcc-core-mesboot0 +
glibc-mesboot0

       ?: 0 [execle "./gencheck" # "./gencheck"]
    ERROR: In procedure execle: Exec format error

Not sure what to do here.  We could somehow try to debug/bisect this.
We could try to use a newer glibc; glibc-2.2.5 happened during the
OABI/EABI switch and is heavily patched.  Or, we could try to remove
glibc-2.2.5/gcc-2.95.3 altogether and aim for a direct tcc => gcc-4.6.4.
We need to go that way anyway for RISCV.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: GNU Mes 0.24.1 released
  2022-10-19 19:41   ` Janneke Nieuwenhuizen
@ 2022-10-19 19:57     ` Efraim Flashner
  2022-10-20 14:11       ` Jan Nieuwenhuizen
  2022-10-20 13:13     ` Ludovic Courtès
  2022-10-22 18:02     ` Efraim Flashner
  2 siblings, 1 reply; 7+ messages in thread
From: Efraim Flashner @ 2022-10-19 19:57 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen
  Cc: Ludovic Courtès, guix-devel, Danny Milosavljevic

[-- Attachment #1: Type: text/plain, Size: 3030 bytes --]

On Wed, Oct 19, 2022 at 09:41:20PM +0200, Janneke Nieuwenhuizen wrote:
> Ludovic Courtès writes:
> 
> Hey!
> 
> > Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
> >
> > This is exciting news!  Looking forward to having full-source
> > bootstrapped AArch64… and it looks like there’s already activity on a
> > ‘wip-’ branch.
> 
> Yes, it is!  The ARM bootstrap story is still a bit flakey, as
> stage0-posix does not support ARM.  So, ARM would need
> %bootstrap-mescc-tools and %bootstrap-mes binary seeds...meh.
> 
> However, aarch64-linux now bootstraps from 526 bytes all the way until
> gcc-core-mesboot 2,95.3.  Very nice!
> 
> We're still stuck at building a full gcc+glibc combo;
> glibc-mesboot-2.2.5 builds, but possibly not correctly; as the full
> gcc-mesboot0 (2.95.3) build fails at configure time: gcc-core-mesboot0 +
> glibc-mesboot0
> 
>        ?: 0 [execle "./gencheck" # "./gencheck"]
>     ERROR: In procedure execle: Exec format error
> 
> Not sure what to do here.  We could somehow try to debug/bisect this.
> We could try to use a newer glibc; glibc-2.2.5 happened during the
> OABI/EABI switch and is heavily patched.  Or, we could try to remove
> glibc-2.2.5/gcc-2.95.3 altogether and aim for a direct tcc => gcc-4.6.4.
> We need to go that way anyway for RISCV.

Which hardware are you building on? On my pine64 I'm getting stuck at
tcc-0.9.26-1134-g80114c4d
On commit 519f4c8c9a0b191e9a447116685393c2fed4cd3b

starting phase `build'
  CC         tccpp.c
->type--: not a <type>: (typename "BufferedFile")
->type--: not a <type>: (typename "BufferedFile")
  CC         tccgen.c
  CC         tccelf.c
unexpected size:8
rank--: not a pointer: #<<type> type: signed size: 1 description: #f>
rank--: not a pointer: #<<type> type: signed size: 1 description: #f>
  CC         tccrun.c
  CC         arm-gen.c
unexpected size:8
  CC         arm-link.c
  CC         arm-asm.c
  CC         tccasm.c
  CC         libtcc.c
  CC         tcc.c
  CCLD       mes-tcc
mkdir -p /gnu/store/d3kcgm0z3yyc7bplaacr7g0j8gk36h5j-tcc-boot0-0.9.26-1134-g80114c4d/lib/tcc
rm -f crt1.o;
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crt1.c .
crt1.c:149: warning: implicit declaration of function 'main'
rm -f crti.o;
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crti.c .
rm -f crtn.o;
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crtn.c .
rm -f libc.a
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/libc+gnu.c libc.c
error: in phase 'build': uncaught exception:
srfi-34 #<condition &invoke-error [program: "sh" arguments: ("bootstrap.sh") exit-status: 1 term-signal: #f stop-signal: #f] 10f6100>
phase `build' failed after 21994.9 seconds


-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: GNU Mes 0.24.1 released
  2022-10-19 19:41   ` Janneke Nieuwenhuizen
  2022-10-19 19:57     ` Efraim Flashner
@ 2022-10-20 13:13     ` Ludovic Courtès
  2022-10-22 18:02     ` Efraim Flashner
  2 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2022-10-20 13:13 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen; +Cc: guix-devel, Danny Milosavljevic

Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

>> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>>
>> This is exciting news!  Looking forward to having full-source
>> bootstrapped AArch64… and it looks like there’s already activity on a
>> ‘wip-’ branch.
>
> Yes, it is!  The ARM bootstrap story is still a bit flakey, as
> stage0-posix does not support ARM.  So, ARM would need
> %bootstrap-mescc-tools and %bootstrap-mes binary seeds...meh.

By “ARM”, you mean the 32-bit ARMv7 ISA, which armhf-linux targets,
right?  (AArch64, aka. ARMv8, is also “ARM”.  :-))

> However, aarch64-linux now bootstraps from 526 bytes all the way until
> gcc-core-mesboot 2,95.3.  Very nice!

Impressive!

> We're still stuck at building a full gcc+glibc combo;
> glibc-mesboot-2.2.5 builds, but possibly not correctly; as the full
> gcc-mesboot0 (2.95.3) build fails at configure time: gcc-core-mesboot0 +
> glibc-mesboot0
>
>        ?: 0 [execle "./gencheck" # "./gencheck"]
>     ERROR: In procedure execle: Exec format error
>
> Not sure what to do here.  We could somehow try to debug/bisect this.
> We could try to use a newer glibc; glibc-2.2.5 happened during the
> OABI/EABI switch and is heavily patched.

This issue is on aarch64-linux?  What does “file gencheck” say?

> Or, we could try to remove glibc-2.2.5/gcc-2.95.3 altogether and aim
> for a direct tcc => gcc-4.6.4.  We need to go that way anyway for
> RISCV.

That sounds like the best approach longer-term, but possibly more work
than figuring out the issue above?

Thanks,
Ludo’.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: GNU Mes 0.24.1 released
  2022-10-19 19:57     ` Efraim Flashner
@ 2022-10-20 14:11       ` Jan Nieuwenhuizen
  0 siblings, 0 replies; 7+ messages in thread
From: Jan Nieuwenhuizen @ 2022-10-20 14:11 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, Danny Milosavljevic

Efraim Flashner writes:

Hi Efraim,

> On Wed, Oct 19, 2022 at 09:41:20PM +0200, Janneke Nieuwenhuizen wrote:
>
> Which hardware are you building on? On my pine64 I'm getting stuck at
> tcc-0.9.26-1134-g80114c4d
> On commit 519f4c8c9a0b191e9a447116685393c2fed4cd3b
>
> starting phase `build'
>   CCLD       mes-tcc
> mkdir -p /gnu/store/d3kcgm0z3yyc7bplaacr7g0j8gk36h5j-tcc-boot0-0.9.26-1134-g80114c4d/lib/tcc
> rm -f crt1.o;
> cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crt1.c .
> crt1.c:149: warning: implicit declaration of function 'main'
> rm -f crti.o;
> cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crti.c .
> rm -f crtn.o;
> cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crtn.c .
> rm -f libc.a
> cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/libc+gnu.c libc.c
> error: in phase 'build': uncaught exception:
> srfi-34 #<condition &invoke-error [program: "sh" arguments: ("bootstrap.sh") exit-status: 1 term-signal: #f stop-signal: #f] 10f6100>
> phase `build' failed after 21994.9 seconds

Oops.  Not sure what happened on my side, but yeah this error reproduces
for me.  I've pushed an updated tcc-boot0 to wip-aarch64-bootstrap.

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://lilypond.org
Freelance IT https://JoyOfSource.com | Avatar® https://AvatarAcademy.com


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: GNU Mes 0.24.1 released
  2022-10-19 19:41   ` Janneke Nieuwenhuizen
  2022-10-19 19:57     ` Efraim Flashner
  2022-10-20 13:13     ` Ludovic Courtès
@ 2022-10-22 18:02     ` Efraim Flashner
  2 siblings, 0 replies; 7+ messages in thread
From: Efraim Flashner @ 2022-10-22 18:02 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen
  Cc: Ludovic Courtès, guix-devel, Danny Milosavljevic

[-- Attachment #1: Type: text/plain, Size: 2149 bytes --]

On Wed, Oct 19, 2022 at 09:41:20PM +0200, Janneke Nieuwenhuizen wrote:
> Ludovic Courtès writes:
> 
> Hey!
> 
> > Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
> >
> > This is exciting news!  Looking forward to having full-source
> > bootstrapped AArch64… and it looks like there’s already activity on a
> > ‘wip-’ branch.
> 
> Yes, it is!  The ARM bootstrap story is still a bit flakey, as
> stage0-posix does not support ARM.  So, ARM would need
> %bootstrap-mescc-tools and %bootstrap-mes binary seeds...meh.
> 
> However, aarch64-linux now bootstraps from 526 bytes all the way until
> gcc-core-mesboot 2,95.3.  Very nice!
> 
> We're still stuck at building a full gcc+glibc combo;
> glibc-mesboot-2.2.5 builds, but possibly not correctly; as the full
> gcc-mesboot0 (2.95.3) build fails at configure time: gcc-core-mesboot0 +
> glibc-mesboot0
> 
>        ?: 0 [execle "./gencheck" # "./gencheck"]
>     ERROR: In procedure execle: Exec format error
> 
> Not sure what to do here.  We could somehow try to debug/bisect this.
> We could try to use a newer glibc; glibc-2.2.5 happened during the
> OABI/EABI switch and is heavily patched.  Or, we could try to remove
> glibc-2.2.5/gcc-2.95.3 altogether and aim for a direct tcc => gcc-4.6.4.
> We need to go that way anyway for RISCV.

I noticed that when offloading from my x86_64 box to my aarch64 machine
target gets (%current-system) from the originating system, not from the
system doing the building. I'm testing moving the '(let ((triplet ...'
code down from the top of the definition to inside the arguments. I
didn't see a difference with 'guix build -d' for x86_64 from x86_64, but
the derivation did change with the planned offload to an aarch64
machine.

I looked into gcc-2.95 more than I wanted to last week with GHC-4.08,
would it help if we specified we wanted armv4 or armv4t or strongswan
instead of "generic"?

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-10-24  1:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-16  8:59 GNU Mes 0.24.1 released Janneke Nieuwenhuizen
2022-10-19 15:32 ` Ludovic Courtès
2022-10-19 19:41   ` Janneke Nieuwenhuizen
2022-10-19 19:57     ` Efraim Flashner
2022-10-20 14:11       ` Jan Nieuwenhuizen
2022-10-20 13:13     ` Ludovic Courtès
2022-10-22 18:02     ` Efraim Flashner

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).