Провера задуживања имплементирана у ГЦЦ фронтенд са Руст компајлером

Предложено је низ закрпа које побољшавају подршку за Руст језик у гццрс фронтенду за укључивање у ГЦЦ 15 грану. Најзначајнија промена је подршка за проверу позајмљивања, која је заснована на Полониус компоненти, коју развија главни тим Руста као следећу генерацију провере задуживања.

Предложена имплементација провере позајмице разликује се по томе што је написана на Руст језику и пружа напредне могућности верификације кода, дозвољавајући у неким случајевима да се узме у обзир безбедан код који је до сада захтевао означавање кључном речи Унсафе због ограничења подразумеване имплементације провере позајмице.

Решење припремљено за ГЦЦ има ограничења:

  • Полониус је свестан ситуација у којима неки код који стварно постоји у пројектима доводи до експоненцијалног раста сложености анализе.
  • У случају ГЦЦ-а, гццрс компајлер тренутно захтева од Руст компајлера да заврши фазу покретања (ово ограничење ће бити уклоњено у будућности).

Потпуна имплементација самосталног склопа подразумева 2-степени спин-уп, где ће ГЦЦ прво изградити гццрс без провере позајмљивања, а затим изградити поменуту имплементацију провере позајмице, написану на Руст језику, користећи смањену верзију компајлера и узимајући у обзир код који је условно поуздан (тј. без провере позајмљивања). Након изградње провере позајмице, извршиће се још једна реконструкција компајлера, али овог пута са провером позајмљивања.

Извор: опеннет.ру

Додај коментар