GNU Mes 0.23-ի թողարկում, որը գործիքակազմ է ինքնուրույն բաշխման շենքի համար

Մեկ տարի մշակվելուց հետո թողարկվեց GNU Mes 0.23 գործիքակազմը, որն ապահովում էր GCC-ի համար bootstrap գործընթաց և թույլ էր տալիս վերակառուցման փակ ցիկլը սկզբնական կոդից: Գործիքակազմը լուծում է բաշխումների մեջ ստուգված սկզբնական կոմպիլյատորների հավաքման խնդիրը, կոտրելով ցիկլային վերակառուցման շղթան (կոմպիլյատոր կառուցելը պահանջում է արդեն կառուցված կոմպիլյատորի գործարկվող ֆայլեր, իսկ երկուական կոմպիլյատորների հավաքները թաքնված էջանիշերի պոտենցիալ աղբյուր են, ինչը թույլ չի տալիս լիովին երաշխավորել հավաքների ամբողջականությունը հղման սկզբնական կոդերից):

GNU Mes-ն առաջարկում է ինքնահոսթինգ թարգմանիչ Scheme լեզվի համար՝ գրված C լեզվով, և պարզ կոմպիլյատոր C լեզվի համար (MesCC), որը գրված է Scheme լեզվով: Երկու բաղադրիչներն էլ փոխկապակցված են: Scheme թարգմանիչը հնարավորություն է տալիս կառուցել MesCC C կոմպիլյատորը, որն այնուհետև թույլ է տալիս ստեղծել TinyCC կոմպիլյատորի (tcc) զտված տարբերակը, որի հնարավորություններն արդեն բավարար են GCC կառուցելու համար:

Scheme լեզվի թարգմանիչը բավականին կոմպակտ է, վերցնում է մոտ 5000 տող կոդ C լեզվի ամենապարզ ենթաբազմության մեջ և կարող է վերածվել գործարկվող ֆայլի՝ օգտագործելով M2-Planet ունիվերսալ թարգմանիչը կամ պարզ C կոմպիլյատորը, որը հավաքվել է ինքնուրույն հավաքված hex0-ի միջոցով: assembler, որը չի պահանջում արտաքին կախվածություն: Միևնույն ժամանակ, թարգմանիչը ներառում է լիարժեք աղբահան և ապահովում է բեռնվող մոդուլների գրադարան:

Նոր թողարկումը ներառում է ARM ճարտարապետության աջակցություն (armhf-linux և aarch-linux): Ավելացվեց Mes-ի օգտագործման հնարավորությունը GNU Guix նախագծի (GNU Guix Reduced Binary Seed) բեռնման ֆայլերի կրճատված հավաքածուի հետ միասին: Իրականացված աջակցություն Mes-ի և Mes C գրադարանի կառուցման համար՝ օգտագործելով GCC 10.x: MesCC կոմպիլյատորն այժմ առաքում է իր սեփական libmescc.a գրադարանը (-lmescc), և GCC-ով կառուցելիս այժմ նշվում է «-lgcc»: Աջակցություն է տրամադրել Guile 3.0.x-ով MesCC-ի կառուցմանը:

Source: opennet.ru

Добавить комментарий