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

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

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

Scheme լեզվի թարգմանիչը շատ կոմպակտ է, վերցնում է մոտ 5000 տող կոդ C լեզվի ամենապարզ ենթաբազմության մեջ և կարող է փոխարկվել գործարկվող ֆայլի՝ օգտագործելով M2-Planet ունիվերսալ թարգմանիչը կամ պարզ C կոմպիլյատորը, որը կազմվել է ինքնահավաքվող hex0 հավաքիչի միջոցով: որը չի պահանջում արտաքին կախվածություն: Միևնույն ժամանակ, թարգմանիչը ներառում է լիարժեք աղբահան և ապահովում է բեռնվող մոդուլների գրադարան: Նախագիծը նաև զարգացնում է Mes C C գրադարանը, որը բավարար է glibc 2.2.5, binutils 2.20.1 և gcc 2.95.3 կառուցելու համար, որոնք անհրաժեշտ են Guix բաշխումը i686-linux, x86_64-linux, armhf-linux և aarch64-ի համար: -linux հարթակներ, որոնք օգտագործում են միայն աղբյուրի կոդերը (Full Source Bootstrap):

Նոր թողարկումը ներկայացնում է աջակցություն RISC-V ճարտարապետությանը (RISC-V64-linux) և ավելացնում է աջակցություն M2-Planet տրանսպիլյատորի միջոցով կոմպիլյացիայի համար: Աջակցված հավաքում M2-Planet 1.11.0 տարբերակով x86_64-linux թիրախային հարթակի համար: M2-Planet-ի օգտագործման ժամանակ «--bootstrap-mode» նշելն այլևս չի պահանջվում: MesCC-ը լուծում է GCC 10+ տարբերակների հետ համատեղելիության խնդիրները, ապահովում է կառուցվածքի դաշտերի սկզբնավորումը 0-ի և վերականգնում է երկուական ֆայլերը առանձին գործառույթների մակարդակով վրիպազերծելու հնարավորությունը:

Հետագա թողարկումներում մենք ակնկալում ենք տեսնել միայն աղբյուրից NixOS-ի բեռնաթափման աջակցություն, Guile-ի հետ լիովին համատեղելի մոդուլների աջակցություն, Gash և Gash-Utils գործարկելու հնարավորություն, gcc 4.6.4 bootstrapping աջակցություն, ինչպես նաև հնարավորություն ամբողջությամբ կառուցել ամբողջ համակարգը աղբյուրից Linux միջավայրերում՝ հիմնված armhf և riscv64 ճարտարապետությունների վրա:

Source: opennet.ru

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