Uitgave van GNU Mes 0.25, een toolkit voor het bouwen van zelfstandige distributies

Na anderhalf jaar ontwikkeling werd de GNU Mes 0.25-toolkit uitgebracht, die een bootstrap-proces voor GCC bood en een gesloten cyclus van opnieuw opbouwen vanuit de broncode mogelijk maakte. De toolkit lost het probleem op van geverifieerde initiële compiler-assemblage in distributies, waardoor de keten van cyclisch opnieuw opbouwen wordt doorbroken (voor het bouwen van een compiler zijn uitvoerbare bestanden van een reeds gebouwde compiler nodig, en binaire compiler-assemblies zijn een potentiële bron van verborgen bladwijzers, waardoor volledige garantie niet mogelijk is de integriteit van samenstellingen uit referentiebroncodes).

GNU Mes biedt een zelfhostende tolk voor de Scheme-taal, geschreven in de C-taal, en een eenvoudige compiler voor de C-taal (MesCC), geschreven in de Scheme-taal. Beide componenten zijn uit elkaar te halen. De Scheme interpreter maakt het mogelijk om de MesCC C compiler te bouwen, waarmee je vervolgens een uitgeklede versie van de TinyCC compiler (tcc) kunt bouwen, waarvan de mogelijkheden al voldoende zijn om GCC te bouwen.

De Scheme-taalinterpreter is zeer compact, bevat ongeveer 5000 regels code in de eenvoudigste subset van de C-taal en kan worden geconverteerd naar een uitvoerbaar bestand met behulp van de M2-Planet universele vertaler of een eenvoudige C-compiler die is gecompileerd met behulp van een zelfassemblerende hex0-assembler waarvoor geen externe afhankelijkheden nodig zijn. Tegelijkertijd bevat de tolk een volwaardige garbage collector en biedt een bibliotheek met laadbare modules. Het project ontwikkelt ook de Mes CC-bibliotheek, die voldoende is om glibc 2.2.5, binutils 2.20.1 en gcc 2.95.3 te bouwen, noodzakelijk voor het implementeren van de Guix-distributie voor de i686-linux, x86_64-linux, armhf-linux en aarch64 -linux-platforms, waarbij alleen broncodes worden gebruikt (Full Source Bootstrap).

De nieuwe release introduceert ondersteuning voor de RISC-V-architectuur (RISC-V64-linux) en voegt ondersteuning toe voor compilatie met behulp van de M2-Planet-transpiler. Ondersteunde montage met versie M2-Planet 1.11.0 voor het x86_64-linux doelplatform. Het opgeven van "--bootstrap-mode" bij gebruik van M2-Planet is niet langer vereist. MesCC lost compatibiliteitsproblemen op met GCC 10+ versies, zorgt ervoor dat structuurvelden op 0 worden geïnitialiseerd en herstelt de mogelijkheid om binaire bestanden op het niveau van individuele functies te debuggen.

In toekomstige releases verwachten we ondersteuning voor het bootstrapping van NixOS alleen vanaf de broncode, ondersteuning voor modules die volledig compatibel zijn met Guile, de mogelijkheid om Gash en Gash-Utils uit te voeren, ondersteuning voor het bootstrapping van gcc 4.6.4, evenals de mogelijkheid om bouw het volledige systeem volledig vanaf de bron in Linux-omgevingen op basis van armhf- en riscv64-architecturen.

Bron: opennet.ru

Voeg een reactie