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

Na een jaar van ontwikkeling werd de GNU Mes 0.23-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 vrij compact, neemt ongeveer 5000 regels code in beslag 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 samengesteld met behulp van de zelf-geassembleerde hex0 assembler, waarvoor geen externe afhankelijkheden nodig zijn. Tegelijkertijd bevat de tolk een volwaardige garbage collector en biedt een bibliotheek met laadbare modules.

De nieuwe release bevat ondersteuning voor de ARM-architectuur (armhf-linux en aarch-linux). De mogelijkheid toegevoegd om Mes te gebruiken samen met een beperkte set bootstrap-bestanden van het GNU Guix-project (GNU Guix Reduced Binary Seed). Ondersteuning geïmplementeerd voor het bouwen van Mes en de Mes C-bibliotheek met behulp van GCC 10.x. De MesCC-compiler levert nu zijn eigen libmescc.a-bibliotheek (-lmescc), en bij het bouwen met GCC wordt nu "-lgcc" opgegeven. Ondersteuning geboden voor het bouwen van MesCC met Guile 3.0.x.

Bron: opennet.ru

Voeg een reactie