Megjelent a GNU Mes 0.26 eszköz kiadása, amely lehetővé teszi a GCC bootstrap folyamatának végrehajtását, és biztosítja a forrásokból való teljes körű újraépítést. Az eszköz megoldja a megerősített kezdeti fordítóösszeállítás problémáját disztribúciókban, megszakítva a ciklikus újraépítés láncát (a fordító összeszereléséhez már összeállított fordítófájlokra van szükség, a bináris fordítók pedig potenciálisan rejtett hátsó ajtókat tartalmazhatnak, ami nem garantálja a referencia forrásfájlokból történő teljes megbízhatóságot).
A GNU Mes önálló (self-hosting) Scheme értelmezőt kínál, amely C nyelven íródott, és egy egyszerű C fordítót (MesCC), amely Scheme nyelven készült. Mindkét komponens kölcsönösen összeszerelhető. A Scheme értelmező lehetővé teszi a MesCC C fordító összeszerelését, amely aztán lehetővé teszi a TinyCC (tcc) vágott verziójának összeszerelését, melynek lehetőségei elegendőek a GCC összeszereléséhez.
A Scheme nyelv értelmezője nagyon kompakt, körülbelül 5000 kódsorból áll a C nyelv legegyszerűbb részhalmazán, és univerzális M2-Planet fordítóval vagy a hex0 önálló assemblerrel, amely nem igényel külső függőségeket, végrehajtható fájlra alakítható. Az értelmező teljes értékű szemétgyűjtőt tartalmaz, és modulok betöltésére szolgáló könyvtárat biztosít. A projekt a Mes C C könyvtárat is fejleszti, amely elegendő a glibc 2.2.5, binutils 2.20.1 és gcc 2.95.3 összeszereléséhez, amelyek szükségesek a Guix disztribúció telepítéséhez i686-linux, x86_64-linux, armhf-linux és aarch64-linux platformokra, kizárólag források felhasználásával (Full Source Bootstrap).
Az új kiadásban támogatást kapnak a Guile-lal teljesen kompatibilis modulok, valamint lehetőség nyílik a Gash és Gash-Utils futtatására. Áttértek az assert használatáról a kivételek alkalmazására. Hozzáadták a reguláris kifejezések támogatását. Kilenc új modul került megvalósításra (ftw, i18n, receive, regex, io ports, bytevectors, srfi-2, srfi-11 és srfi-37). 46 új függvény került be, többek között chdir, clone-port, closedir, concatenate, drop, environ, execle, mkdir, opendir, partition, pipe, readdir, reduce, rmdir, seek, span, sleep, umask, uname és utimes. A következő kiadásokban várható a NixOS bootstrapping támogatása kizárólag forráskódokból, a gcc 4.6.4 bootstrapping lehetősége, valamint a teljes rendszer forráskódból való összeszerelésének támogatása Linux környezetekben armhf és riscv64 architektúrák alapján.
Forrás: opennet.ru
