De release van GNU Mes 0.26 is gepubliceerd, die het bootstrapproces voor GCC ondersteunt en een gesloten reconstructiecyclus uit de bronbestanden mogelijk maakt. Deze toolkit lost het probleem van een geverifieerde initiƫle compilatorbuild in distributies op, waardoor de cyclus van herbouw wordt doorbroken (voor het bouwen van de compilator zijn uitvoerbare bestanden van een al gebouwde compilator nodig, en binaire builds van de compilator zijn een potentieel bron van verborgen backdoors, wat het onmogelijk maakt om de integriteit van builds uit de referentiebronbestanden volledig te waarborgen).
In GNU Mes is er een zelfvoorzienende (self-hosting) interpreter voor de Scheme-taal, geschreven in C, en een eenvoudigste compiler voor de C-taal (MesCC), geschreven in Scheme. Beide componenten zijn wederzijds bouwbaar. De Scheme-interpreter maakt het mogelijk om de C-compiler MesCC te bouwen, die op zijn beurt een verkorte versie van de TinyCC (tcc) compiler kan bouwen, waarvan de mogelijkheden al voldoende zijn voor het bouwen van GCC.
De interpreter van de Scheme-taal is zeer compact, omvat ongeveer 5000 regels code op de eenvoudigste subset van de C-taal en kan worden omgezet in een uitvoerbaar bestand met behulp van de universele compiler M2-Planet of de eenvoudigste C-compiler, gebouwd met behulp van de zelfbouwende assembler hex0, die geen externe afhankelijkheden vereist. De interpreter omvat een complete garbage collector en biedt een bibliotheek van laadmodules. Het project ontwikkelt ook de C-bibliotheek Mes C, die voldoende is voor het bouwen van glibc 2.2.5, binutils 2.20.1 en gcc 2.95.3, die nodig zijn voor de implementatie van de Guix-distributie voor de platforms i686-linux, x86_64-linux, armhf-linux en aarch64-linux, uitsluitend met behulp van bronbestanden (Full Source Bootstrap).
De nieuwe release voegt ondersteuning toe voor modules die volledig compatibel zijn met Guile en biedt de mogelijkheid om Gash en Gash-Utils uit te voeren. Er is een overgang van assert naar het gebruik van uitzonderingen doorgevoerd. Er is ondersteuning voor reguliere expressies geĆÆmplementeerd. Negen nieuwe modules zijn gerealiseerd (ftw, i18n, receive, regex, io ports, bytevectors, srfi-2, srfi-11 en srfi-37). Er zijn 46 nieuwe functies toegevoegd, waaronder chdir, clone-port, closedir, concatenate, drop, environ, execle, mkdir, opendir, partition, pipe, readdir, reduce, rmdir, seek, span, sleep, umask, uname en utimes. In volgende releases wordt ondersteuning verwacht voor het bootstrappen van NixOS alleen uit bronbestanden, de mogelijkheid om gcc 4.6.4 te bootstrappen, en volledige systeembouw uit bronbestanden in Linux-omgevingen op basis van de architecturen armhf en riscv64.
Bron: opennet.ru
