Másfél éves fejlesztés után megjelent a GNU Mes 0.25 eszközkészlet, amely bootstrap folyamatot biztosít a GCC számára, és lehetővé tette a forráskódból történő újraépítés zárt ciklusát. Az eszközkészlet megoldja az ellenőrzött kezdeti fordító összeállítás problémáját a disztribúciókban, megszakítva a ciklikus újraépítés láncolatát (a fordító felépítéséhez egy már felépített fordító futtatható fájljaira van szükség, és a bináris fordítószerelvények rejtett könyvjelzők potenciális forrásai, ami nem teszi lehetővé a teljes körű garanciát a referenciaforráskódokból származó összeállítások integritása).
A GNU Mes egy önkiszolgáló tolmácsot kínál a C nyelven írt Scheme nyelvhez, és egy egyszerű fordítót a C nyelvhez (MesCC), amely a Scheme nyelven íródott. Mindkét alkatrész összeszerelhető. A Scheme interpreter lehetővé teszi a MesCC C fordító felépítését, amely lehetővé teszi a TinyCC fordító (tcc) lecsupaszított változatának elkészítését, amelynek képességei már elegendőek a GCC felépítéséhez.
A Scheme nyelvi tolmács nagyon kompakt, körülbelül 5000 sornyi kódot foglal el a C nyelv legegyszerűbb részhalmazában, és futtatható fájllá alakítható az M2-Planet univerzális fordítóval vagy egy egyszerű C fordítóval, amelyet önösszeállító hex0 assemblerrel fordítanak. amely nem igényel külső függőséget. Ugyanakkor a tolmács teljes értékű szemétgyűjtőt is tartalmaz, és betölthető modulok könyvtárát biztosítja. A projekt fejleszti a Mes C C könyvtárat is, amely elegendő a glibc 2.2.5, a 2.20.1 binutils és a gcc 2.95.3 összeállításához, amelyek szükségesek a Guix disztribúció telepítéséhez i686-linux, x86_64-linux, armhf-linux és aarch64 esetén -linux platformok , csak forráskódokat használva (Full Source Bootstrap).
Az új kiadás támogatja a RISC-V architektúrát (RISC-V64-linux), és támogatja az M2-Planet transzpiler használatával történő fordítást. Támogatott összeállítás az M2-Planet 1.11.0 verzióval az x86_64-linux célplatformhoz. A „--bootstrap-mode” megadása az M2-Planet használatakor már nem szükséges. A MesCC megoldja a GCC 10+ verzióival kapcsolatos kompatibilitási problémákat, gondoskodik arról, hogy a szerkezeti mezők 0-ra legyenek inicializálva, és visszaállítja a bináris fájlok hibakeresésének lehetőségét az egyes funkciók szintjén.
A jövőbeli kiadások várhatóan tartalmazni fogják a NixOS forrásból történő indításának támogatását, a Guile-lal teljesen kompatibilis modulok támogatását, a Gash és a Gash-Utils futtatásának lehetőségét, a gcc 4.6.4 indításának támogatását, valamint a teljes rendszer forrásból történő teljes felépítésének lehetőségét. Linux-armhf és riscv64 architektúrákon alapuló környezetek.
Forrás: opennet.ru
