Release van GNU Mes 0.25, een toolkit voor zelfvoorzienende distributiebouw

Na anderhalf jaar ontwikkeling is de GNU Mes 0.25-toolkit uitgebracht, die het bootstrappingproces voor GCC mogelijk maakt en een gesloten cyclus van herbouwen uit de bronteksten mogelijk maakt. De toolkit lost het probleem op van een geverifieerde initiƫle compilatorinstallatie in distributies, waardoor de cyclus van hercompilatie wordt doorbroken (voor het bouwen van de compilator zijn uitvoerbare bestanden van een reeds gebouwde compilator nodig, en binaire builds van de compilator zijn potentiƫle bronnen van verborgen achterdeurtjes, wat volledige garantie van de integriteit van builds uit de referentiebronteksten onmogelijk maakt).

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).

In de nieuwe versie is ondersteuning voor de RISC-V-architectuur (RISC-V64-linux) toegevoegd en ondersteuning voor compilatie met de M2-Planet transpiler is toegevoegd. Er is ondersteuning voor build met versie M2-Planet 1.11.0 voor het doelplatform x86_64-linux. Het opgeven van de modus ā€˜ā€”bootstrap-mode’ bij het gebruik van M2-Planet is niet langer vereist. In MesCC zijn compatibiliteitsproblemen met GCC-versies 10+ opgelost, is de initialisatie van velden in structuren op waarde 0 verzekerd en is de mogelijkheid om binaire bestanden op het niveau van individuele functies te debuggen hersteld.

In toekomstige versies wordt ondersteuning voor bootstrapping van NixOS alleen uit bronteksten verwacht, ondersteuning voor modules die volledig compatibel zijn met Guile, de mogelijkheid om Gash en Gash-Utils uit te voeren, ondersteuning voor bootstrapping van gcc 4.6.4, evenals de mogelijkheid om het hele systeem volledig uit bronteksten te bouwen in Linux-omgevingen op basis van de architecturen armhf en riscv64.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster