гццрс је комплетна алтернативна имплементација Руст језика преко ГЦЦ-а
Недавно је објављено да је пројекат „gccrs“ , који има за циљ да обезбеди интерфејс за Rust језик за GCC (GNU Compiler Collection), на добром путу да буде интегрисан у GCC 13. На FOSDEM конференцији програмера почетком овог месеца, инжењер Артур Коен је одржао презентацију о gccrs-у, у којој је изложио тренутно стање рада.
За оне који нису упознати са пројектом gccrs, то је комплетна алтернативна имплементација Rust језика преко GCC-а, са циљем да се потпуно интегрише у GNU алатни ланац.
Порекло овог пројекта је напор заједнице пре неколико година, када је Руст још увек био у верзији 0.9; језик који је креирала Мозилла био је подложан толиким променама да је постало тешко за покушај заједнице да сустигне корак.
Сада када је језик стабилан, време је да се креирају алтернативни компајлери:
„Започели су 2014. (и поново покренути 2019.), напори су у току од 2020. године и уложили смо много труда и много напретка. Учитали смо прву верзију гццрс-а унутар ГЦЦ-а. Дакле, следећи пут када инсталирате ГЦЦ 13, он ће имати гццрс унутра.
Можете га користити и можете почети да га хакујете, можете пријавити проблеме када се неизбежно сруши и ужасно умре. Једна велика ствар коју радимо је да радимо на томе да рустц тест пакет функционише“, рекао је Артур Коен током свог излагања на ФОСДЕМ конференцији раније овог месеца.
Могућност успешног покретања тест пакета компајлера rustc такође остаје циљ. Према Коену, Рустов GCC интерфејс је такође усмерен на старију верзију 1.49 библиотеке Rust.
У често постављаним питањима пројекта gccrs наводи се да свим LLVM технологијама изградње, које Rust користи, „недостају неки GCC-компатибилни бекендови, тако да имплементација gccrs може попунити празнине за употребу у интегрисаном развоју “.
Имајте на уму, међутим, да је Руст-ГЦЦ компајлер (гццрс) још увек у веома раној фази и да се још не може користити за компајлирање стварних Руст програма.
GCC тим је прошлог јула гласао за одобрење интеграције gccrs као пакета за изградњу. Значај овог пројекта лежи у његовом значају за Линукс језгро. У ствари, Линукс језгро се обично гради помоћу GCC-а, али планови да се дозволи коришћење језика Rust заједно са C-ом за код језгра, из разлога безбедности меморије, стално напредују.
Пројекат „Руст фор Линук“ званично се спојио са главним Линук 6.1 Гит стаблом прошлог октобра, чиме је Руст постао други језик посвећен Линук развоју, након 31 године развоја искључиво заснованог на Ц.
„Желимо да гццрс буде прави Руст компајлер, а не пројекат играчке или нешто што компајлира језик који изгледа као Руст, али није Руст; ми заиста покушавамо да овај тестни пакет функционише“, додао је он. Током презентације, Цохен је такође рекао да иако је Руст интерфејс ГЦЦ 13 добро почео, има још много посла да се уради. Позајмљени верификациони код тренутно упадљиво недостаје, подршка за уграђене и интринзичне модуле је још увек у току, а важна прекретница компајлирања Руст кода за Линук тек треба да се постигне.
Подсећања ради, пројекат Rust за Линукс има за циљ да уведе нови системски програмски језик у Линуксово језгро. Према речима стручњака, Rust има кључно својство које га чини веома занимљивим за разматрање као други језик за Линуксово језгро: он осигурава да се не дешава недефинисано понашање (под условом да је небезбедан код исправан).
Ово укључује одсуство грешака као што су употреба након слободне употребе, двоструко ослобађање, трке података итд. Сродне дебате се врте око могућности одбацивања Ц у корист Руст језика. Али Линус Торвалдс, творац Линук-а, рекао је да то није наведени циљ пројекта Руст фор Линук.
Коначно, вреди напоменути да иако је gccrs интерфејс спојен за предстојеће издање GCC 13, још увек није у стању у којем већина Rust програмера може заправо да га користи као алтернативу Rust-овом званичном LLVM компајлеру.
То би требало да буде тек следеће године, барем са ГЦЦ 14.
Извор: https://fosdem.org/